Blame examples/cppunittest/TestResultTest.cpp

Packit Service e31359
#include "CoreSuite.h"
Packit Service e31359
#include "MockFunctor.h"
Packit Service e31359
#include "MockProtector.h"
Packit Service e31359
#include "MockTestCase.h"
Packit Service e31359
#include "TestResultTest.h"
Packit Service e31359
Packit Service e31359
Packit Service e31359
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( TestResultTest,
Packit Service e31359
                                       coreSuiteName() );
Packit Service e31359
Packit Service e31359
Packit Service e31359
TestResultTest::TestResultTest()
Packit Service e31359
{
Packit Service e31359
}
Packit Service e31359
Packit Service e31359
Packit Service e31359
TestResultTest::~TestResultTest()
Packit Service e31359
{
Packit Service e31359
}
Packit Service e31359
Packit Service e31359
Packit Service e31359
void 
Packit Service e31359
TestResultTest::setUp()
Packit Service e31359
{
Packit Service e31359
  m_result = new CPPUNIT_NS::TestResult();
Packit Service e31359
  m_listener1 = new MockTestListener( "listener1" );
Packit Service e31359
  m_listener2 = new MockTestListener( "listener2" );
Packit Service e31359
  m_dummyTest = new MockTestCase( "dummy-test" );
Packit Service e31359
}
Packit Service e31359
Packit Service e31359
Packit Service e31359
void 
Packit Service e31359
TestResultTest::tearDown()
Packit Service e31359
{
Packit Service e31359
  delete m_dummyTest;
Packit Service e31359
  delete m_listener1;
Packit Service e31359
  delete m_listener2;
Packit Service e31359
  delete m_result;
Packit Service e31359
}
Packit Service e31359
Packit Service e31359
Packit Service e31359
void 
Packit Service e31359
TestResultTest::testConstructor()
Packit Service e31359
{
Packit Service e31359
  CPPUNIT_ASSERT( !m_result->shouldStop() );
Packit Service e31359
}
Packit Service e31359
Packit Service e31359
Packit Service e31359
void 
Packit Service e31359
TestResultTest::testStop()
Packit Service e31359
{
Packit Service e31359
  m_result->stop();
Packit Service e31359
  CPPUNIT_ASSERT( m_result->shouldStop() );
Packit Service e31359
}
Packit Service e31359
Packit Service e31359
Packit Service e31359
void 
Packit Service e31359
TestResultTest::testAddError()
Packit Service e31359
{
Packit Service e31359
  CPPUNIT_NS::Exception *dummyException = new CPPUNIT_NS::Exception( 
Packit Service e31359
                                           CPPUNIT_NS::Message( "some_error" ) );
Packit Service e31359
  m_listener1->setExpectFailure( m_dummyTest, dummyException, true );
Packit Service e31359
  m_result->addListener( m_listener1 );
Packit Service e31359
Packit Service e31359
  m_result->addError( m_dummyTest, dummyException );
Packit Service e31359
Packit Service e31359
  m_listener1->verify();
Packit Service e31359
}
Packit Service e31359
Packit Service e31359
Packit Service e31359
void 
Packit Service e31359
TestResultTest::testAddFailure()
Packit Service e31359
{
Packit Service e31359
  CPPUNIT_NS::Exception *dummyException = new CPPUNIT_NS::Exception( 
Packit Service e31359
                                            CPPUNIT_NS::Message("some_error" ) );
Packit Service e31359
  m_listener1->setExpectFailure( m_dummyTest, dummyException, false );
Packit Service e31359
  m_result->addListener( m_listener1 );
Packit Service e31359
Packit Service e31359
  m_result->addFailure( m_dummyTest, dummyException );
Packit Service e31359
Packit Service e31359
  m_listener1->verify();
Packit Service e31359
}
Packit Service e31359
Packit Service e31359
Packit Service e31359
void 
Packit Service e31359
TestResultTest::testStartTest()
Packit Service e31359
{
Packit Service e31359
  m_listener1->setExpectStartTest( m_dummyTest );
Packit Service e31359
  m_result->addListener( m_listener1 );
Packit Service e31359
  
Packit Service e31359
  m_result->startTest( m_dummyTest );
Packit Service e31359
Packit Service e31359
  m_listener1->verify();
Packit Service e31359
}
Packit Service e31359
Packit Service e31359
Packit Service e31359
void 
Packit Service e31359
TestResultTest::testEndTest()
Packit Service e31359
{
Packit Service e31359
  m_listener1->setExpectEndTest( m_dummyTest );
Packit Service e31359
  m_result->addListener( m_listener1 );
Packit Service e31359
  
Packit Service e31359
  m_result->endTest( m_dummyTest );
Packit Service e31359
Packit Service e31359
  m_listener1->verify();
Packit Service e31359
}
Packit Service e31359
Packit Service e31359
Packit Service e31359
void 
Packit Service e31359
TestResultTest::testStartSuite()
Packit Service e31359
{
Packit Service e31359
  m_listener1->setExpectStartSuite( m_dummyTest );
Packit Service e31359
  m_result->addListener( m_listener1 );
Packit Service e31359
  
Packit Service e31359
  m_result->startSuite( m_dummyTest );
Packit Service e31359
Packit Service e31359
  m_listener1->verify();
Packit Service e31359
}
Packit Service e31359
Packit Service e31359
Packit Service e31359
void 
Packit Service e31359
TestResultTest::testEndSuite()
Packit Service e31359
{
Packit Service e31359
  m_listener1->setExpectEndSuite( m_dummyTest );
Packit Service e31359
  m_result->addListener( m_listener1 );
Packit Service e31359
  
Packit Service e31359
  m_result->endSuite( m_dummyTest );
Packit Service e31359
Packit Service e31359
  m_listener1->verify();
Packit Service e31359
}
Packit Service e31359
Packit Service e31359
Packit Service e31359
void 
Packit Service e31359
TestResultTest::testRunTest()
Packit Service e31359
{
Packit Service e31359
  m_listener1->setExpectStartTestRun( m_dummyTest, m_result );
Packit Service e31359
  m_listener1->setExpectEndTestRun( m_dummyTest, m_result );
Packit Service e31359
  m_result->addListener( m_listener1 );
Packit Service e31359
  
Packit Service e31359
  m_result->runTest( m_dummyTest );
Packit Service e31359
Packit Service e31359
  m_listener1->verify();
Packit Service e31359
}
Packit Service e31359
Packit Service e31359
Packit Service e31359
void 
Packit Service e31359
TestResultTest::testTwoListener()
Packit Service e31359
{
Packit Service e31359
  m_listener1->setExpectStartTest( m_dummyTest );
Packit Service e31359
  m_listener2->setExpectStartTest( m_dummyTest );
Packit Service e31359
  CPPUNIT_NS::Exception *dummyException1 = new CPPUNIT_NS::Exception( 
Packit Service e31359
                                             CPPUNIT_NS::Message( "some_error" ) );
Packit Service e31359
  m_listener1->setExpectFailure( m_dummyTest, dummyException1, true );
Packit Service e31359
  m_listener2->setExpectFailure( m_dummyTest, dummyException1, true );
Packit Service e31359
  m_listener1->setExpectEndTest( m_dummyTest );
Packit Service e31359
  m_listener2->setExpectEndTest( m_dummyTest );
Packit Service e31359
  m_result->addListener( m_listener1 );
Packit Service e31359
  m_result->addListener( m_listener2 );
Packit Service e31359
Packit Service e31359
  m_result->startTest( m_dummyTest );
Packit Service e31359
  m_result->addError( m_dummyTest, dummyException1 );
Packit Service e31359
  m_result->endTest( m_dummyTest );
Packit Service e31359
Packit Service e31359
  m_listener1->verify();
Packit Service e31359
  m_listener2->verify();
Packit Service e31359
}
Packit Service e31359
Packit Service e31359
Packit Service e31359
void 
Packit Service e31359
TestResultTest::testDefaultProtectSucceed()
Packit Service e31359
{
Packit Service e31359
  MockFunctor functor;
Packit Service e31359
  functor.setShouldSucceed();
Packit Service e31359
  m_listener1->setExpectNoFailure();
Packit Service e31359
Packit Service e31359
  m_result->addListener( m_listener1 );
Packit Service e31359
  CPPUNIT_ASSERT( m_result->protect( functor, m_dummyTest ) );
Packit Service e31359
  m_listener1->verify();
Packit Service e31359
  functor.verify();
Packit Service e31359
}
Packit Service e31359
Packit Service e31359
Packit Service e31359
void 
Packit Service e31359
TestResultTest::testDefaultProtectFail()
Packit Service e31359
{
Packit Service e31359
  MockFunctor functor;
Packit Service e31359
  functor.setShouldFail();
Packit Service e31359
  m_listener1->setExpectNoFailure();
Packit Service e31359
Packit Service e31359
  m_result->addListener( m_listener1 );
Packit Service e31359
  CPPUNIT_ASSERT( !m_result->protect( functor, m_dummyTest ) );
Packit Service e31359
  m_listener1->verify();
Packit Service e31359
  functor.verify();
Packit Service e31359
}
Packit Service e31359
Packit Service e31359
Packit Service e31359
void 
Packit Service e31359
TestResultTest::testDefaultProtectFailIfThrow()
Packit Service e31359
{
Packit Service e31359
  MockFunctor functor;
Packit Service e31359
  functor.setThrowFailureException();
Packit Service e31359
  m_listener1->setExpectFailure();
Packit Service e31359
Packit Service e31359
  m_result->addListener( m_listener1 );
Packit Service e31359
  CPPUNIT_ASSERT( !m_result->protect( functor, m_dummyTest ) );
Packit Service e31359
  m_listener1->verify();
Packit Service e31359
  functor.verify();
Packit Service e31359
}
Packit Service e31359
Packit Service e31359
Packit Service e31359
void 
Packit Service e31359
TestResultTest::testProtectChainPushOneTrap()
Packit Service e31359
{
Packit Service e31359
  MockFunctor functor;
Packit Service e31359
  MockProtector *protector = new MockProtector();
Packit Service e31359
  functor.setThrowMockProtectorException();
Packit Service e31359
  protector->setExpectException();
Packit Service e31359
  m_listener1->setExpectFailure();
Packit Service e31359
Packit Service e31359
  m_result->pushProtector( protector );
Packit Service e31359
  m_result->addListener( m_listener1 );
Packit Service e31359
  CPPUNIT_ASSERT( !m_result->protect( functor, m_dummyTest ) );
Packit Service e31359
  protector->verify();
Packit Service e31359
  m_listener1->verify();
Packit Service e31359
  functor.verify();
Packit Service e31359
}
Packit Service e31359
Packit Service e31359
Packit Service e31359
void 
Packit Service e31359
TestResultTest::testProtectChainPushOnePassThrough()
Packit Service e31359
{
Packit Service e31359
  MockFunctor functor;
Packit Service e31359
  MockProtector *protector = new MockProtector();
Packit Service e31359
  functor.setThrowFailureException();
Packit Service e31359
  protector->setExpectNoException();
Packit Service e31359
  m_listener1->setExpectFailure();
Packit Service e31359
Packit Service e31359
  m_result->pushProtector( protector );
Packit Service e31359
  m_result->addListener( m_listener1 );
Packit Service e31359
  CPPUNIT_ASSERT( !m_result->protect( functor, m_dummyTest ) );
Packit Service e31359
  protector->verify();
Packit Service e31359
  m_listener1->verify();
Packit Service e31359
  functor.verify();
Packit Service e31359
}
Packit Service e31359
Packit Service e31359
Packit Service e31359
void 
Packit Service e31359
TestResultTest::testProtectChainPushTwoTrap()
Packit Service e31359
{
Packit Service e31359
  MockFunctor functor;
Packit Service e31359
  functor.setThrowMockProtectorException();
Packit Service e31359
  // protector1 catch the exception retrown by protector2
Packit Service e31359
  MockProtector *protector1 = new MockProtector();
Packit Service e31359
  protector1->setExpectException();
Packit Service e31359
  // protector2 catch the exception and rethrow it
Packit Service e31359
  MockProtector *protector2 = new MockProtector();
Packit Service e31359
  protector2->setExpectCatchAndPropagateException();
Packit Service e31359
  m_listener1->setExpectFailure();
Packit Service e31359
Packit Service e31359
  m_result->pushProtector( protector1 );
Packit Service e31359
  m_result->pushProtector( protector2 );
Packit Service e31359
  m_result->addListener( m_listener1 );
Packit Service e31359
  CPPUNIT_ASSERT( !m_result->protect( functor, m_dummyTest ) );
Packit Service e31359
  protector1->verify();
Packit Service e31359
  protector2->verify();
Packit Service e31359
  m_listener1->verify();
Packit Service e31359
  functor.verify();
Packit Service e31359
}