Blame examples/cppunittest/MockTestListener.cpp

Packit 8c9aa0
#include <cppunit/TestAssert.h>
Packit 8c9aa0
#include <cppunit/TestFailure.h>
Packit 8c9aa0
#include "MockTestListener.h"
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
MockTestListener::MockTestListener( std::string name )
Packit 8c9aa0
    : m_name( name )
Packit 8c9aa0
    , m_hasExpectationForStartTest( false )
Packit 8c9aa0
    , m_hasParametersExpectationForStartTest( false )
Packit 8c9aa0
    , m_expectedStartTestCallCount( 0 )
Packit 8c9aa0
    , m_startTestCall( 0 )
Packit 8c9aa0
    , m_hasExpectationForEndTest( false )
Packit 8c9aa0
    , m_hasParametersExpectationForEndTest( false )
Packit 8c9aa0
    , m_expectedEndTestCallCount( 0 )
Packit 8c9aa0
    , m_endTestCall( 0 )
Packit 8c9aa0
    , m_hasExpectationForStartSuite( false )
Packit 8c9aa0
    , m_hasParametersExpectationForStartSuite( false )
Packit 8c9aa0
    , m_expectedStartSuiteCallCount( 0 )
Packit 8c9aa0
    , m_startSuiteCall( 0 )
Packit 8c9aa0
    , m_hasExpectationForEndSuite( false )
Packit 8c9aa0
    , m_hasParametersExpectationForEndSuite( false )
Packit 8c9aa0
    , m_expectedEndSuiteCallCount( 0 )
Packit 8c9aa0
    , m_endSuiteCall( 0 )
Packit 8c9aa0
    , m_hasExpectationForStartTestRun( false )
Packit 8c9aa0
    , m_hasParametersExpectationForStartTestRun( false )
Packit 8c9aa0
    , m_expectedStartTestRunCallCount( 0 )
Packit 8c9aa0
    , m_startTestRunCall( 0 )
Packit 8c9aa0
    , m_hasExpectationForEndTestRun( false )
Packit 8c9aa0
    , m_hasParametersExpectationForEndTestRun( false )
Packit 8c9aa0
    , m_expectedEndTestRunCallCount( 0 )
Packit 8c9aa0
    , m_endTestRunCall( 0 )
Packit 8c9aa0
    , m_hasExpectationForAddFailure( false )
Packit 8c9aa0
    , m_hasExpectationForSomeFailure( false )
Packit 8c9aa0
    , m_hasParametersExpectationForAddFailure( false )
Packit 8c9aa0
    , m_expectedAddFailureCallCount( 0 )
Packit 8c9aa0
    , m_addFailureCall( 0 )
Packit 8c9aa0
    , m_expectedFailedTest( NULL )
Packit 8c9aa0
    , m_expectedException( NULL )
Packit 8c9aa0
    , m_expectedIsError( false )
Packit 8c9aa0
{
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
MockTestListener::setExpectFailure( CPPUNIT_NS::Test *failedTest,
Packit 8c9aa0
                                    CPPUNIT_NS::Exception *thrownException,
Packit 8c9aa0
                                    bool isError )
Packit 8c9aa0
{
Packit 8c9aa0
  m_hasExpectationForAddFailure = true;
Packit 8c9aa0
  m_hasParametersExpectationForAddFailure = true;
Packit 8c9aa0
  m_expectedAddFailureCallCount = 1;
Packit 8c9aa0
  m_expectedFailedTest = failedTest;
Packit 8c9aa0
  m_expectedException = thrownException;
Packit 8c9aa0
  m_expectedIsError = isError;
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
MockTestListener::setExpectNoFailure()
Packit 8c9aa0
{
Packit 8c9aa0
  m_hasExpectationForAddFailure = true;
Packit 8c9aa0
  m_expectedAddFailureCallCount = 0;
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
MockTestListener::setExpectFailure()
Packit 8c9aa0
{
Packit 8c9aa0
  m_hasExpectationForSomeFailure = true;
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
MockTestListener::setExpectedAddFailureCall( int callCount )
Packit 8c9aa0
{
Packit 8c9aa0
  m_hasExpectationForAddFailure = true;
Packit 8c9aa0
  m_expectedAddFailureCallCount = callCount;
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
MockTestListener::setExpectStartTest( CPPUNIT_NS::Test *test )
Packit 8c9aa0
{
Packit 8c9aa0
  m_hasExpectationForStartTest = true;
Packit 8c9aa0
  m_hasParametersExpectationForStartTest = true;
Packit 8c9aa0
  m_expectedStartTestCallCount = 1;
Packit 8c9aa0
  m_expectedStartTest = test;
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
MockTestListener::setExpectedStartTestCall( int callCount )
Packit 8c9aa0
{
Packit 8c9aa0
  m_hasExpectationForStartTest = true;
Packit 8c9aa0
  m_expectedStartTestCallCount = callCount;
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
MockTestListener::setExpectEndTest( CPPUNIT_NS::Test *test )
Packit 8c9aa0
{
Packit 8c9aa0
  m_hasExpectationForEndTest = true;
Packit 8c9aa0
  m_hasParametersExpectationForEndTest = true;
Packit 8c9aa0
  m_expectedEndTestCallCount = 1;
Packit 8c9aa0
  m_expectedEndTest = test;
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
MockTestListener::setExpectedEndTestCall( int callCount )
Packit 8c9aa0
{
Packit 8c9aa0
  m_hasExpectationForEndTest = true;
Packit 8c9aa0
  m_expectedEndTestCallCount = callCount;
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
MockTestListener::setExpectStartSuite( CPPUNIT_NS::Test *test )
Packit 8c9aa0
{
Packit 8c9aa0
  m_hasExpectationForStartSuite = true;
Packit 8c9aa0
  m_hasParametersExpectationForStartSuite = true;
Packit 8c9aa0
  m_expectedStartSuiteCallCount = 1;
Packit 8c9aa0
  m_expectedStartSuite = test;
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
MockTestListener::setExpectedStartSuiteCall( int callCount )
Packit 8c9aa0
{
Packit 8c9aa0
  m_hasExpectationForStartSuite = true;
Packit 8c9aa0
  m_expectedStartSuiteCallCount = callCount;
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
MockTestListener::setExpectEndSuite( CPPUNIT_NS::Test *test )
Packit 8c9aa0
{
Packit 8c9aa0
  m_hasExpectationForEndSuite = true;
Packit 8c9aa0
  m_hasParametersExpectationForEndSuite = true;
Packit 8c9aa0
  m_expectedEndSuiteCallCount = 1;
Packit 8c9aa0
  m_expectedEndSuite = test;
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
MockTestListener::setExpectedEndSuiteCall( int callCount )
Packit 8c9aa0
{
Packit 8c9aa0
  m_hasExpectationForEndSuite = true;
Packit 8c9aa0
  m_expectedEndSuiteCallCount = callCount;
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
MockTestListener::setExpectStartTestRun( CPPUNIT_NS::Test *test,
Packit 8c9aa0
                                         CPPUNIT_NS::TestResult *eventManager )
Packit 8c9aa0
{
Packit 8c9aa0
  m_hasExpectationForStartTestRun = true;
Packit 8c9aa0
  m_hasParametersExpectationForStartTestRun = true;
Packit 8c9aa0
  m_expectedStartTestRunCallCount = 1;
Packit 8c9aa0
  m_expectedStartTestRun = test;
Packit 8c9aa0
  m_expectedStartTestRun2 = eventManager;
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
MockTestListener::setExpectedStartTestRunCall( int callCount )
Packit 8c9aa0
{
Packit 8c9aa0
  m_hasExpectationForStartTestRun = true;
Packit 8c9aa0
  m_expectedStartTestRunCallCount = callCount;
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
MockTestListener::setExpectEndTestRun( CPPUNIT_NS::Test *test,
Packit 8c9aa0
                                       CPPUNIT_NS::TestResult *eventManager )
Packit 8c9aa0
{
Packit 8c9aa0
  m_hasExpectationForEndTestRun = true;
Packit 8c9aa0
  m_hasParametersExpectationForEndTestRun = true;
Packit 8c9aa0
  m_expectedEndTestRunCallCount = 1;
Packit 8c9aa0
  m_expectedEndTestRun = test;
Packit 8c9aa0
  m_expectedEndTestRun2 = eventManager;
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
MockTestListener::setExpectedEndTestRunCall( int callCount )
Packit 8c9aa0
{
Packit 8c9aa0
  m_hasExpectationForEndTestRun = true;
Packit 8c9aa0
  m_expectedEndTestRunCallCount = callCount;
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
MockTestListener::addFailure( const CPPUNIT_NS::TestFailure &failure )
Packit 8c9aa0
{
Packit 8c9aa0
  if ( m_hasExpectationForAddFailure  ||  m_hasExpectationForSomeFailure )
Packit 8c9aa0
    ++m_addFailureCall;
Packit 8c9aa0
Packit 8c9aa0
  if ( m_hasExpectationForAddFailure )
Packit 8c9aa0
  {
Packit 8c9aa0
    CPPUNIT_ASSERT_MESSAGE( m_name + ": unexpected call",
Packit 8c9aa0
                            m_addFailureCall <= m_expectedAddFailureCallCount );
Packit 8c9aa0
  }
Packit 8c9aa0
Packit 8c9aa0
  if ( m_hasParametersExpectationForAddFailure )
Packit 8c9aa0
  {
Packit 8c9aa0
    CPPUNIT_ASSERT_MESSAGE( m_name + ": bad test",
Packit 8c9aa0
                            m_expectedFailedTest == failure.failedTest() );
Packit 8c9aa0
    CPPUNIT_ASSERT_MESSAGE( m_name + ": bad thrownException",
Packit 8c9aa0
                            m_expectedException == failure.thrownException() );
Packit 8c9aa0
    CPPUNIT_ASSERT_MESSAGE( m_name + ": bad isError",
Packit 8c9aa0
                            m_expectedIsError == failure.isError() );
Packit 8c9aa0
  }
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
MockTestListener::startTest( CPPUNIT_NS::Test *test )
Packit 8c9aa0
{
Packit 8c9aa0
  if ( m_hasExpectationForStartTest )
Packit 8c9aa0
  {
Packit 8c9aa0
    ++m_startTestCall;
Packit 8c9aa0
    CPPUNIT_ASSERT_MESSAGE( m_name + ": unexpected call",
Packit 8c9aa0
                            m_startTestCall <= m_expectedStartTestCallCount );
Packit 8c9aa0
  
Packit 8c9aa0
  }
Packit 8c9aa0
Packit 8c9aa0
  if ( m_hasParametersExpectationForStartTest )
Packit 8c9aa0
  {
Packit 8c9aa0
    CPPUNIT_ASSERT_MESSAGE( m_name + ": bad test",
Packit 8c9aa0
                            m_expectedStartTest == test );
Packit 8c9aa0
  }
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
MockTestListener::endTest( CPPUNIT_NS::Test *test )
Packit 8c9aa0
{
Packit 8c9aa0
  if ( m_hasExpectationForEndTest )
Packit 8c9aa0
  {
Packit 8c9aa0
    ++m_endTestCall;
Packit 8c9aa0
    CPPUNIT_ASSERT_MESSAGE( m_name + ": unexpected call",
Packit 8c9aa0
                            m_endTestCall <= m_expectedEndTestCallCount );
Packit 8c9aa0
  }
Packit 8c9aa0
Packit 8c9aa0
  if ( m_hasParametersExpectationForEndTest )
Packit 8c9aa0
  {
Packit 8c9aa0
    CPPUNIT_ASSERT_MESSAGE( m_name + ": bad test",
Packit 8c9aa0
                            m_expectedEndTest == test );
Packit 8c9aa0
  }
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
MockTestListener::startSuite( CPPUNIT_NS::Test *test )
Packit 8c9aa0
{
Packit 8c9aa0
  if ( m_hasExpectationForStartSuite )
Packit 8c9aa0
  {
Packit 8c9aa0
    ++m_startSuiteCall;
Packit 8c9aa0
    CPPUNIT_ASSERT_MESSAGE( m_name + ": unexpected call",
Packit 8c9aa0
                            m_startSuiteCall <= m_expectedStartSuiteCallCount );
Packit 8c9aa0
  }
Packit 8c9aa0
Packit 8c9aa0
  if ( m_hasParametersExpectationForStartSuite )
Packit 8c9aa0
  {
Packit 8c9aa0
    CPPUNIT_ASSERT_MESSAGE( m_name + ": bad test",
Packit 8c9aa0
                            m_expectedStartSuite == test );
Packit 8c9aa0
  }
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
MockTestListener::endSuite( CPPUNIT_NS::Test *test )
Packit 8c9aa0
{
Packit 8c9aa0
  if ( m_hasExpectationForEndSuite )
Packit 8c9aa0
  {
Packit 8c9aa0
    ++m_endSuiteCall;
Packit 8c9aa0
    CPPUNIT_ASSERT_MESSAGE( m_name + ": unexpected call",
Packit 8c9aa0
                            m_endSuiteCall <= m_expectedEndSuiteCallCount );
Packit 8c9aa0
  }
Packit 8c9aa0
Packit 8c9aa0
  if ( m_hasParametersExpectationForEndSuite )
Packit 8c9aa0
  {
Packit 8c9aa0
    CPPUNIT_ASSERT_MESSAGE( m_name + ": bad test",
Packit 8c9aa0
                            m_expectedEndSuite == test );
Packit 8c9aa0
  }
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
MockTestListener::startTestRun( CPPUNIT_NS::Test *test, 
Packit 8c9aa0
                                CPPUNIT_NS::TestResult *eventManager )
Packit 8c9aa0
{
Packit 8c9aa0
  if ( m_hasExpectationForStartTestRun )
Packit 8c9aa0
  {
Packit 8c9aa0
    ++m_startTestRunCall;
Packit 8c9aa0
    CPPUNIT_ASSERT_MESSAGE( m_name + ": unexpected call",
Packit 8c9aa0
                            m_startTestRunCall <= m_expectedStartTestRunCallCount );
Packit 8c9aa0
  }
Packit 8c9aa0
Packit 8c9aa0
  if ( m_hasParametersExpectationForStartTestRun )
Packit 8c9aa0
  {
Packit 8c9aa0
    CPPUNIT_ASSERT_MESSAGE( m_name + ": bad test",
Packit 8c9aa0
                            m_expectedStartTestRun == test );
Packit 8c9aa0
    CPPUNIT_ASSERT_MESSAGE( m_name + ": bad eventManager",
Packit 8c9aa0
                            m_expectedStartTestRun2 == eventManager );
Packit 8c9aa0
  }
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
MockTestListener::endTestRun( CPPUNIT_NS::Test *test, 
Packit 8c9aa0
                              CPPUNIT_NS::TestResult *eventManager )
Packit 8c9aa0
{
Packit 8c9aa0
  if ( m_hasExpectationForEndTestRun )
Packit 8c9aa0
  {
Packit 8c9aa0
    ++m_endTestRunCall;
Packit 8c9aa0
    CPPUNIT_ASSERT_MESSAGE( m_name + ": unexpected call",
Packit 8c9aa0
                            m_endTestRunCall <= m_expectedEndTestRunCallCount );
Packit 8c9aa0
  }
Packit 8c9aa0
Packit 8c9aa0
  if ( m_hasParametersExpectationForEndTestRun )
Packit 8c9aa0
  {
Packit 8c9aa0
    CPPUNIT_ASSERT_MESSAGE( m_name + ": bad test",
Packit 8c9aa0
                            m_expectedEndTestRun == test );
Packit 8c9aa0
    CPPUNIT_ASSERT_MESSAGE( m_name + ": bad eventManager",
Packit 8c9aa0
                            m_expectedEndTestRun2 == eventManager );
Packit 8c9aa0
  }
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
MockTestListener::verify()
Packit 8c9aa0
{
Packit 8c9aa0
  if ( m_hasExpectationForStartTest )
Packit 8c9aa0
  {
Packit 8c9aa0
    CPPUNIT_ASSERT_EQUAL_MESSAGE( m_name + ": missing startTest calls",
Packit 8c9aa0
                                  m_expectedStartTestCallCount, 
Packit 8c9aa0
                                  m_startTestCall );
Packit 8c9aa0
  }
Packit 8c9aa0
Packit 8c9aa0
  if ( m_hasExpectationForEndTest )
Packit 8c9aa0
  {
Packit 8c9aa0
    CPPUNIT_ASSERT_EQUAL_MESSAGE( m_name + ": missing endTest calls",
Packit 8c9aa0
                                  m_expectedEndTestCallCount, 
Packit 8c9aa0
                                  m_endTestCall );
Packit 8c9aa0
  }
Packit 8c9aa0
Packit 8c9aa0
  if ( m_hasExpectationForStartSuite )
Packit 8c9aa0
  {
Packit 8c9aa0
    CPPUNIT_ASSERT_EQUAL_MESSAGE( m_name + ": missing startSuite calls",
Packit 8c9aa0
                                  m_expectedStartSuiteCallCount, 
Packit 8c9aa0
                                  m_startSuiteCall );
Packit 8c9aa0
  }
Packit 8c9aa0
Packit 8c9aa0
  if ( m_hasExpectationForEndSuite )
Packit 8c9aa0
  {
Packit 8c9aa0
    CPPUNIT_ASSERT_EQUAL_MESSAGE( m_name + ": missing endSuite calls",
Packit 8c9aa0
                                  m_expectedEndSuiteCallCount, 
Packit 8c9aa0
                                  m_endSuiteCall );
Packit 8c9aa0
  }
Packit 8c9aa0
Packit 8c9aa0
  if ( m_hasExpectationForStartTestRun )
Packit 8c9aa0
  {
Packit 8c9aa0
    CPPUNIT_ASSERT_EQUAL_MESSAGE( m_name + ": missing startTestRun calls",
Packit 8c9aa0
                                  m_expectedStartTestRunCallCount, 
Packit 8c9aa0
                                  m_startTestRunCall );
Packit 8c9aa0
  }
Packit 8c9aa0
Packit 8c9aa0
  if ( m_hasExpectationForEndTestRun )
Packit 8c9aa0
  {
Packit 8c9aa0
    CPPUNIT_ASSERT_EQUAL_MESSAGE( m_name + ": missing endTestRun calls",
Packit 8c9aa0
                                  m_expectedEndTestRunCallCount, 
Packit 8c9aa0
                                  m_endTestRunCall );
Packit 8c9aa0
  }
Packit 8c9aa0
Packit 8c9aa0
  if ( m_hasExpectationForAddFailure )
Packit 8c9aa0
  {
Packit 8c9aa0
    CPPUNIT_ASSERT_EQUAL_MESSAGE( m_name + ": missing addFailure calls",
Packit 8c9aa0
                                  m_expectedAddFailureCallCount, 
Packit 8c9aa0
                                  m_addFailureCall );
Packit 8c9aa0
  }
Packit 8c9aa0
Packit 8c9aa0
  if ( m_hasExpectationForSomeFailure )
Packit 8c9aa0
  {
Packit 8c9aa0
    CPPUNIT_ASSERT_MESSAGE( m_name + ": there was no call to "
Packit 8c9aa0
                                "MockTestListener::addFailure()",
Packit 8c9aa0
                            m_addFailureCall > 0 );
Packit 8c9aa0
  }
Packit 8c9aa0
}