#ifndef UNITTEST_SCOPEDCURRENTTEST_H #define UNITTEST_SCOPEDCURRENTTEST_H #include "UnitTest++/CurrentTest.h" #include 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