[Mockpp-commits] mockpp/mockpp/tests ChainingMockObjectSupport_test.cpp,1.24,1.25 IsInstanceOf_test.
Brought to you by:
ewald-arnold
From: Ewald A. <ewa...@us...> - 2005-03-13 19:13:38
|
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; } |