Blame examples/cppunittest/TestResultTest.cpp

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