Thread: [Mockpp-commits] mockpp/mockpp/chaining ChainableMockMethod.h,1.4,1.5
Brought to you by:
ewald-arnold
From: Ewald A. <ewa...@us...> - 2005-10-17 19:13:17
|
Update of /cvsroot/mockpp/mockpp/mockpp/chaining In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30264/mockpp/chaining Modified Files: ChainableMockMethod.h Log Message: cleanup Index: ChainableMockMethod.h =================================================================== RCS file: /cvsroot/mockpp/mockpp/mockpp/chaining/ChainableMockMethod.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- ChainableMockMethod.h 16 Oct 2005 12:26:46 -0000 1.4 +++ ChainableMockMethod.h 17 Oct 2005 19:13:09 -0000 1.5 @@ -48,7 +48,7 @@ * @param name human readable description about the expectation * @param parent parent chainable mock object */ - ChainableMockMethodBase(const String &name, ChainableMockObject *parent = 0) + ChainableMockMethodBase(const String &name, ChainableMockObject *parent ) : MockObject(name, parent) , chainable(parent) {} @@ -73,6 +73,95 @@ ///////////////////////////////////////////////////////////////////////////////////////////// +template <typename R> +class ChainableMockMethod0Base : public ChainableMockMethodBase<R> +{ + public: + + typedef R ReturnType; + typedef Invocation0 InvocationType; + typedef CoreMock<R, InvocationType> CoreMockType; + + /** Constructs the mock object. + * @param name human readable description about the expectation + * @param parent parent chainable mock object + */ + ChainableMockMethod0Base(const String &name, ChainableMockObject *parent ) + : ChainableMockMethodBase<R>(name, parent) + , coremock(name + MOCKPP_PCHAR("/coreMock"), this) + {} + + CoreMockType & getCoreMock() const + { + return coremock; + } + + typedef ChainingMockBuilder <ArgumentsMatchBuilder0<ReturnType, InvocationType> > Builder; + + class ChainerFor : public Builder + { + public: + + ChainerFor(ChainableMockMethod0Base &method) + : Builder(&method.getCoreMock(), method.getChainableMockObject(), method.getMethodName()) + {} + }; + + private: + + mutable CoreMockType coremock; +}; + + +template <typename R> +class ChainableMockMethod0 : public ChainableMockMethod0Base<R> +{ + public: + + typedef typename ChainableMockMethod0Base<R>::InvocationType InvocationType; + + /** Constructs the mock object. + * @param name human readable description about the expectation + * @param parent parent chainable mock object + */ + ChainableMockMethod0(const String &name, ChainableMockObject *parent ) + : ChainableMockMethod0Base<R>(name, parent) + {} + + R forward() const + { + InvocationType inv(getMethodName()); + return getCoreMock().invoke(inv); + } +}; + + +template <> +class ChainableMockMethod0<void> : public ChainableMockMethod0Base<void> +{ + public: + + typedef ChainableMockMethod0Base<void>::InvocationType InvocationType; + + /** Constructs the mock object. + * @param name human readable description about the expectation + * @param parent parent chainable mock object + */ + ChainableMockMethod0(const String &name, ChainableMockObject *parent) + : ChainableMockMethod0Base<void>(name, parent) + {} + + void forward() const + { + InvocationType inv(MOCKPP_PCHAR("void-name")); + getCoreMock().invoke(inv); + } +}; + + +///////////////////////////////////////////////////////////////////////////////////////////// + + template <typename R, typename P1> class ChainableMockMethod1Base : public ChainableMockMethodBase<R> { @@ -86,9 +175,9 @@ * @param name human readable description about the expectation * @param parent parent chainable mock object */ - ChainableMockMethod1Base(const String &name, ChainableMockObject *parent = 0) + ChainableMockMethod1Base(const String &name, ChainableMockObject *parent ) : ChainableMockMethodBase<R>(name, parent) - , coremock(MOCKPP_PCHAR("CoreMock_in_") + name, this) + , coremock(name + MOCKPP_PCHAR("/coreMock"), this) {} CoreMockType & getCoreMock() const @@ -124,11 +213,11 @@ * @param name human readable description about the expectation * @param parent parent chainable mock object */ - ChainableMockMethod1(const String &name, ChainableMockObject *parent = 0) + ChainableMockMethod1(const String &name, ChainableMockObject *parent ) : ChainableMockMethod1Base<R, P1>(name, parent) {} - R forward(P1 param1) const + R forward(const P1 ¶m1) const { InvocationType inv(getMethodName(), param1); return getCoreMock().invoke(inv); @@ -147,11 +236,11 @@ * @param name human readable description about the expectation * @param parent parent chainable mock object */ - ChainableMockMethod1(const String &name, ChainableMockObject *parent = 0) + ChainableMockMethod1(const String &name, ChainableMockObject *parent ) : ChainableMockMethod1Base<void, P1>(name, parent) {} - void forward(P1 param1) const + void forward(const P1 ¶m1) const { InvocationType inv(MOCKPP_PCHAR("void-name"), param1); getCoreMock().invoke(inv); @@ -175,9 +264,9 @@ * @param name human readable description about the expectation * @param parent parent chainable mock object */ - ChainableMockMethod2Base(const String &name, ChainableMockObject *parent = 0) + ChainableMockMethod2Base(const String &name, ChainableMockObject *parent ) : ChainableMockMethodBase<R>(name, parent) - , coremock(MOCKPP_PCHAR("CoreMock_in_") + name, this) + , coremock(name + MOCKPP_PCHAR("/coreMock"), this) {} CoreMockType & getCoreMock() const @@ -213,11 +302,11 @@ * @param name human readable description about the expectation * @param parent parent chainable mock object */ - ChainableMockMethod2(const String &name, ChainableMockObject *parent = 0) + ChainableMockMethod2(const String &name, ChainableMockObject *parent ) : ChainableMockMethod2Base<R, P1, P2>(name, parent) {} - R forward(P1 param1, P2 param2) const + R forward(const P1 ¶m1, const P2 ¶m2) const { InvocationType inv(getMethodName(), param1, param2); return getCoreMock().invoke(inv); @@ -236,11 +325,11 @@ * @param name human readable description about the expectation * @param parent parent chainable mock object */ - ChainableMockMethod2(const String &name, ChainableMockObject *parent = 0) + ChainableMockMethod2(const String &name, ChainableMockObject *parent ) : ChainableMockMethod2Base<void, P1, P2>(name, parent) {} - void forward(P1 param1, P2 param2) const + void forward(const P1 ¶m1, const P2 ¶m2) const { InvocationType inv(getMethodName(), param1, param2); getCoreMock().invoke(inv); |