1 #include "CoreSuite.h" 2 #include "TestSuiteTest.h" 3 #include <cppunit/TestResult.h> 4 #include "MockTestCase.h" 5 6 7 CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( TestSuiteTest, 8 coreSuiteName() ); 9 10 TestSuiteTest()11TestSuiteTest::TestSuiteTest() 12 { 13 } 14 15 ~TestSuiteTest()16TestSuiteTest::~TestSuiteTest() 17 { 18 } 19 20 21 void setUp()22TestSuiteTest::setUp() 23 { 24 m_suite = new CPPUNIT_NS::TestSuite(); 25 } 26 27 28 void tearDown()29TestSuiteTest::tearDown() 30 { 31 delete m_suite; 32 } 33 34 35 void testConstructor()36TestSuiteTest::testConstructor() 37 { 38 std::string name( "MySuite" ); 39 CPPUNIT_NS::TestSuite suite( name ); 40 CPPUNIT_ASSERT_EQUAL( name, suite.getName() ); 41 } 42 43 44 void testCountTestCasesWithNoTest()45TestSuiteTest::testCountTestCasesWithNoTest() 46 { 47 CPPUNIT_ASSERT_EQUAL( 0, m_suite->countTestCases() ); 48 } 49 50 51 void testCountTestCasesWithTwoTests()52TestSuiteTest::testCountTestCasesWithTwoTests() 53 { 54 MockTestCase *case1 = new MockTestCase( "test1" ); 55 case1->setExpectedCountTestCasesCall(); 56 MockTestCase *case2 = new MockTestCase( "test2" ); 57 case2->setExpectedCountTestCasesCall(); 58 m_suite->addTest( case1 ); 59 m_suite->addTest( case2 ); 60 61 CPPUNIT_ASSERT_EQUAL( 2, m_suite->countTestCases() ); 62 case1->verify(); 63 case2->verify(); 64 } 65 66 67 void testCountTestCasesWithSubSuite()68TestSuiteTest::testCountTestCasesWithSubSuite() 69 { 70 MockTestCase *case1 = new MockTestCase( "test1" ); 71 case1->setExpectedCountTestCasesCall(); 72 MockTestCase *case2 = new MockTestCase( "test2" ); 73 case2->setExpectedCountTestCasesCall(); 74 MockTestCase *case3 = new MockTestCase( "test3" ); 75 case3->setExpectedCountTestCasesCall(); 76 CPPUNIT_NS::TestSuite *subSuite = new CPPUNIT_NS::TestSuite( "SubSuite"); 77 subSuite->addTest( case1 ); 78 subSuite->addTest( case2 ); 79 m_suite->addTest( case3 ); 80 m_suite->addTest( subSuite ); 81 82 CPPUNIT_ASSERT_EQUAL( 3, m_suite->countTestCases() ); 83 case1->verify(); 84 case2->verify(); 85 case3->verify(); 86 } 87 88 89 void testRunWithOneTest()90TestSuiteTest::testRunWithOneTest() 91 { 92 MockTestCase *case1 = new MockTestCase( "test1" ); 93 case1->setExpectedRunTestCall(); 94 m_suite->addTest( case1 ); 95 96 CPPUNIT_NS::TestResult result; 97 m_suite->run( &result ); 98 99 case1->verify(); 100 } 101 102 103 void testRunWithOneTestAndSubSuite()104TestSuiteTest::testRunWithOneTestAndSubSuite() 105 { 106 MockTestCase *case1 = new MockTestCase( "test1" ); 107 case1->setExpectedRunTestCall(); 108 MockTestCase *case2 = new MockTestCase( "test2" ); 109 case2->setExpectedRunTestCall(); 110 MockTestCase *case3 = new MockTestCase( "test3" ); 111 case3->setExpectedRunTestCall(); 112 CPPUNIT_NS::TestSuite *subSuite = new CPPUNIT_NS::TestSuite( "SubSuite"); 113 subSuite->addTest( case1 ); 114 subSuite->addTest( case2 ); 115 m_suite->addTest( case3 ); 116 m_suite->addTest( subSuite); 117 118 CPPUNIT_NS::TestResult result; 119 m_suite->run( &result ); 120 121 case1->verify(); 122 case2->verify(); 123 case3->verify(); 124 } 125 126 127 void testGetTests()128TestSuiteTest::testGetTests() 129 { 130 m_suite->addTest( new CPPUNIT_NS::TestCase( "test1" ) ); 131 m_suite->addTest( new CPPUNIT_NS::TestCase( "test2" ) ); 132 CPPUNIT_ASSERT_EQUAL( 2, int(m_suite->getTests().size()) ); 133 } 134 135 136 void testDeleteContents()137TestSuiteTest::testDeleteContents() 138 { 139 m_suite->addTest( new CPPUNIT_NS::TestCase( "test2" ) ); 140 m_suite->deleteContents(); 141 CPPUNIT_ASSERT_EQUAL( 0, int(m_suite->getTests().size()) ); 142 } 143 144 145 void testGetChildTestCount()146TestSuiteTest::testGetChildTestCount() 147 { 148 m_suite->addTest( new CPPUNIT_NS::TestCase( "test1" ) ); 149 m_suite->addTest( new CPPUNIT_NS::TestCase( "test2" ) ); 150 151 CPPUNIT_ASSERT_EQUAL( 2, m_suite->getChildTestCount() ); 152 } 153 154 155 void testGetChildTestAt()156TestSuiteTest::testGetChildTestAt() 157 { 158 CPPUNIT_NS::TestCase *test1 = new CPPUNIT_NS::TestCase( "test1" ); 159 CPPUNIT_NS::TestCase *test2 = new CPPUNIT_NS::TestCase( "test2" ); 160 m_suite->addTest( test1 ); 161 m_suite->addTest( test2 ); 162 163 CPPUNIT_ASSERT( test1 == m_suite->getChildTestAt(0) ); 164 CPPUNIT_ASSERT( test2 == m_suite->getChildTestAt(1) ); 165 } 166 167 168 void testGetChildTestAtThrow1()169TestSuiteTest::testGetChildTestAtThrow1() 170 { 171 m_suite->getChildTestAt(-1); 172 } 173 174 175 void testGetChildTestAtThrow2()176TestSuiteTest::testGetChildTestAtThrow2() 177 { 178 m_suite->getChildTestAt(0); 179 } 180