summaryrefslogtreecommitdiff
path: root/examples/cppunittest/MessageTest.cpp
diff options
context:
space:
mode:
authorBaptiste Lepilleur <gaiacrtn@free.fr>2002-06-13 14:31:01 +0000
committerBaptiste Lepilleur <gaiacrtn@free.fr>2002-06-13 14:31:01 +0000
commitabd178318ae3cdb6cc0a700e77414a33ef9297ca (patch)
tree76bb1f6d0bf28bfe23c710487d0b20bd95878ca4 /examples/cppunittest/MessageTest.cpp
parent3702f4f7603f1e49b4d6747c49e795bad712eab7 (diff)
downloadcppunit-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.cpp231
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) );
+}