diff options
author | Baptiste Lepilleur <gaiacrtn@free.fr> | 2002-06-13 14:31:01 +0000 |
---|---|---|
committer | Baptiste Lepilleur <gaiacrtn@free.fr> | 2002-06-13 14:31:01 +0000 |
commit | abd178318ae3cdb6cc0a700e77414a33ef9297ca (patch) | |
tree | 76bb1f6d0bf28bfe23c710487d0b20bd95878ca4 /examples/cppunittest/MessageTest.cpp | |
parent | 3702f4f7603f1e49b4d6747c49e795bad712eab7 (diff) | |
download | cppunit-abd178318ae3cdb6cc0a700e77414a33ef9297ca.tar.gz |
Include/cppunit/Asserter.
include/cppunit/Asserter.h:
* src/cppunit/Asserter.cpp: added functions that take a Message as a
parameter. Existing function have a short description indicating
an assertion failure.
* include/cppunit/CompilerOuputter.h:
* src/cppunit/CompilerOuputter.cpp: removed printNotEqualMessage() and
printDefaultMessage(). Updated to use Message.
* include/cppunit/Message.h:
* src/cppunit/Message.cpp: added. Represents a message associated to an
Exception.
* include/cppunit/Exception.h:
* src/cppunit/Exception.cpp: the message associated to the exception is now
stored as a Message instead of a string.
* include/cppunit/NotEqualException.cpp: constructs a Message instead of a
string.
* include/cppunit/TestAssert.h:
* src/cppunit/TestAssert.cpp: updated to use Asserter functions that
take a message when pertinent (CPPUNIT_FAIL...).
* include/cppunit/TestCaller.h:
* src/cppunit/TestCaller.cpp: exception not caught failure has a better
short description.
* src/cppunit/TestCase.cpp: better short description when setUp() or
tearDown() fail.
* src/msvc6/testrunner/TestRunnerDlg.cpp: replace '\n' in failure message
with space.
* examples/cppunittest/ExceptionTest.cpp:
* examples/cppunittest/NotEqualExceptionTest.cpp:
* examples/cppunittest/TestCallerTest.cpp:
* examples/cppunittest/TestFailureTest.cpp:
* examples/cppunittest/TestResultCollectorTest.h:
* examples/cppunittest/TestResultCollectorTest.cpp:
* examples/cppunittest/TestResultTest.cpp:
* examples/cppunittest/XmlOutputterTest.h:
* examples/cppunittest/XmlOutputterTest.cpp: updated to use Exception/Message.
* examples/cppunittest/MessageTest.h:
* examples/cppunittest/MessageTest.cpp: added. Unit test for Message.
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) ); +} |