simplification

This commit is contained in:
Gabriel Schlozer 2016-06-20 16:18:46 +02:00
parent 58d402affd
commit 119c7e23a9
2 changed files with 11 additions and 21 deletions

View file

@ -28,10 +28,9 @@ ParameterizedManager & ParameterizedManager::getInstance()
TestListNode* const ParameterizedManager::retrieveTest(TestDetails const * const details)
{
//TODO This workaround is a bit too complicated, why not simply add pointer to current test in class CurrentTest ?
for (TestListNode* iNode = Test::GetTestList().GetHead(); iNode != nullptr; iNode = iNode->m_next)
{
// Note: do not use TestDetails::sameTest here for optimisation reason
// Warning: do not use TestDetails::sameTest here for optimisation reason
if (&iNode->m_test->m_details == details)
{
return iNode;
@ -129,36 +128,34 @@ void ParameterizedManager::updateParameter(ParameterizedTestAbstract* const para
void ParameterizedManager::iterate(ParameterizedTestAbstract* const parameterized)
{
RegisterThen then = registerParameter(parameterized);
if (then == ParameterizedManager::FIRST)
bool firstIteration = false;
if (registerParameter(parameterized, firstIteration))
{
parameterized->onNewIteration(true);
}
else if (then == ParameterizedManager::ITERATE)
{
parameterized->onNewIteration(false);
parameterized->onNewIteration(firstIteration);
}
}
ParameterizedManager::RegisterThen ParameterizedManager::registerParameter(ParameterizedTestAbstract* const parameterized)
bool ParameterizedManager::registerParameter(ParameterizedTestAbstract* const parameterized, bool & outFirstIteration)
{
if (find(_stack.begin(), _stack.end(), parameterized) == _stack.end())
{
_iterationDone = true;
_currentTest->m_next = _currentTest; // Loop itself
_stack.push_back(parameterized);
return RegisterThen::FIRST;
outFirstIteration = true;
return true;
}
if (!_iterationDone)
{
if (!_stack.empty() && _stack.back() == parameterized)
{
_iterationDone = true;
return RegisterThen::ITERATE;
outFirstIteration = false;
return true;
}
}
return RegisterThen::IDLE;
return false;
}

View file

@ -24,18 +24,11 @@ namespace UnitTest
const vector<ParameterizedTestAbstract*> & getStack(TestDetails const * const details) const;
private:
enum RegisterThen //TODO Can remove this ?
{
FIRST,
ITERATE,
IDLE
};
ParameterizedManager();
virtual ~ParameterizedManager();
TestListNode* const retrieveTest(TestDetails const * const details);
void iterate(ParameterizedTestAbstract* const parameterized);
RegisterThen registerParameter(ParameterizedTestAbstract* const parameterized);
bool registerParameter(ParameterizedTestAbstract* const parameterized, bool & outFirst);
TestListNode* _currentTest;
TestListNode* _nextTestBackup;