small refactor

This commit is contained in:
Gabriel Schlozer 2016-09-09 11:16:26 +02:00
parent 1e5d6ecfbb
commit 449a77cb2e
5 changed files with 45 additions and 58 deletions

View file

@ -0,0 +1,23 @@
#include "PredicateCmdBuilder.h"
using namespace UnitTest;
void PredicateCmdBuilder::fillSuitePredicate(const ArgumentsReader & arguments, SuitePredicate & outPredicate, bool allowImplicitArgs)
{
outPredicate.addSuites(arguments.extractValues("--suite"));
outPredicate.addTests(arguments.extractValues("--test"));
if (allowImplicitArgs)
{
vector<string> implicitArguments = arguments.extractValues("");
outPredicate.addSuites(implicitArguments);
outPredicate.addTests(implicitArguments);
}
if (outPredicate.empty())
{
outPredicate.addAll();
}
}

View file

@ -0,0 +1,16 @@
#ifndef UNITTEST_PredicateCmdBuilder_H
#define UNITTEST_TESTRUNNERCMD_H
#include "ArgumentsReader.h"
#include "SuitePredicate.h"
namespace UnitTest {
class PredicateCmdBuilder
{
public:
static void fillSuitePredicate(const ArgumentsReader & arguments, SuitePredicate & outPredicate, bool allowImplicitArgs = true);
};
}
#endif

View file

@ -1,33 +0,0 @@
#include "SuitePredicateCmdBuilder.h"
using namespace UnitTest;
SuitePredicateCmdBuilder::SuitePredicateCmdBuilder(int argc, char**argv)
: _arguments(argc, argv)
{
}
SuitePredicate SuitePredicateCmdBuilder::buildPredicate(bool allowImplicitArgs)
{
SuitePredicate predicate;
predicate.addSuites(_arguments.extractValues("--suite"));
predicate.addTests(_arguments.extractValues("--test"));
if (allowImplicitArgs)
{
vector<string> implicitArguments = _arguments.extractValues("");
predicate.addSuites(implicitArguments);
predicate.addTests(implicitArguments);
}
if (predicate.empty())
{
predicate.addAll();
}
return predicate;
}

View file

@ -1,20 +0,0 @@
#ifndef UNITTEST_TESTRUNNERCMD_H
#define UNITTEST_TESTRUNNERCMD_H
#include "ArgumentsReader.h"
#include "SuitePredicate.h"
namespace UnitTest {
class SuitePredicateCmdBuilder
{
public:
SuitePredicateCmdBuilder(int argc, char**argv);
SuitePredicate buildPredicate(bool allowImplicitArgs = true);
private:
ArgumentsReader _arguments;
};
}
#endif

View file

@ -5,7 +5,7 @@
#include "TimeHelpers.h"
#include "MemoryOutStream.h"
#include "SuitePredicate.h"
#include "SuitePredicateCmdBuilder.h"
#include "PredicateCmdBuilder.h"
#include <cstring>
@ -19,14 +19,15 @@ namespace UnitTest {
return runner.RunTestsIf(Test::GetTestList(), NULL, True(), 0);
}
int RunTestsCmd(int argc, char**argv)
{
SuitePredicateCmdBuilder suiteCmd(argc, argv);
SuitePredicate predicate;
ArgumentsReader arguments(argc, argv);
PredicateCmdBuilder::fillSuitePredicate(arguments, predicate);
TestReporterStdout reporter;
TestRunner runner(reporter);
return runner.RunTestsIf(Test::GetTestList(), 0, suiteCmd.buildPredicate(), 0);
return runner.RunTestsIf(Test::GetTestList(), 0, predicate, 0);
}
TestRunner::TestRunner(TestReporter& reporter)