13 #include <utl/ObjectFactory.h>
16 #include <tst/Verify.h>
17 #include <cppunit/extensions/HelperMacros.h>
30 virtual ~IdObjectBase() { }
31 virtual int GetId() = 0;
36 class IdObject :
public IdObjectBase {
38 int GetId() {
return id; }
39 static IdObjectBase* Create()
40 {
return new IdObject; }
48 class IdObjectCountBase {
50 IdObjectCountBase() : fCount(0) { }
51 IdObjectCountBase(
int i) : fCount(i) { }
52 virtual ~IdObjectCountBase() { }
53 virtual int GetId() = 0;
54 int GetCount() {
return fCount; }
60 class IdObjectCount :
public IdObjectCountBase {
62 IdObjectCount(
int i) : IdObjectCountBase(i) { }
63 int GetId() {
return id; }
64 static IdObjectCountBase* Create(
int i)
65 {
return new IdObjectCount(i); }
73 class IdObjectCount2Base {
75 IdObjectCount2Base() : fCount1(0), fCount2(0) { }
76 IdObjectCount2Base(
int i,
int j) : fCount1(i), fCount2(j) { }
77 virtual ~IdObjectCount2Base() { }
78 virtual int GetId() = 0;
79 int GetCount1() {
return fCount1; }
80 int GetCount2() {
return fCount2; }
87 class IdObjectCount2 :
public IdObjectCount2Base {
89 IdObjectCount2(
int i,
int j) : IdObjectCount2Base(i, j) { }
90 int GetId() {
return id; }
91 static IdObjectCount2Base* Create(
int i,
int j)
92 {
return new IdObjectCount2(i, j); }
96 IdObjectCount2Factory;
104 :
public CppUnit::TestFixture
107 CPPUNIT_TEST(testCreation);
108 CPPUNIT_TEST(testCreationArg);
109 CPPUNIT_TEST(testCreationArg2);
112 CPPUNIT_TEST_SUITE_END();
126 IdObjectBase*
const pNull = 0;
128 CPPUNIT_ASSERT(IdObjectFactory::Register(1, IdObject<1>::Create));
130 IdObjectBase* p1 = IdObjectFactory::Create(1);
132 CPPUNIT_ASSERT(Verify<Equal>(p1->GetId(), 1));
135 IdObjectBase* p2 = IdObjectFactory::Create(2);
136 CPPUNIT_ASSERT(Verify<Equal>(p2, pNull));
138 CPPUNIT_ASSERT(IdObjectFactory::Register(2, IdObject<2>::Create));
140 p2 = IdObjectFactory::Create(2);
142 CPPUNIT_ASSERT(Verify<Equal>(p2->GetId(), 2));
145 IdObjectFactory::Iterator iter = IdObjectFactory::Begin();
146 CPPUNIT_ASSERT(Verify<Equal>(iter->first, 1));
148 CPPUNIT_ASSERT(Verify<Equal>(iter->first, 2));
150 CPPUNIT_ASSERT(iter == IdObjectFactory::End());
156 IdObjectCountBase*
const pNull = 0;
158 CPPUNIT_ASSERT(Verify<Equal>(IdObjectCountFactory::GetNumberOfCreators(),
161 CPPUNIT_ASSERT(IdObjectCountFactory::Register(
"1",
162 IdObjectCount<1>::Create));
163 CPPUNIT_ASSERT(Verify<Equal>(IdObjectCountFactory::GetNumberOfCreators(),
166 IdObjectCountBase* p1 = IdObjectCountFactory::Create(
"1", 5);
168 CPPUNIT_ASSERT(Verify<Equal>(p1->GetId(), 1));
169 CPPUNIT_ASSERT(Verify<Equal>(p1->GetCount(), 5));
172 IdObjectCountBase* p2 = IdObjectCountFactory::Create(
"2", 1);
173 CPPUNIT_ASSERT(Verify<Equal>(p2, pNull));
175 CPPUNIT_ASSERT(IdObjectCountFactory::Register(
"2",
176 IdObjectCount<2>::Create));
177 CPPUNIT_ASSERT(Verify<Equal>(IdObjectCountFactory::GetNumberOfCreators(),
180 p2 = IdObjectCountFactory::Create(
"2", 3);
182 CPPUNIT_ASSERT(Verify<Equal>(p2->GetId(), 2));
183 CPPUNIT_ASSERT(Verify<Equal>(p2->GetCount(), 3));
189 IdObjectCount2Base*
const pNull = 0;
191 CPPUNIT_ASSERT(Verify<Equal>(IdObjectCount2Factory::GetNumberOfCreators(),
194 CPPUNIT_ASSERT(IdObjectCount2Factory::Register(
"1",
195 IdObjectCount2<1>::Create));
196 CPPUNIT_ASSERT(Verify<Equal>(IdObjectCount2Factory::GetNumberOfCreators(),
199 IdObjectCount2Base* p1 = IdObjectCount2Factory::Create(
"1", 5, 6);
201 CPPUNIT_ASSERT(Verify<Equal>(p1->GetId(), 1));
202 CPPUNIT_ASSERT(Verify<Equal>(p1->GetCount1(), 5));
203 CPPUNIT_ASSERT(Verify<Equal>(p1->GetCount2(), 6));
CPPUNIT_TEST_SUITE_REGISTRATION(testAiresShowerFile)
bool Verify(const Predicate &pred, const T &lhs, const T &rhs)
Test condition by evaluating a predicate and print on failure.
Template for object factory.