home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 Mobile / Chip_Mobile_2001.iso / palm / business / printcar / printcar.exe / tests / Test.h < prev   
C/C++ Source or Header  |  2000-06-03  |  2KB  |  83 lines

  1. //
  2. //  $Id: Test.h,v 1.1.1.1 2000/06/02 22:22:57 sergey Exp $
  3. //
  4.  
  5. #ifndef _Test_h_
  6. #define _Test_h_
  7.  
  8. class TestError;
  9. class TestResult;
  10.  
  11.  
  12. //==============================================================================
  13. //  Test case class
  14. //==============================================================================
  15.  
  16. class Test
  17. {
  18. public:
  19.     Test(): _testResult(0), _errors(0) {}
  20.     virtual ~Test() {}
  21.  
  22.     void run(TestResult& result);
  23.  
  24.     virtual void runTest() = 0;
  25.     virtual const char* name() const = 0;
  26.  
  27.     void checkAssert(bool condition, const char* comment, const char* file, int line);
  28.  
  29.     TestResult& testResult() const { return *_testResult; }
  30.  
  31. private:
  32.     TestResult* _testResult;
  33.     int _errors;
  34. };
  35.  
  36.  
  37. //==============================================================================
  38. //  Test result class
  39. //==============================================================================
  40.  
  41. class TestResult
  42. {
  43. public:
  44.     virtual ~TestResult() {}
  45.  
  46.     virtual void logMessage(const char* testName, const char* message) = 0;
  47.     virtual void logError(const char* testName, const TestError& e) = 0;
  48. };
  49.  
  50.  
  51. //==============================================================================
  52. //  Test error class
  53. //==============================================================================
  54.  
  55. class TestError
  56. {
  57. public:
  58.     TestError(const char* message, const char* file, int line):
  59.         _message(message), _file(file), _line(line) {}
  60.  
  61.     const char* message() const     { return _message; }
  62.     const char* file() const        { return _file; }
  63.     int line() const                { return _line; }
  64.  
  65. private:
  66.     const char* _message;
  67.     const char* _file;
  68.     int _line;
  69. };
  70.  
  71.  
  72. //==============================================================================
  73. // Test assert macros
  74. //==============================================================================
  75.  
  76. #define testAssert(condition) \
  77.     (this->checkAssert((condition), (#condition), __FILE__, __LINE__))
  78.  
  79. #define testAssertComment(condition, comment) \
  80.     (this->checkAssert((condition), (comment), __FILE__, __LINE__))
  81.  
  82. #endif // _Test_h_
  83.