blob: 60b1a8e0c1c1716e5ec3c59c1f69ebb3c33f54d9 [file] [log] [blame]
#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