Blame examples/cppunittest/HelperMacrosTest.cpp

Packit 8c9aa0
#include <cppunit/config/SourcePrefix.h>
Packit 8c9aa0
#include "FailureException.h"
Packit 8c9aa0
#include "HelperMacrosTest.h"
Packit 8c9aa0
#include "HelperSuite.h"
Packit 8c9aa0
#include "MockTestCase.h"
Packit 8c9aa0
#include "SubclassedTestCase.h"
Packit 8c9aa0
#include <cppunit/TestResult.h>
Packit 8c9aa0
#include <memory>
Packit 8c9aa0
Packit 8c9aa0
/* Note:
Packit 8c9aa0
 - no unit test for CPPUNIT_TEST_SUITE_REGISTRATION...
Packit 8c9aa0
 */
Packit 8c9aa0
Packit 8c9aa0
class FailTestFixture : public CPPUNIT_NS::TestFixture
Packit 8c9aa0
{
Packit 8c9aa0
  CPPUNIT_TEST_SUITE( FailTestFixture );
Packit 8c9aa0
  CPPUNIT_TEST_FAIL( testFail );
Packit 8c9aa0
  CPPUNIT_TEST_SUITE_END();
Packit 8c9aa0
public:
Packit 8c9aa0
  void testFail()
Packit 8c9aa0
  {
Packit 8c9aa0
    CPPUNIT_ASSERT_MESSAGE( "Failure", false );
Packit 8c9aa0
  }
Packit 8c9aa0
};
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
class FailToFailTestFixture : public CPPUNIT_NS::TestFixture
Packit 8c9aa0
{
Packit 8c9aa0
  CPPUNIT_TEST_SUITE( FailToFailTestFixture );
Packit 8c9aa0
  CPPUNIT_TEST_FAIL( testFailToFail );
Packit 8c9aa0
  CPPUNIT_TEST_SUITE_END();
Packit 8c9aa0
public:
Packit 8c9aa0
  void testFailToFail()
Packit 8c9aa0
  {
Packit 8c9aa0
  }
Packit 8c9aa0
};
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
class ExceptionTestFixture : public CPPUNIT_NS::TestFixture
Packit 8c9aa0
{
Packit 8c9aa0
  CPPUNIT_TEST_SUITE( ExceptionTestFixture );
Packit 8c9aa0
  CPPUNIT_TEST_EXCEPTION( testException, FailureException );
Packit 8c9aa0
  CPPUNIT_TEST_SUITE_END();
Packit 8c9aa0
public:
Packit 8c9aa0
  void testException()
Packit 8c9aa0
  {
Packit 8c9aa0
    throw FailureException();
Packit 8c9aa0
  }
Packit 8c9aa0
};
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
class ExceptionNotCaughtTestFixture : public CPPUNIT_NS::TestFixture
Packit 8c9aa0
{
Packit 8c9aa0
  CPPUNIT_TEST_SUITE( ExceptionNotCaughtTestFixture );
Packit 8c9aa0
  CPPUNIT_TEST_EXCEPTION( testExceptionNotCaught, FailureException );
Packit 8c9aa0
  CPPUNIT_TEST_SUITE_END();
Packit 8c9aa0
public:
Packit 8c9aa0
  void testExceptionNotCaught()
Packit 8c9aa0
  {
Packit 8c9aa0
  }
Packit 8c9aa0
};
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
class CustomsTestTestFixture : public CPPUNIT_NS::TestFixture
Packit 8c9aa0
{
Packit 8c9aa0
  CPPUNIT_TEST_SUITE( CustomsTestTestFixture );
Packit 8c9aa0
  CPPUNIT_TEST_SUITE_ADD_CUSTOM_TESTS( addCustomTests );
Packit 8c9aa0
  CPPUNIT_TEST_SUITE_END();
Packit 8c9aa0
public:
Packit 8c9aa0
  static void addCustomTests( TestSuiteBuilderContextType &context )
Packit 8c9aa0
  {
Packit 8c9aa0
    MockTestCase *test1 = new MockTestCase( context.getTestNameFor( "myCustomTest1" ) );
Packit 8c9aa0
    test1->makeRunTestThrow();
Packit 8c9aa0
    MockTestCase *test2 = new MockTestCase( context.getTestNameFor( "myCustomTest2" ) );
Packit 8c9aa0
    context.addTest( test1 );
Packit 8c9aa0
    context.addTest( test2 );
Packit 8c9aa0
  }
Packit 8c9aa0
};
Packit 8c9aa0
Packit 8c9aa0
class ParameterizedTestFixture : public CPPUNIT_NS::TestFixture
Packit 8c9aa0
{
Packit 8c9aa0
    CPPUNIT_TEST_SUITE(ParameterizedTestFixture);
Packit 8c9aa0
    CPPUNIT_TEST_PARAMETERIZED(testMethod, {1, 2, 3, 4});
Packit 8c9aa0
    CPPUNIT_TEST_SUITE_END();
Packit 8c9aa0
Packit 8c9aa0
public:
Packit 8c9aa0
Packit 8c9aa0
    void testMethod(int /*val*/)
Packit 8c9aa0
    {
Packit 8c9aa0
    }
Packit 8c9aa0
};
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
#undef TEST_ADD_N_MOCK
Packit 8c9aa0
#define TEST_ADD_N_MOCK( totalCount )                                              \
Packit 8c9aa0
  {                                                                 \
Packit 8c9aa0
    for ( int count = (totalCount); count > 0; --count )            \
Packit 8c9aa0
      CPPUNIT_TEST_SUITE_ADD_TEST(                                  \
Packit 8c9aa0
         new MockTestCase( context.getTestNameFor( "dummyName" ) ) ); \
Packit 8c9aa0
  }
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
class AddTestTestFixture : public CPPUNIT_NS::TestFixture
Packit 8c9aa0
{
Packit 8c9aa0
  CPPUNIT_TEST_SUITE( AddTestTestFixture );
Packit 8c9aa0
  TEST_ADD_N_MOCK( 7 );
Packit 8c9aa0
  CPPUNIT_TEST_SUITE_END();
Packit 8c9aa0
public:
Packit 8c9aa0
};
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( HelperMacrosTest, 
Packit 8c9aa0
                                       helperSuiteName() );
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
HelperMacrosTest::HelperMacrosTest()
Packit 8c9aa0
{
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
HelperMacrosTest::~HelperMacrosTest()
Packit 8c9aa0
{
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
HelperMacrosTest::setUp()
Packit 8c9aa0
{
Packit 8c9aa0
  m_testListener = new MockTestListener( "mock-testlistener" );
Packit 8c9aa0
  m_result = new CPPUNIT_NS::TestResult();
Packit 8c9aa0
  m_result->addListener( m_testListener );
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
HelperMacrosTest::tearDown()
Packit 8c9aa0
{
Packit 8c9aa0
  delete m_result;
Packit 8c9aa0
  delete m_testListener;
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
HelperMacrosTest::testNoSubclassing()
Packit 8c9aa0
{
Packit 8c9aa0
  std::unique_ptr<CPPUNIT_NS::TestSuite> suite( BaseTestCase::suite() );
Packit 8c9aa0
  CPPUNIT_ASSERT_EQUAL( 1, suite->countTestCases() );
Packit 8c9aa0
  m_testListener->setExpectedStartTestCall( 1 );
Packit 8c9aa0
  m_testListener->setExpectNoFailure();
Packit 8c9aa0
Packit 8c9aa0
  suite->run( m_result );
Packit 8c9aa0
  m_testListener->verify();
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
HelperMacrosTest::testSubclassing()
Packit 8c9aa0
{
Packit 8c9aa0
  std::unique_ptr<CPPUNIT_NS::TestSuite> suite( SubclassedTestCase::suite() );
Packit 8c9aa0
  CPPUNIT_ASSERT_EQUAL( 2, suite->countTestCases() );
Packit 8c9aa0
  m_testListener->setExpectedStartTestCall( 2 );
Packit 8c9aa0
  m_testListener->setExpectedAddFailureCall( 1 );
Packit 8c9aa0
Packit 8c9aa0
  suite->run( m_result );
Packit 8c9aa0
  m_testListener->verify();
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
HelperMacrosTest::testFail()
Packit 8c9aa0
{
Packit 8c9aa0
  std::unique_ptr<CPPUNIT_NS::TestSuite> suite( FailTestFixture::suite() );
Packit 8c9aa0
  m_testListener->setExpectedStartTestCall( 1 );
Packit 8c9aa0
  m_testListener->setExpectNoFailure();
Packit 8c9aa0
Packit 8c9aa0
  suite->run( m_result );
Packit 8c9aa0
  m_testListener->verify();
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
HelperMacrosTest::testFailToFail()
Packit 8c9aa0
{
Packit 8c9aa0
  std::unique_ptr<CPPUNIT_NS::TestSuite> suite( FailToFailTestFixture::suite() );
Packit 8c9aa0
  m_testListener->setExpectedStartTestCall( 1 );
Packit 8c9aa0
  m_testListener->setExpectedAddFailureCall( 1 );
Packit 8c9aa0
Packit 8c9aa0
  suite->run( m_result );
Packit 8c9aa0
  m_testListener->verify();
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
HelperMacrosTest::testException()
Packit 8c9aa0
{
Packit 8c9aa0
  std::unique_ptr<CPPUNIT_NS::TestSuite> suite( ExceptionTestFixture::suite() );
Packit 8c9aa0
  m_testListener->setExpectedStartTestCall( 1 );
Packit 8c9aa0
  m_testListener->setExpectNoFailure();
Packit 8c9aa0
  
Packit 8c9aa0
  suite->run( m_result );
Packit 8c9aa0
  m_testListener->verify();
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
HelperMacrosTest::testExceptionNotCaught()
Packit 8c9aa0
{
Packit 8c9aa0
  std::unique_ptr<CPPUNIT_NS::TestSuite> suite( ExceptionNotCaughtTestFixture::suite() );
Packit 8c9aa0
  m_testListener->setExpectedStartTestCall( 1 );
Packit 8c9aa0
  m_testListener->setExpectedAddFailureCall( 1 );
Packit 8c9aa0
Packit 8c9aa0
  suite->run( m_result );
Packit 8c9aa0
  m_testListener->verify();
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
HelperMacrosTest::testCustomTests()
Packit 8c9aa0
{
Packit 8c9aa0
  std::unique_ptr<CPPUNIT_NS::TestSuite> suite( CustomsTestTestFixture::suite() );
Packit 8c9aa0
  m_testListener->setExpectedStartTestCall( 2 );
Packit 8c9aa0
  m_testListener->setExpectedAddFailureCall( 1 );
Packit 8c9aa0
Packit 8c9aa0
  suite->run( m_result );
Packit 8c9aa0
  m_testListener->verify();
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
HelperMacrosTest::testAddTest()
Packit 8c9aa0
{
Packit 8c9aa0
  std::unique_ptr<CPPUNIT_NS::TestSuite> suite( AddTestTestFixture::suite() );
Packit 8c9aa0
  m_testListener->setExpectedStartTestCall( 7 );
Packit 8c9aa0
  m_testListener->setExpectedAddFailureCall( 0 );
Packit 8c9aa0
Packit 8c9aa0
  suite->run( m_result );
Packit 8c9aa0
  m_testListener->verify();
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
void
Packit 8c9aa0
HelperMacrosTest::testParameterizedTests()
Packit 8c9aa0
{
Packit 8c9aa0
  std::unique_ptr<CPPUNIT_NS::TestSuite> suite( ParameterizedTestFixture::suite() );
Packit 8c9aa0
  m_testListener->setExpectedStartTestCall(4);
Packit 8c9aa0
  m_testListener->setExpectedAddFailureCall( 0 );
Packit 8c9aa0
  suite->run(m_result);
Packit 8c9aa0
  m_testListener->verify();
Packit 8c9aa0
}