diff options
Diffstat (limited to 'examples/cppunittest/MessageTest.cpp')
-rw-r--r-- | examples/cppunittest/MessageTest.cpp | 231 |
1 files changed, 231 insertions, 0 deletions
diff --git a/examples/cppunittest/MessageTest.cpp b/examples/cppunittest/MessageTest.cpp new file mode 100644 index 0000000..45b6c96 --- /dev/null +++ b/examples/cppunittest/MessageTest.cpp @@ -0,0 +1,231 @@ +#include "CoreSuite.h" +#include "MessageTest.h" + +CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( MessageTest, + CppUnitTest::coreSuiteName() ); + + +MessageTest::MessageTest() +{ +} + + +MessageTest::~MessageTest() +{ +} + + +void +MessageTest::setUp() +{ + m_message = new CppUnit::Message(); +} + + +void +MessageTest::tearDown() +{ + delete m_message; +} + + +void +MessageTest::testDefaultConstructor() +{ + CPPUNIT_ASSERT_EQUAL( std::string(), m_message->shortDescription() ); + CPPUNIT_ASSERT_EQUAL( 0, m_message->detailCount() ); +} + + +void +MessageTest::testDetailAtThrowIfBadIndex() +{ + m_message->detailAt( -1 ); +} + + + +void +MessageTest::testDetailAtThrowIfBadIndex2() +{ + m_message->detailAt( 0 ); +} + + +void +MessageTest::testAddDetail() +{ + std::string expected( "first" ); + m_message->addDetail( expected ); + CPPUNIT_ASSERT_EQUAL( 1, m_message->detailCount() ); + CPPUNIT_ASSERT_EQUAL( expected, m_message->detailAt(0) ); +} + + +void +MessageTest::testAddDetail2() +{ + std::string expected1( "first" ); + std::string expected2( "second" ); + m_message->addDetail( expected1, expected2 ); + CPPUNIT_ASSERT_EQUAL( 2, m_message->detailCount() ); + CPPUNIT_ASSERT_EQUAL( expected1, m_message->detailAt(0) ); + CPPUNIT_ASSERT_EQUAL( expected2, m_message->detailAt(1) ); +} + + +void +MessageTest::testAddDetail3() +{ + std::string expected1( "first" ); + std::string expected2( "second" ); + std::string expected3( "third" ); + m_message->addDetail( expected1, expected2, expected3 ); + CPPUNIT_ASSERT_EQUAL( 3, m_message->detailCount() ); + CPPUNIT_ASSERT_EQUAL( expected1, m_message->detailAt(0) ); + CPPUNIT_ASSERT_EQUAL( expected2, m_message->detailAt(1) ); + CPPUNIT_ASSERT_EQUAL( expected3, m_message->detailAt(2) ); +} + + +void +MessageTest::testAddDetailEmptyMessage() +{ + m_message->addDetail( CppUnit::Message() ); + CPPUNIT_ASSERT_EQUAL( 0, m_message->detailCount() ); +} + + +void +MessageTest::testAddDetailMessage() +{ + std::string expected1( "first" ); + std::string expected2( "second" ); + m_message->addDetail( CppUnit::Message( "shortDesc", expected1, expected2 ) ); + CPPUNIT_ASSERT_EQUAL( 2, m_message->detailCount() ); + CPPUNIT_ASSERT_EQUAL( expected1, m_message->detailAt(0) ); + CPPUNIT_ASSERT_EQUAL( expected2, m_message->detailAt(1) ); +} + + +void +MessageTest::testSetShortDescription() +{ + std::string expected( "shortDesc" ); + m_message->setShortDescription( expected ); + CPPUNIT_ASSERT_EQUAL( expected, m_message->shortDescription() ); +} + + +void +MessageTest::testClearDetails() +{ + m_message->addDetail( "detail1" ); + m_message->clearDetails(); + CPPUNIT_ASSERT_EQUAL( 0, m_message->detailCount() ); +} + + +void +MessageTest::testConstructor() +{ + std::string expected( "short" ); + CppUnit::Message message( expected ); + + CPPUNIT_ASSERT_EQUAL( expected, message.shortDescription() ); + CPPUNIT_ASSERT_EQUAL( 0, message.detailCount() ); +} + + +void +MessageTest::testConstructorDetail1() +{ + std::string expected( "short" ); + std::string expected1( "detail-1" ); + CppUnit::Message message( expected, expected1 ); + + CPPUNIT_ASSERT_EQUAL( expected, message.shortDescription() ); + CPPUNIT_ASSERT_EQUAL( 1, message.detailCount() ); + CPPUNIT_ASSERT_EQUAL( expected1, message.detailAt(0) ); +} + + +void +MessageTest::testConstructorDetail2() +{ + std::string expected( "short" ); + std::string expected1( "detail-1" ); + std::string expected2( "detail-2" ); + CppUnit::Message message( expected, expected1, expected2 ); + + CPPUNIT_ASSERT_EQUAL( expected, message.shortDescription() ); + CPPUNIT_ASSERT_EQUAL( 2, message.detailCount() ); + CPPUNIT_ASSERT_EQUAL( expected1, message.detailAt(0) ); + CPPUNIT_ASSERT_EQUAL( expected2, message.detailAt(1) ); +} + + +void +MessageTest::testConstructorDetail3() +{ + std::string expected( "short" ); + std::string expected1( "detail-1" ); + std::string expected2( "detail-2" ); + std::string expected3( "detail-3" ); + CppUnit::Message message( expected, expected1, expected2, expected3 ); + + CPPUNIT_ASSERT_EQUAL( expected, message.shortDescription() ); + CPPUNIT_ASSERT_EQUAL( 3, message.detailCount() ); + CPPUNIT_ASSERT_EQUAL( expected1, message.detailAt(0) ); + CPPUNIT_ASSERT_EQUAL( expected2, message.detailAt(1) ); + CPPUNIT_ASSERT_EQUAL( expected3, message.detailAt(2) ); +} + + +void +MessageTest::testDetailsNone() +{ + CPPUNIT_ASSERT_EQUAL( std::string(), m_message->details() ); +} + + +void +MessageTest::testDetailsSome() +{ + m_message->addDetail( "Expected: 1", "Actual: 7", "Info: number" ); + std::string expected( "- Expected: 1\n- Actual: 7\n- Info: number\n" ); + std::string actual = m_message->details(); + CPPUNIT_ASSERT_EQUAL( expected, actual ); +} + + +void +MessageTest::testEqual() +{ + CPPUNIT_ASSERT( *m_message == CppUnit::Message() ); + + CppUnit::Message message1( "short", "det1", "det2", "det3" ); + CppUnit::Message message2( message1 ); + CPPUNIT_ASSERT( message1 == message2 ); + + CPPUNIT_ASSERT( !(*m_message == message1) ); + + CppUnit::Message message3( "short" ); + CPPUNIT_ASSERT( !(message3 == message1) ); + + CppUnit::Message message4( "long" ); + CPPUNIT_ASSERT( !(message3 == message4) ); + + CppUnit::Message message5( "short", "det1", "det-2", "det3" ); + CPPUNIT_ASSERT( !(message1 == message5) ); +} + + +void +MessageTest::testNotEqual() +{ + CppUnit::Message message1( "short", "det1", "det2", "det3" ); + CppUnit::Message message2( "short", "det1", "det-2", "det3" ); + CPPUNIT_ASSERT( message1 != message2 ); + CPPUNIT_ASSERT( !(message1 != message1) ); +} |