[Mockpp-commits] mockpp/mockpp/tests InvocationMocker_test.cpp,1.32,1.33 mockpp_pti_test.cpp,1.2,1.3
Brought to you by:
ewald-arnold
From: Ewald A. <ewa...@us...> - 2005-04-04 08:57:43
|
Update of /cvsroot/mockpp/mockpp/mockpp/tests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26323/mockpp/tests Modified Files: InvocationMocker_test.cpp mockpp_pti_test.cpp Log Message: more efforts for msvc6 Index: InvocationMocker_test.cpp =================================================================== RCS file: /cvsroot/mockpp/mockpp/mockpp/tests/InvocationMocker_test.cpp,v retrieving revision 1.32 retrieving revision 1.33 diff -u -d -r1.32 -r1.33 --- InvocationMocker_test.cpp 3 Apr 2005 18:32:54 -0000 1.32 +++ InvocationMocker_test.cpp 4 Apr 2005 08:57:33 -0000 1.33 @@ -48,13 +48,13 @@ #include "classes_ABCDE.h" - -typedef mockpp::Invocation5<CA, CB, CC, CD, CE> SetterInvocation; -typedef mockpp::Invocation5<CA, CB, CC, CD, CE> GetterInvocation; - - -MOCKPP_PTI_DECLARE(SetterInvocation) - + +typedef mockpp::Invocation5<CA, CB, CC, CD, CE> SetterInvocation; +typedef mockpp::Invocation5<CA, CB, CC, CD, CE> GetterInvocation; + + +MOCKPP_PTI_DECLARE(SetterInvocation) + namespace { Index: mockpp_pti_test.cpp =================================================================== RCS file: /cvsroot/mockpp/mockpp/mockpp/tests/mockpp_pti_test.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- mockpp_pti_test.cpp 3 Apr 2005 21:49:58 -0000 1.2 +++ mockpp_pti_test.cpp 4 Apr 2005 08:57:34 -0000 1.3 @@ -49,35 +49,12 @@ typedef mockpp::Invocation1<int> Setter1Invocation; -//MOCKPP_LIFOINVOCATIONDISPATCHER_PTI_IMPL(Setter1Invocation) -MOCKPP_COREMOCK_PTI_IMPL(Setter1Invocation) -//MOCKPP_FIFOINVOCATIONDISPATCHER_PTI_IMPL(Setter1Invocation) MOCKPP_TYPELESSSTUBADAPTER_PTI_IMPL(Setter1Invocation) - -namespace mockpp { -template<> -class LIFOInvocationDispatcher<void, Setter1Invocation> : public AbstractInvocationDispatcher<void, Setter1Invocation> -{ - public: - typedef AbstractInvocationDispatcher<void, Setter1Invocation>::ReverseIterator Iterator; - - void dispatch( const Setter1Invocation &invocation ) - { - Iterator it = this->invokables.rbegin(); - Iterator end = this->invokables.rend(); - for ( /**/; it != end; ++it ) - { - if ( ( *it ) ->matches( invocation ) ) - { - ( *it ) ->invoke( invocation ); - return; - } - } - - this->defaultStub->invoke( invocation ); - } -}; -} +MOCKPP_FIFOINVOCATIONDISPATCHER_PTI_IMPL(Setter1Invocation) +MOCKPP_LIFOINVOCATIONDISPATCHER_PTI_IMPL(Setter1Invocation) +MOCKPP_INVOCATIONMOCKER_PTI_IMPL(Setter1Invocation) +MOCKPP_ABSTRACTDYNAMICCHAININGMOCK_PTI_IMPL(Setter1Invocation) +MOCKPP_COREMOCK_PTI_IMPL(Setter1Invocation) namespace { @@ -197,12 +174,10 @@ } virtual void reset() - { - } + {} virtual void verify() - { - } + {} }; @@ -229,8 +204,10 @@ lifo.add(ti2); lifo.myDispatch(si); CPPUNIT_ASSERT(true == ti2->invoked); + CPPUNIT_ASSERT(false == ti1->invoked); lifo.myDispatch(si); CPPUNIT_ASSERT(true == ti1->invoked); + CPPUNIT_ASSERT(false == mvs->invoked); lifo.myDispatch(si); CPPUNIT_ASSERT(true == mvs->invoked); } @@ -259,22 +236,147 @@ fifo.add(ti2); fifo.myDispatch(si); CPPUNIT_ASSERT(true == ti1->invoked); + CPPUNIT_ASSERT(false == ti2->invoked); fifo.myDispatch(si); CPPUNIT_ASSERT(true == ti2->invoked); + CPPUNIT_ASSERT(false == mvs->invoked); fifo.myDispatch(si); CPPUNIT_ASSERT(true == mvs->invoked); } +class MyInvocationMatcher : public mockpp::InvocationMatcher<Setter1Invocation> +{ + public: + + mutable bool invoked; + + MyInvocationMatcher() + { + invoked = false; + } + + virtual bool matches( const Setter1Invocation & /*invocation*/ ) + { + return !invoked; + } + + virtual mockpp::String describeTo( mockpp::String &buffer ) const + { + return buffer; + } + + virtual void verify() + { + } + + virtual void incInvoked( const Setter1Invocation &/*invocation*/ ) + { + invoked = true; + } + + virtual bool hasDescription() + { + return true; + } +}; + + void mockpp_pti_test::test_invocation() { -// MOCKPP_INVOCATIONMOCKER_PTI_IMPL(Setter1Invocation) + Setter1Invocation si(MOCKPP_PCHAR("Setter1Invocation"), 1); + mockpp::InvocationMocker<void, Setter1Invocation> im; + MyInvocationMatcher *ivm1 = new MyInvocationMatcher; + MyInvocationMatcher *ivm2 = new MyInvocationMatcher; + MyVoidStub *stub = new MyVoidStub; + + im.addMatcher( ivm1 ); + im.addMatcher( ivm2 ); + im.setStub(stub); + + im.invoke(si); + CPPUNIT_ASSERT(ivm1->invoked == true); + CPPUNIT_ASSERT(ivm2->invoked == true); + CPPUNIT_ASSERT(stub->invoked == true); } +class ChainingMockDummy : public mockpp::AbstractDynamicChainingMock<void, Setter1Invocation> +{ + public: + + ChainingMockDummy( mockpp::InvocationDispatcher<void, Setter1Invocation>::AP invocationDispatcher, + const mockpp::String &name, + mockpp::VerifiableList *parent ) + : mockpp::AbstractDynamicChainingMock<void, Setter1Invocation>(invocationDispatcher, name, parent) + {} + + void invoke(const Setter1Invocation &invocation) + { + mockInvocation(invocation); + } +}; + +class MyMatcherDummy : public mockpp::Invokable<void, Setter1Invocation> +{ + public: + + bool enable_except; + bool invoked; + + MyMatcherDummy() + { + invoked = false; + enable_except = false; + } + + virtual bool matches( const Setter1Invocation &/*invocation*/ ) + { + return !invoked; + } + + virtual void reset() + { + } + + virtual void invoke( const Setter1Invocation &/*invocation*/ ) + { + invoked = true; + + if (enable_except) + throw mockpp::AssertionFailedError(__LINE__, __FILE__, MOCKPP_PCHAR("invoke-fail")); + } + + virtual void verify() + { + } + + virtual mockpp::String describeTo (mockpp::String &buffer) const + { + return buffer; + } + + virtual bool hasDescription() + { + return true; + } +}; + void mockpp_pti_test::test_abstract() { -// MOCKPP_ABSTRACTDYNAMICCHAININGMOCK_PTI_IMPL(Setter1Invocation) + Setter1Invocation si(MOCKPP_PCHAR("Setter1Invocation"), 1); + ChainingMockDummy cmd (new mockpp::LIFOInvocationDispatcher<void, Setter1Invocation>, MOCKPP_PCHAR( "adc-name" ), 0 ); + MyVoidStub *stub = new MyVoidStub; + MyMatcherDummy *mmd = new MyMatcherDummy; + + cmd.setDefaultStub(stub); + cmd.addInvokable(mmd); + + cmd.invoke(si); + CPPUNIT_ASSERT(mmd->invoked == true); + CPPUNIT_ASSERT(stub->invoked == false); + cmd.invoke(si); + CPPUNIT_ASSERT(stub->invoked == true); } |