00001 #ifndef _TESTITEM_HPP_ 00002 #define _TESTITEM_HPP_ 00003 00004 #include <string> 00005 #include <stdlib.h> 00006 #include <ostream> 00007 00008 class TestBed; 00009 00010 #define __SPOT__ __FILE__,__LINE__ 00011 00012 class TestItem { 00013 static TestBed *theBed; 00014 char *name; 00015 bool success; 00016 bool isSet; 00017 char *fileName; 00018 int lineNumber; 00019 int compare(const TestItem &otherItem)const; 00020 public: 00021 static void setBed(TestBed *aBed){theBed=aBed;} 00022 TestItem(const char *itemName); 00023 ~TestItem(); 00024 00025 void passItem(){if(!isSet) success=true;isSet=true;} 00026 00027 void failItem(const char *_fileName, 00028 const int lineNum); 00029 00030 void expectNonZero(const char *_fileName, 00031 const int lineNum, 00032 const int val); 00033 00034 void expectFalse(const char *_fileName, 00035 const int lineNum, 00036 const bool val); 00037 00038 void expectTrue(const char *_fileName, 00039 const int lineNum, 00040 const bool val); 00041 00042 void expectZero(const char *_fileName, 00043 const int lineNum, 00044 const int val); 00045 00046 void sameString(const char *fileName, const int lineNum, 00047 const char *string1,const char *string2); 00048 00049 bool passed(){ return success; } 00050 00051 friend std::ostream &operator<<(std::ostream &os, const TestItem &item); 00052 00053 friend bool operator<(const TestItem &item1, const TestItem &item2); 00054 friend bool operator>(const TestItem &item1, const TestItem &item2); 00055 friend bool operator<=(const TestItem &item1, const TestItem &item2); 00056 friend bool operator>=(const TestItem &item1, const TestItem &item2); 00057 friend bool operator==(const TestItem &item1, const TestItem &item2); 00058 friend bool operator!=(const TestItem &item1, const TestItem &item2); 00059 }; 00060 #endif