Update of /cvsroot/mockpp/mockpp/mockpp/tests
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25526/mockpp/tests
Modified Files:
ChainingMockObjectSupport_test.cpp IsInstanceOf_test.cpp
Log Message:
fixed actually non-working IsInstanceOf
Index: ChainingMockObjectSupport_test.cpp
===================================================================
RCS file: /cvsroot/mockpp/mockpp/mockpp/tests/ChainingMockObjectSupport_test.cpp,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -d -r1.24 -r1.25
--- ChainingMockObjectSupport_test.cpp 13 Mar 2005 17:14:34 -0000 1.24
+++ ChainingMockObjectSupport_test.cpp 13 Mar 2005 19:13:26 -0000 1.25
@@ -129,7 +129,7 @@
};
-class C
+class C : public B
{
public:
@@ -139,22 +139,34 @@
};
+class D
+{
+ public:
+
+ virtual ~D() {}
+
+ const char *pc;
+};
+
+
void ChainingMockObjectSupport_test::test_instance()
{
A a;
B b;
C c;
+ D d;
- mockpp::Constraint<A*>::AP instance0 = mockpp::isA( a );
- mockpp::Constraint<A*>::AP instance = mockpp::isA( A() );
- CPPUNIT_ASSERT( instance->eval( &a ) == true );
+ mockpp::Constraint<A*>::AP instance0 = mockpp::isA<A, B>( b );
+ mockpp::Constraint<A*>::AP instance1 = mockpp::isA<A>( b );
+
+ mockpp::Constraint<A*>::AP instance = mockpp::isA<A>( B() );
+ CPPUNIT_ASSERT( instance->eval((B*) &a ) == false );
CPPUNIT_ASSERT( instance->eval( &b ) == true );
+ CPPUNIT_ASSERT( instance->eval( &c ) == true );
+ CPPUNIT_ASSERT( instance->eval((B*) &d ) == false );
B &rb = *((B*) 0);
CPPUNIT_ASSERT( instance->eval( &rb ) == false );
-
- A *pa = (A*)&c;
- CPPUNIT_ASSERT( instance->eval( pa ) == false );
}
@@ -364,6 +376,9 @@
matcher = mockpp::atLeastOnce();
CPPUNIT_ASSERT( matcher->toString() == MOCKPP_PCHAR( "expected at least once" ) );
+ matcher = mockpp::unlimited();
+ CPPUNIT_ASSERT( matcher->toString() == MOCKPP_PCHAR( "expected unlimited invocations" ) );
+
matcher = mockpp::atMost( 3 );
CPPUNIT_ASSERT( matcher->toString() == MOCKPP_PCHAR( "expected at most 3 times, invoked 0 times" ) );
Index: IsInstanceOf_test.cpp
===================================================================
RCS file: /cvsroot/mockpp/mockpp/mockpp/tests/IsInstanceOf_test.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- IsInstanceOf_test.cpp 13 Mar 2005 17:14:34 -0000 1.10
+++ IsInstanceOf_test.cpp 13 Mar 2005 19:13:27 -0000 1.11
@@ -85,50 +85,52 @@
{
public:
- virtual ~C() { }
+ virtual ~C() {}
- std::string c;
+ std::string b;
+};
+
+
+class D
+{
+ public:
+
+ virtual ~D() {}
+
+ const char *pc;
};
void IsInstanceOf_test::test_describe()
{
- mockpp::IsInstanceOf<A> instance;
+ mockpp::IsInstanceOf<A, B> instance;
mockpp::String s = MOCKPP_PCHAR("instance?");
CPPUNIT_ASSERT(instance.describeTo(s).find(MOCKPP_PCHAR("instance?derived from ")) == 0);
CPPUNIT_ASSERT(s.find(MOCKPP_PCHAR("instance?derived from ")) == 0);
}
-class BB { public: float f; virtual ~BB() {} };
-class DD : public BB { public: int a; virtual ~DD() {} };
-
void IsInstanceOf_test::test_invoke()
{
A *pa = new A;
A *pb = new B;
A *pc = new C;
+ A *pd = (A*)new D;
- mockpp::IsInstanceOf<B> instance;
- CPPUNIT_ASSERT(instance.eval((B*)pa) == true);
- CPPUNIT_ASSERT(instance.eval((B*)pb) == true);
- CPPUNIT_ASSERT(instance.eval((B*)pc) == true);
+ mockpp::IsInstanceOf<A, B> instance;
+
+ CPPUNIT_ASSERT(instance.eval((B*)pa) == false);
+ CPPUNIT_ASSERT(instance.eval(pb) == true);
+ CPPUNIT_ASSERT(instance.eval(pc) == true);
+ CPPUNIT_ASSERT(instance.eval((B*)pd) == false);
B &rb = *((B*) 0);
CPPUNIT_ASSERT(instance.eval(&rb) == false);
-
- BB* pb1 = new DD; // unclear but ok
- BB* pb2 = new BB;
- std::cout << (void*) pb1 << std::endl;
- std::cout << (void*) pb2 << std::endl;
-
- DD* pd = dynamic_cast<DD*>(pb1); // ok: pb actually points to a D
- DD* pd2 = dynamic_cast<DD*>(pb2); // pb2 points to a B not a D
- // cast was bad so pd2 == NULL
-
- std::cout << (void*) pd << std::endl;
- std::cout << (void*) pd2 << std::endl;
+ delete pa;
+ delete pb;
+ delete pc;
+ delete pd;
}
|