1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
#ifndef UNITTEST_SCOPEDCURRENTTEST_H
#define UNITTEST_SCOPEDCURRENTTEST_H
#include "UnitTest++/CurrentTest.h"
#include <cstddef>
class ScopedCurrentTest
{
public:
ScopedCurrentTest()
: m_oldTestResults(UnitTest::CurrentTest::Results())
, m_oldTestDetails(UnitTest::CurrentTest::Details())
{}
explicit ScopedCurrentTest(UnitTest::TestResults& newResults, const UnitTest::TestDetails* newDetails = NULL)
: m_oldTestResults(UnitTest::CurrentTest::Results())
, m_oldTestDetails(UnitTest::CurrentTest::Details())
{
UnitTest::CurrentTest::Results() = &newResults;
if (newDetails != NULL)
{
UnitTest::CurrentTest::Details() = newDetails;
}
}
~ScopedCurrentTest()
{
UnitTest::CurrentTest::Results() = m_oldTestResults;
UnitTest::CurrentTest::Details() = m_oldTestDetails;
}
private:
UnitTest::TestResults* m_oldTestResults;
const UnitTest::TestDetails* m_oldTestDetails;
};
#endif
|