Quick Links: |
#include <bsls_protocoltest.h>
Public Types | |
typedef BSLS_PROTOCOL | ProtocolType |
Public Member Functions | |
ProtocolTestImp () | |
~ProtocolTestImp () | |
BSLS_PROTOCOL * | operator-> () |
void | markEnter () |
void | setTestStatus (ProtocolTest_Status *testStatus) |
ProtocolTest_MethodReturnType | markDone () const |
ProtocolTest_MethodReturnRefType | markDoneRef () const |
template<class T > | |
T | markDoneVal (const T &value) const |
This mechanism class template is a base class for a test implementation of a protocol class defined by the BSLS_PROTOCOL
template parameter. Its purpose is to reduce the boilerplate test code required to verify that derived virtual methods are called. It provides markDone
member functions one of which should be called from each method of the protocol class test implementation to indicate that the virtual method is correctly overridden. It also overloads operator->
to serve as a proxy to BSLS_PROTOCOL
and detect when BSLS_PROTOCOL
methods are called.
See Component bsls_protocoltest
typedef BSLS_PROTOCOL bsls::ProtocolTestImp< BSLS_PROTOCOL >::ProtocolType |
bsls::ProtocolTestImp< BSLS_PROTOCOL >::ProtocolTestImp | ( | ) |
Create an object of the ProtocolTestImp
class.
bsls::ProtocolTestImp< BSLS_PROTOCOL >::~ProtocolTestImp | ( | ) |
Destroy this object and check the status of the test execution (success or failure). On test failure, report it to ProtocolTest_Status
.
BSLS_PROTOCOL* bsls::ProtocolTestImp< BSLS_PROTOCOL >::operator-> | ( | ) |
Dereference this object as if it were a pointer to BSLS_PROTOCOL
in order to call a method on BSLS_PROTOCOL
. Also mark this object as entered
for the purpose of calling a protocol method.
void bsls::ProtocolTestImp< BSLS_PROTOCOL >::markEnter | ( | ) |
Mark this object as entered for the purpose of calling a protocol method. The entered
property is tested in the destructor to check for test failures (i.e., if entered == false
then the test cannot fail since it never ran). Note that markEnter
and markDone
calls have to be paired for a protocol-method-call test to succeed.
void bsls::ProtocolTestImp< BSLS_PROTOCOL >::setTestStatus | ( | ProtocolTest_Status * | testStatus | ) |
Connect this protocol test object with the specified testStatus
object, which will be used for test failure reporting.
ProtocolTest_MethodReturnType bsls::ProtocolTestImp< BSLS_PROTOCOL >::markDone | ( | ) | const |
Return a proxy object convertible to any value or pointer type. Derived classed should call this method from their implementations of protocol virtual methods to indicate that virtual methods were overridden correctly.
ProtocolTest_MethodReturnRefType bsls::ProtocolTestImp< BSLS_PROTOCOL >::markDoneRef | ( | ) | const |
Return a proxy object convertible to any reference type. Derived classed should call this method from their implementations of protocol virtual methods to indicate that virtual methods were overridden correctly.
T bsls::ProtocolTestImp< BSLS_PROTOCOL >::markDoneVal | ( | const T & | value | ) | const |
Return the specified value
. Derived classes should call this method from their implementations of protocol virtual methods to indicate that virtual methods were overridden correctly.