00001 #ifndef UNITTEST_TEST_H
00002 #define UNITTEST_TEST_H
00003 
00004 #include "TestDetails.h"
00005 
00006 namespace UnitTest {
00007 
00008 class TestResults;
00009 class TestList;
00010 
00011 class Test
00012 {
00013 public:
00014     explicit Test(char const* testName, char const* suiteName = "DefaultSuite", char const* filename = "", int lineNumber = 0);
00015     virtual ~Test();
00016     void Run();
00017 
00018     TestDetails const m_details;
00019     Test* next;
00020     mutable bool m_timeConstraintExempt;
00021 
00022     static TestList& GetTestList();
00023 
00024     virtual void RunImpl() const;
00025 
00026 private:
00027         Test(Test const&);
00028     Test& operator =(Test const&);
00029 };
00030 
00031 
00032 }
00033 
00034 #endif