Blame examples/cppunittest/MockFunctor.h
|
Packit Service |
e31359 |
#ifndef MOCKFUNCTOR_H
|
|
Packit Service |
e31359 |
#define MOCKFUNCTOR_H
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
#include <cppunit/TestAssert.h>
|
|
Packit Service |
e31359 |
#include <cppunit/Protector.h>
|
|
Packit Service |
e31359 |
#include "FailureException.h"
|
|
Packit Service |
e31359 |
#include "MockProtector.h"
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
class MockFunctor : public CPPUNIT_NS::Functor
|
|
Packit Service |
e31359 |
{
|
|
Packit Service |
e31359 |
public:
|
|
Packit Service |
e31359 |
MockFunctor()
|
|
Packit Service |
e31359 |
: m_shouldSucceed( true )
|
|
Packit Service |
e31359 |
, m_shouldThrow( false )
|
|
Packit Service |
e31359 |
, m_shouldThrowFailureException( false )
|
|
Packit Service |
e31359 |
, m_hasExpectation( false )
|
|
Packit Service |
e31359 |
, m_actualCallCount( 0 )
|
|
Packit Service |
e31359 |
, m_expectedCallCount( 0 )
|
|
Packit Service |
e31359 |
{
|
|
Packit Service |
e31359 |
}
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
bool operator()() const
|
|
Packit Service |
e31359 |
{
|
|
Packit Service |
e31359 |
++CPPUNIT_CONST_CAST(MockFunctor *,this)->m_actualCallCount;
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
if ( m_shouldThrow )
|
|
Packit Service |
e31359 |
{
|
|
Packit Service |
e31359 |
if ( m_shouldThrowFailureException )
|
|
Packit Service |
e31359 |
throw FailureException();
|
|
Packit Service |
e31359 |
throw MockProtectorException();
|
|
Packit Service |
e31359 |
}
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
return m_shouldSucceed;
|
|
Packit Service |
e31359 |
}
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
void setThrowFailureException()
|
|
Packit Service |
e31359 |
{
|
|
Packit Service |
e31359 |
m_shouldThrow = true;
|
|
Packit Service |
e31359 |
m_shouldThrowFailureException = true;
|
|
Packit Service |
e31359 |
++m_expectedCallCount;
|
|
Packit Service |
e31359 |
m_hasExpectation = true;
|
|
Packit Service |
e31359 |
}
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
void setThrowMockProtectorException()
|
|
Packit Service |
e31359 |
{
|
|
Packit Service |
e31359 |
m_shouldThrow = true;
|
|
Packit Service |
e31359 |
m_shouldThrowFailureException = false;
|
|
Packit Service |
e31359 |
++m_expectedCallCount;
|
|
Packit Service |
e31359 |
m_hasExpectation = true;
|
|
Packit Service |
e31359 |
}
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
void setShouldFail()
|
|
Packit Service |
e31359 |
{
|
|
Packit Service |
e31359 |
m_shouldSucceed = false;
|
|
Packit Service |
e31359 |
}
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
void setShouldSucceed()
|
|
Packit Service |
e31359 |
{
|
|
Packit Service |
e31359 |
m_shouldSucceed = true;
|
|
Packit Service |
e31359 |
}
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
void setExpectedCallCount( int callCount =1 )
|
|
Packit Service |
e31359 |
{
|
|
Packit Service |
e31359 |
m_expectedCallCount = callCount;
|
|
Packit Service |
e31359 |
m_hasExpectation = true;
|
|
Packit Service |
e31359 |
}
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
void verify()
|
|
Packit Service |
e31359 |
{
|
|
Packit Service |
e31359 |
if ( m_hasExpectation )
|
|
Packit Service |
e31359 |
{
|
|
Packit Service |
e31359 |
CPPUNIT_ASSERT_EQUAL_MESSAGE( "MockFunctor: bad call count",
|
|
Packit Service |
e31359 |
m_expectedCallCount,
|
|
Packit Service |
e31359 |
m_actualCallCount );
|
|
Packit Service |
e31359 |
}
|
|
Packit Service |
e31359 |
}
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
private:
|
|
Packit Service |
e31359 |
bool m_shouldSucceed;
|
|
Packit Service |
e31359 |
bool m_shouldThrow;
|
|
Packit Service |
e31359 |
bool m_shouldThrowFailureException;
|
|
Packit Service |
e31359 |
bool m_hasExpectation;
|
|
Packit Service |
e31359 |
int m_actualCallCount;
|
|
Packit Service |
e31359 |
int m_expectedCallCount;
|
|
Packit Service |
e31359 |
};
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
#endif // MOCKFUNCTOR_H
|