Blame examples/cppunittest/TestCallerTest.cpp

Packit 8c9aa0
#include "FailureException.h"
Packit 8c9aa0
#include "HelperSuite.h"
Packit 8c9aa0
#include "TestCallerTest.h"
Packit 8c9aa0
#include <cppunit/extensions/HelperMacros.h>
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( TestCallerTest, 
Packit 8c9aa0
                                       helperSuiteName() );
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
TestCallerTest::ExceptionThrower::testThrowFailureException()
Packit 8c9aa0
{
Packit 8c9aa0
  throw FailureException();
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
TestCallerTest::ExceptionThrower::testThrowException()
Packit 8c9aa0
{
Packit 8c9aa0
  throw CPPUNIT_NS::Exception( CPPUNIT_NS::Message( "expected Exception" ) );
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
TestCallerTest::ExceptionThrower::testThrowNothing()
Packit 8c9aa0
{
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
TestCallerTest::TestCallerTest() : 
Packit 8c9aa0
    m_testName( "TrackedTestCaseCaller" )
Packit 8c9aa0
{
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
TestCallerTest::~TestCallerTest()
Packit 8c9aa0
{
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
TestCallerTest::setUp()
Packit 8c9aa0
{
Packit 8c9aa0
  m_constructorCount = 0;
Packit 8c9aa0
  m_destructorCount = 0;
Packit 8c9aa0
  m_setUpCount = 0;
Packit 8c9aa0
  m_tearDownCount = 0;
Packit 8c9aa0
  m_testCount = 0;
Packit 8c9aa0
  TrackedTestCase::setTracker( this );
Packit 8c9aa0
  m_testListener = new MockTestListener( "listener1" );
Packit 8c9aa0
  m_result = new CPPUNIT_NS::TestResult();
Packit 8c9aa0
  m_result->addListener( m_testListener );
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
TestCallerTest::tearDown()
Packit 8c9aa0
{
Packit 8c9aa0
  TrackedTestCase::removeTracker();
Packit 8c9aa0
  delete m_result;
Packit 8c9aa0
  delete m_testListener;
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
TestCallerTest::onConstructor()
Packit 8c9aa0
{
Packit 8c9aa0
  m_constructorCount++;
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
TestCallerTest::onDestructor()
Packit 8c9aa0
{
Packit 8c9aa0
  m_destructorCount++;
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
TestCallerTest::onSetUp()
Packit 8c9aa0
{
Packit 8c9aa0
  m_setUpCount++;
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
TestCallerTest::onTearDown()
Packit 8c9aa0
{
Packit 8c9aa0
  m_tearDownCount++;
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
TestCallerTest::onTest()
Packit 8c9aa0
{
Packit 8c9aa0
  m_testCount++;
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
TestCallerTest::testBasicConstructor()
Packit 8c9aa0
{
Packit 8c9aa0
  {
Packit 8c9aa0
    CPPUNIT_NS::TestCaller<TrackedTestCase> caller( m_testName, 
Packit 8c9aa0
                                                 &TrackedTestCase::test );
Packit 8c9aa0
    checkTestName( caller.getName() );
Packit 8c9aa0
    checkNothingButConstructorCalled();
Packit 8c9aa0
Packit 8c9aa0
    caller.run( m_result );
Packit 8c9aa0
Packit 8c9aa0
    checkRunningSequenceCalled();
Packit 8c9aa0
  } // Force destruction of the test caller.
Packit 8c9aa0
  CPPUNIT_ASSERT_EQUAL( 1, m_destructorCount );
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
TestCallerTest::testReferenceConstructor()
Packit 8c9aa0
{
Packit 8c9aa0
  TrackedTestCase testCase;
Packit 8c9aa0
  {
Packit 8c9aa0
    CPPUNIT_NS::TestCaller<TrackedTestCase> caller( "TrackedTestCaseCaller", 
Packit 8c9aa0
                                                 &TrackedTestCase::test, 
Packit 8c9aa0
                                                 testCase );
Packit 8c9aa0
    checkTestName( caller.getName() );
Packit 8c9aa0
    checkNothingButConstructorCalled();
Packit 8c9aa0
Packit 8c9aa0
    caller.run( m_result );
Packit 8c9aa0
Packit 8c9aa0
    checkRunningSequenceCalled();
Packit 8c9aa0
  } // Force destruction of the test caller.
Packit 8c9aa0
  CPPUNIT_ASSERT_EQUAL( 0, m_destructorCount );
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
TestCallerTest::testPointerConstructor()
Packit 8c9aa0
{
Packit 8c9aa0
  TrackedTestCase *testCase = new TrackedTestCase();
Packit 8c9aa0
  {
Packit 8c9aa0
    CPPUNIT_NS::TestCaller<TrackedTestCase> caller( m_testName, 
Packit 8c9aa0
                                                 &TrackedTestCase::test, 
Packit 8c9aa0
                                                 testCase );
Packit 8c9aa0
    checkTestName( caller.getName() );
Packit 8c9aa0
    checkNothingButConstructorCalled();
Packit 8c9aa0
Packit 8c9aa0
    caller.run( m_result );
Packit 8c9aa0
Packit 8c9aa0
    checkRunningSequenceCalled();
Packit 8c9aa0
  } // Force destruction of the test caller.
Packit 8c9aa0
  CPPUNIT_ASSERT_EQUAL( 1, m_destructorCount );
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
/*
Packit 8c9aa0
// Now done by ExceptionTestCaseDecorator
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
TestCallerTest::testExpectFailureException()
Packit 8c9aa0
{
Packit 8c9aa0
  CPPUNIT_NS::TestCaller<ExceptionThrower,FailureException> caller( 
Packit 8c9aa0
      m_testName,
Packit 8c9aa0
      &ExceptionThrower::testThrowFailureException );
Packit 8c9aa0
  m_testListener->setExpectNoFailure();
Packit 8c9aa0
  caller.run( m_result );
Packit 8c9aa0
  m_testListener->verify();
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
TestCallerTest::testExpectException()
Packit 8c9aa0
{
Packit 8c9aa0
  CPPUNIT_NS::TestCaller<ExceptionThrower,CPPUNIT_NS::Exception> caller( 
Packit 8c9aa0
      m_testName,
Packit 8c9aa0
      &ExceptionThrower::testThrowException );
Packit 8c9aa0
  m_testListener->setExpectNoFailure();
Packit 8c9aa0
  caller.run( m_result );
Packit 8c9aa0
  m_testListener->verify();
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
TestCallerTest::testExpectedExceptionNotCaught()
Packit 8c9aa0
{
Packit 8c9aa0
  CPPUNIT_NS::TestCaller<ExceptionThrower,FailureException> caller( 
Packit 8c9aa0
      m_testName,
Packit 8c9aa0
      &ExceptionThrower::testThrowNothing );
Packit 8c9aa0
  m_testListener->setExpectedAddFailureCall( 1 );
Packit 8c9aa0
  caller.run( m_result );
Packit 8c9aa0
  m_testListener->verify();
Packit 8c9aa0
}
Packit 8c9aa0
*/
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
TestCallerTest::checkNothingButConstructorCalled()
Packit 8c9aa0
{
Packit 8c9aa0
  CPPUNIT_ASSERT_EQUAL( 1, m_constructorCount );
Packit 8c9aa0
  CPPUNIT_ASSERT_EQUAL( 0, m_destructorCount );
Packit 8c9aa0
  CPPUNIT_ASSERT_EQUAL( 0, m_setUpCount );
Packit 8c9aa0
  CPPUNIT_ASSERT_EQUAL( 0, m_tearDownCount );
Packit 8c9aa0
  CPPUNIT_ASSERT_EQUAL( 0, m_testCount );
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
TestCallerTest::checkRunningSequenceCalled()
Packit 8c9aa0
{
Packit 8c9aa0
  CPPUNIT_ASSERT_EQUAL( 1, m_setUpCount );
Packit 8c9aa0
  CPPUNIT_ASSERT_EQUAL( 1, m_testCount );
Packit 8c9aa0
  CPPUNIT_ASSERT_EQUAL( 1, m_tearDownCount );
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
TestCallerTest::checkTestName( std::string testName )
Packit 8c9aa0
{
Packit 8c9aa0
  CPPUNIT_ASSERT( testName == m_testName );
Packit 8c9aa0
}