2
#include "TestSuiteTest.h"
3
#include <cppunit/TestResult.h>
4
#include "MockTestCase.h"
7
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( TestSuiteTest,
11
TestSuiteTest::TestSuiteTest()
16
TestSuiteTest::~TestSuiteTest()
22
TestSuiteTest::setUp()
24
m_suite = new CPPUNIT_NS::TestSuite();
29
TestSuiteTest::tearDown()
36
TestSuiteTest::testConstructor()
38
std::string name( "MySuite" );
39
CPPUNIT_NS::TestSuite suite( name );
40
CPPUNIT_ASSERT_EQUAL( name, suite.getName() );
45
TestSuiteTest::testCountTestCasesWithNoTest()
47
CPPUNIT_ASSERT_EQUAL( 0, m_suite->countTestCases() );
52
TestSuiteTest::testCountTestCasesWithTwoTests()
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 );
61
CPPUNIT_ASSERT_EQUAL( 2, m_suite->countTestCases() );
68
TestSuiteTest::testCountTestCasesWithSubSuite()
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 );
82
CPPUNIT_ASSERT_EQUAL( 3, m_suite->countTestCases() );
90
TestSuiteTest::testRunWithOneTest()
92
MockTestCase *case1 = new MockTestCase( "test1" );
93
case1->setExpectedRunTestCall();
94
m_suite->addTest( case1 );
96
CPPUNIT_NS::TestResult result;
97
m_suite->run( &result );
104
TestSuiteTest::testRunWithOneTestAndSubSuite()
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);
118
CPPUNIT_NS::TestResult result;
119
m_suite->run( &result );
128
TestSuiteTest::testGetTests()
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()) );
137
TestSuiteTest::testDeleteContents()
139
m_suite->addTest( new CPPUNIT_NS::TestCase( "test2" ) );
140
m_suite->deleteContents();
141
CPPUNIT_ASSERT_EQUAL( 0, int(m_suite->getTests().size()) );
146
TestSuiteTest::testGetChildTestCount()
148
m_suite->addTest( new CPPUNIT_NS::TestCase( "test1" ) );
149
m_suite->addTest( new CPPUNIT_NS::TestCase( "test2" ) );
151
CPPUNIT_ASSERT_EQUAL( 2, m_suite->getChildTestCount() );
156
TestSuiteTest::testGetChildTestAt()
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 );
163
CPPUNIT_ASSERT( test1 == m_suite->getChildTestAt(0) );
164
CPPUNIT_ASSERT( test2 == m_suite->getChildTestAt(1) );
169
TestSuiteTest::testGetChildTestAtThrow1()
171
m_suite->getChildTestAt(-1);
176
TestSuiteTest::testGetChildTestAtThrow2()
178
m_suite->getChildTestAt(0);