#include "CoreSuite.h" #include "TestSuiteTest.h" #include #include "MockTestCase.h" CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( TestSuiteTest, coreSuiteName() ); TestSuiteTest::TestSuiteTest() { } TestSuiteTest::~TestSuiteTest() { } void TestSuiteTest::setUp() { m_suite = new CPPUNIT_NS::TestSuite(); } void TestSuiteTest::tearDown() { delete m_suite; } void TestSuiteTest::testConstructor() { std::string name( "MySuite" ); CPPUNIT_NS::TestSuite suite( name ); CPPUNIT_ASSERT_EQUAL( name, suite.getName() ); } void TestSuiteTest::testCountTestCasesWithNoTest() { CPPUNIT_ASSERT_EQUAL( 0, m_suite->countTestCases() ); } void TestSuiteTest::testCountTestCasesWithTwoTests() { MockTestCase *case1 = new MockTestCase( "test1" ); case1->setExpectedCountTestCasesCall(); MockTestCase *case2 = new MockTestCase( "test2" ); case2->setExpectedCountTestCasesCall(); m_suite->addTest( case1 ); m_suite->addTest( case2 ); CPPUNIT_ASSERT_EQUAL( 2, m_suite->countTestCases() ); case1->verify(); case2->verify(); } void TestSuiteTest::testCountTestCasesWithSubSuite() { MockTestCase *case1 = new MockTestCase( "test1" ); case1->setExpectedCountTestCasesCall(); MockTestCase *case2 = new MockTestCase( "test2" ); case2->setExpectedCountTestCasesCall(); MockTestCase *case3 = new MockTestCase( "test3" ); case3->setExpectedCountTestCasesCall(); CPPUNIT_NS::TestSuite *subSuite = new CPPUNIT_NS::TestSuite( "SubSuite"); subSuite->addTest( case1 ); subSuite->addTest( case2 ); m_suite->addTest( case3 ); m_suite->addTest( subSuite ); CPPUNIT_ASSERT_EQUAL( 3, m_suite->countTestCases() ); case1->verify(); case2->verify(); case3->verify(); } void TestSuiteTest::testRunWithOneTest() { MockTestCase *case1 = new MockTestCase( "test1" ); case1->setExpectedRunTestCall(); m_suite->addTest( case1 ); CPPUNIT_NS::TestResult result; m_suite->run( &result ); case1->verify(); } void TestSuiteTest::testRunWithOneTestAndSubSuite() { MockTestCase *case1 = new MockTestCase( "test1" ); case1->setExpectedRunTestCall(); MockTestCase *case2 = new MockTestCase( "test2" ); case2->setExpectedRunTestCall(); MockTestCase *case3 = new MockTestCase( "test3" ); case3->setExpectedRunTestCall(); CPPUNIT_NS::TestSuite *subSuite = new CPPUNIT_NS::TestSuite( "SubSuite"); subSuite->addTest( case1 ); subSuite->addTest( case2 ); m_suite->addTest( case3 ); m_suite->addTest( subSuite); CPPUNIT_NS::TestResult result; m_suite->run( &result ); case1->verify(); case2->verify(); case3->verify(); } void TestSuiteTest::testGetTests() { m_suite->addTest( new CPPUNIT_NS::TestCase( "test1" ) ); m_suite->addTest( new CPPUNIT_NS::TestCase( "test2" ) ); CPPUNIT_ASSERT_EQUAL( 2, int(m_suite->getTests().size()) ); } void TestSuiteTest::testDeleteContents() { m_suite->addTest( new CPPUNIT_NS::TestCase( "test2" ) ); m_suite->deleteContents(); CPPUNIT_ASSERT_EQUAL( 0, int(m_suite->getTests().size()) ); } void TestSuiteTest::testGetChildTestCount() { m_suite->addTest( new CPPUNIT_NS::TestCase( "test1" ) ); m_suite->addTest( new CPPUNIT_NS::TestCase( "test2" ) ); CPPUNIT_ASSERT_EQUAL( 2, m_suite->getChildTestCount() ); } void TestSuiteTest::testGetChildTestAt() { CPPUNIT_NS::TestCase *test1 = new CPPUNIT_NS::TestCase( "test1" ); CPPUNIT_NS::TestCase *test2 = new CPPUNIT_NS::TestCase( "test2" ); m_suite->addTest( test1 ); m_suite->addTest( test2 ); CPPUNIT_ASSERT( test1 == m_suite->getChildTestAt(0) ); CPPUNIT_ASSERT( test2 == m_suite->getChildTestAt(1) ); } void TestSuiteTest::testGetChildTestAtThrow1() { m_suite->getChildTestAt(-1); } void TestSuiteTest::testGetChildTestAtThrow2() { m_suite->getChildTestAt(0); }