162 lines
2.8 KiB
C++
162 lines
2.8 KiB
C++
#include "CoreSuite.h"
|
|
#include "FailureException.h"
|
|
#include "MockTestCase.h"
|
|
#include "TestCaseTest.h"
|
|
#include <cppunit/TestResult.h>
|
|
|
|
/*
|
|
- test have been done to check exception management in run(). other
|
|
tests need to be added to check the other aspect of TestCase.
|
|
*/
|
|
|
|
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( TestCaseTest,
|
|
coreSuiteName() );
|
|
|
|
|
|
TestCaseTest::TestCaseTest()
|
|
{
|
|
}
|
|
|
|
|
|
TestCaseTest::~TestCaseTest()
|
|
{
|
|
}
|
|
|
|
|
|
void
|
|
TestCaseTest::setUp()
|
|
{
|
|
m_testListener = new MockTestListener( "mock-testlistener" );
|
|
m_result = new CPPUNIT_NS::TestResult();
|
|
m_result->addListener( m_testListener );
|
|
}
|
|
|
|
|
|
void
|
|
TestCaseTest::tearDown()
|
|
{
|
|
delete m_result;
|
|
delete m_testListener;
|
|
}
|
|
|
|
|
|
void
|
|
TestCaseTest::testSetUpFailure()
|
|
{
|
|
checkFailure( true, false, false );
|
|
}
|
|
|
|
|
|
void
|
|
TestCaseTest::testRunTestFailure()
|
|
{
|
|
checkFailure( false, true, false );
|
|
}
|
|
|
|
|
|
void
|
|
TestCaseTest::testTearDownFailure()
|
|
{
|
|
checkFailure( false, false, true );
|
|
}
|
|
|
|
|
|
void
|
|
TestCaseTest::testFailAll()
|
|
{
|
|
checkFailure( true, true, true );
|
|
}
|
|
|
|
|
|
void
|
|
TestCaseTest::testNoFailure()
|
|
{
|
|
checkFailure( false, false, false );
|
|
}
|
|
|
|
|
|
void
|
|
TestCaseTest::checkFailure( bool failSetUp,
|
|
bool failRunTest,
|
|
bool failTearDown )
|
|
{
|
|
try
|
|
{
|
|
MockTestCase testCase( "mock-test" );
|
|
if ( failSetUp )
|
|
testCase.makeSetUpThrow();
|
|
if ( failRunTest )
|
|
testCase.makeRunTestThrow();
|
|
if ( failTearDown )
|
|
testCase.makeTearDownThrow();
|
|
testCase.setExpectedSetUpCall( 1 );
|
|
testCase.setExpectedRunTestCall( failSetUp ? 0 : 1 );
|
|
testCase.setExpectedTearDownCall( failSetUp ? 0 : 1 );
|
|
|
|
testCase.run( m_result );
|
|
|
|
testCase.verify();
|
|
}
|
|
catch ( FailureException & )
|
|
{
|
|
CPPUNIT_ASSERT_MESSAGE( "exception should have been caught", false );
|
|
}
|
|
}
|
|
|
|
|
|
void
|
|
TestCaseTest::testCountTestCases()
|
|
{
|
|
CPPUNIT_NS::TestCase test;
|
|
CPPUNIT_ASSERT_EQUAL( 1, test.countTestCases() );
|
|
}
|
|
|
|
|
|
void
|
|
TestCaseTest::testDefaultConstructor()
|
|
{
|
|
CPPUNIT_NS::TestCase test;
|
|
CPPUNIT_ASSERT_EQUAL( std::string(""), test.getName() );
|
|
}
|
|
|
|
|
|
void
|
|
TestCaseTest::testConstructorWithName()
|
|
{
|
|
std::string testName( "TestName" );
|
|
CPPUNIT_NS::TestCase test( testName );
|
|
CPPUNIT_ASSERT_EQUAL( testName, test.getName() );
|
|
}
|
|
|
|
|
|
void
|
|
TestCaseTest::testTwoRun()
|
|
{
|
|
MockTestCase test1( "mocktest1" );
|
|
test1.makeRunTestThrow();
|
|
m_testListener->setExpectedStartTestCall( 2 );
|
|
m_testListener->setExpectedAddFailureCall( 2 );
|
|
m_testListener->setExpectedEndTestCall( 2 );
|
|
|
|
test1.run( m_result );
|
|
test1.run( m_result );
|
|
|
|
m_testListener->verify();
|
|
}
|
|
|
|
|
|
void
|
|
TestCaseTest::testGetChildTestCount()
|
|
{
|
|
CPPUNIT_NS::TestCase test( "test" );
|
|
CPPUNIT_ASSERT_EQUAL( 0, test.getChildTestCount() );
|
|
}
|
|
|
|
|
|
void
|
|
TestCaseTest::testGetChildTestAtThrow()
|
|
{
|
|
CPPUNIT_NS::TestCase test( "test" );
|
|
test.getChildTestAt( 0 );
|
|
}
|