#include "CoreSuite.h"
#include "TestTest.h"
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( TestTest,
coreSuiteName() );
TestTest::TestTest() :
CPPUNIT_NS::TestFixture()
{
}
TestTest::~TestTest()
{
}
void
TestTest::setUp()
{
m_suite = new CPPUNIT_NS::TestSuite( "suite" );
m_test1 = new MockTestCase( "test1" );
m_test2 = new MockTestCase( "test2" );
m_suite->addTest( m_test1 );
m_suite->addTest( m_test2 );
m_path = new CPPUNIT_NS::TestPath();
}
void
TestTest::tearDown()
{
delete m_suite;
delete m_path;
}
void
TestTest::testFindTestPathPointerThis()
{
CPPUNIT_ASSERT( m_test1->findTestPath( m_test1, *m_path ) );
CPPUNIT_ASSERT_EQUAL( 1, m_path->getTestCount() );
CPPUNIT_ASSERT( m_test1 == m_path->getChildTest() );
m_path->removeTests();
CPPUNIT_ASSERT( m_suite->findTestPath( m_suite, *m_path ) );
CPPUNIT_ASSERT_EQUAL( 1, m_path->getTestCount() );
CPPUNIT_ASSERT( m_suite == m_path->getChildTest() );
}
void
TestTest::testFindTestPathPointer()
{
CPPUNIT_ASSERT( m_suite->findTestPath( m_test1, *m_path ) );
CPPUNIT_ASSERT_EQUAL( 2, m_path->getTestCount() );
CPPUNIT_ASSERT( m_suite == m_path->getTestAt(0) );
CPPUNIT_ASSERT( m_test1 == m_path->getTestAt(1) );
}
void
TestTest::testFindTestPathPointerFail()
{
MockTestCase test( "test" );
CPPUNIT_ASSERT( !m_suite->findTestPath( &test, *m_path ) );
CPPUNIT_ASSERT( !m_path->isValid() );
}
void
TestTest::testFindTestPathNameThis()
{
CPPUNIT_ASSERT( m_test1->findTestPath( "test1", *m_path ) );
CPPUNIT_ASSERT_EQUAL( 1, m_path->getTestCount() );
CPPUNIT_ASSERT( m_test1 == m_path->getChildTest() );
m_path->removeTests();
CPPUNIT_ASSERT( m_suite->findTestPath( "suite", *m_path ) );
CPPUNIT_ASSERT_EQUAL( 1, m_path->getTestCount() );
CPPUNIT_ASSERT( m_suite == m_path->getChildTest() );
}
void
TestTest::testFindTestPathName()
{
CPPUNIT_ASSERT( m_suite->findTestPath( "test2", *m_path ) );
CPPUNIT_ASSERT_EQUAL( 2, m_path->getTestCount() );
CPPUNIT_ASSERT( m_suite == m_path->getTestAt(0) );
CPPUNIT_ASSERT( m_test2 == m_path->getTestAt(1) );
}
void
TestTest::testFindTestPathNameFail()
{
CPPUNIT_ASSERT( !m_suite->findTestPath( "bad-test", *m_path ) );
CPPUNIT_ASSERT( !m_path->isValid() );
}
void
TestTest::testFindTest()
{
CPPUNIT_ASSERT( m_test1 == m_suite->findTest( "test1" ) );
}
void
TestTest::testFindTestThrow()
{
m_suite->findTest( "no-name" );
}
void
TestTest::testResolveTestPath()
{
CPPUNIT_NS::TestPath path1 = m_suite->resolveTestPath( "suite");
CPPUNIT_ASSERT_EQUAL( 1, path1.getTestCount() );
CPPUNIT_ASSERT( m_suite == path1.getTestAt(0) );
CPPUNIT_NS::TestPath path2 = m_suite->resolveTestPath( "suite/test2");
CPPUNIT_ASSERT_EQUAL( 2, path2.getTestCount() );
CPPUNIT_ASSERT( m_suite == path2.getTestAt(0) );
CPPUNIT_ASSERT( m_test2 == path2.getTestAt(1) );
}