summaryrefslogtreecommitdiff
path: root/examples/cppunittest/HelperMacrosTest.cpp
blob: a7b0ddc5d145e6c0c15e3778074eb7cddfd66e62 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include "HelperMacrosTest.h"
#include "SubclassedTestCase.h"
#include <cppunit/TestResult.h>
#include <memory>

/* Note:
 - no unit test for CPPUNIT_TEST_SUITE_REGISTRATION...
 */


CPPUNIT_TEST_SUITE_REGISTRATION( HelperMacrosTest );


HelperMacrosTest::HelperMacrosTest() : 
    CppUnit::TestCase()
{
}


HelperMacrosTest::~HelperMacrosTest()
{
}


void 
HelperMacrosTest::setUp()
{
  m_result = new CppUnit::TestResult();
}


void 
HelperMacrosTest::tearDown()
{
  delete m_result;
}


void 
HelperMacrosTest::testNoSubclassing()
{
  std::auto_ptr<CppUnit::TestSuite> suite( BaseTestCase::suite() );
  CPPUNIT_ASSERT_EQUAL( 1, suite->countTestCases() );

  suite->run( m_result );
  checkTestResult( 0,0,1 );
}


void 
HelperMacrosTest::testSubclassing()
{
  std::auto_ptr<CppUnit::TestSuite> suite( SubclassedTestCase::suite() );
  CPPUNIT_ASSERT_EQUAL( 2, suite->countTestCases() );

  suite->run( m_result );
  checkTestResult( 1,0,2 );
}


void 
HelperMacrosTest::checkTestResult( int expectedFailures, 
                                   int expectedErrors, 
                                   int expectedTestsRun )
{
  CPPUNIT_ASSERT_EQUAL( expectedFailures, m_result->testFailures() );
  CPPUNIT_ASSERT_EQUAL( expectedErrors, m_result->testErrors() );
  CPPUNIT_ASSERT_EQUAL( expectedTestsRun, m_result->runTests() );
}