3 #ifndef __sk_statable_test_h__
4 #define __sk_statable_test_h__
6 #include <cppunit/TestCaller.h>
7 #include <cppunit/TestSuite.h>
12 #include "BasicTest.h"
30 for (typename list
<C
*>::iterator it
= entries
.begin();
33 // Arghh, BStatable has no virtual destructor!
34 // Workaround: try to cast to one of the subclasses
35 if (BNode
*node
= dynamic_cast<BNode
*>(*it
))
37 else if (BEntry
*entry
= dynamic_cast<BEntry
*>(*it
))
52 void add(C
*entry
, string entryName
)
54 entries
.push_back(entry
);
55 entryNames
.push_back(entryName
);
58 bool getNext(C
*&entry
, string
&entryName
)
60 bool result
= (entryIt
!= entries
.end()
61 && entryNameIt
!= entryNames
.end());
64 entryName
= *entryNameIt
;
73 entryIt
= entries
.begin();
74 entryNameIt
= entryNames
.begin();
78 list
<string
> entryNames
;
79 typename list
<C
*>::iterator entryIt
;
80 typename list
<string
>::iterator entryNameIt
;
83 typedef TestEntries
<BStatable
> TestStatables
;
88 class StatableTest
: public BasicTest
91 template<typename DerivedClass
>
92 static inline void AddBaseClassTests(const char *prefix
,
93 CppUnit::TestSuite
*suite
);
95 virtual void CreateROStatables(TestStatables
& testEntries
) = 0;
96 virtual void CreateRWStatables(TestStatables
& testEntries
) = 0;
97 virtual void CreateUninitializedStatables(TestStatables
& testEntries
) = 0;
99 // This function called before *each* test added in Suite()
102 // This function called after *each* test added in Suite()
112 template<typename DerivedClass
>
114 StatableTest::AddBaseClassTests(const char *prefix
, CppUnit::TestSuite
*suite
)
116 typedef CppUnit::TestCaller
<DerivedClass
> TC
;
119 suite
->addTest( new TC(p
+ "BStatable::GetStat Test",
120 &StatableTest::GetStatTest
) );
121 suite
->addTest( new TC(p
+ "BStatable::IsXYZ Test",
122 &StatableTest::IsXYZTest
) );
123 suite
->addTest( new TC(p
+ "BStatable::GetXYZ Test",
124 &StatableTest::GetXYZTest
) );
125 suite
->addTest( new TC(p
+ "BStatable::SetXYZ Test",
126 &StatableTest::SetXYZTest
) );
129 #endif // __sk_statable_test_h__