1 #include "CoreSuite.h"
2 #include "MessageTest.h"
3 
4 CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( MessageTest,
5                                        coreSuiteName() );
6 
7 
MessageTest()8 MessageTest::MessageTest()
9 {
10 }
11 
12 
~MessageTest()13 MessageTest::~MessageTest()
14 {
15 }
16 
17 
18 void
setUp()19 MessageTest::setUp()
20 {
21   m_message = new CPPUNIT_NS::Message();
22 }
23 
24 
25 void
tearDown()26 MessageTest::tearDown()
27 {
28   delete m_message;
29 }
30 
31 
32 void
testDefaultConstructor()33 MessageTest::testDefaultConstructor()
34 {
35   std::string empty;
36   CPPUNIT_ASSERT_EQUAL( empty, m_message->shortDescription() );
37   CPPUNIT_ASSERT_EQUAL( 0, m_message->detailCount() );
38 }
39 
40 
41 void
testDetailAtThrowIfBadIndex()42 MessageTest::testDetailAtThrowIfBadIndex()
43 {
44   m_message->detailAt( -1 );
45 }
46 
47 
48 
49 void
testDetailAtThrowIfBadIndex2()50 MessageTest::testDetailAtThrowIfBadIndex2()
51 {
52   m_message->detailAt( 0 );
53 }
54 
55 
56 void
testAddDetail()57 MessageTest::testAddDetail()
58 {
59   std::string expected( "first" );
60   m_message->addDetail( expected );
61   CPPUNIT_ASSERT_EQUAL( 1, m_message->detailCount() );
62   CPPUNIT_ASSERT_EQUAL( expected, m_message->detailAt(0) );
63 }
64 
65 
66 void
testAddDetail2()67 MessageTest::testAddDetail2()
68 {
69   std::string expected1( "first" );
70   std::string expected2( "second" );
71   m_message->addDetail( expected1, expected2 );
72   CPPUNIT_ASSERT_EQUAL( 2, m_message->detailCount() );
73   CPPUNIT_ASSERT_EQUAL( expected1, m_message->detailAt(0) );
74   CPPUNIT_ASSERT_EQUAL( expected2, m_message->detailAt(1) );
75 }
76 
77 
78 void
testAddDetail3()79 MessageTest::testAddDetail3()
80 {
81   std::string expected1( "first" );
82   std::string expected2( "second" );
83   std::string expected3( "third" );
84   m_message->addDetail( expected1, expected2, expected3 );
85   CPPUNIT_ASSERT_EQUAL( 3, m_message->detailCount() );
86   CPPUNIT_ASSERT_EQUAL( expected1, m_message->detailAt(0) );
87   CPPUNIT_ASSERT_EQUAL( expected2, m_message->detailAt(1) );
88   CPPUNIT_ASSERT_EQUAL( expected3, m_message->detailAt(2) );
89 }
90 
91 
92 void
testAddDetailEmptyMessage()93 MessageTest::testAddDetailEmptyMessage()
94 {
95   m_message->addDetail( CPPUNIT_NS::Message() );
96   CPPUNIT_ASSERT_EQUAL( 0, m_message->detailCount() );
97 }
98 
99 
100 void
testAddDetailMessage()101 MessageTest::testAddDetailMessage()
102 {
103   std::string expected1( "first" );
104   std::string expected2( "second" );
105   m_message->addDetail( CPPUNIT_NS::Message( "shortDesc", expected1, expected2 ) );
106   CPPUNIT_ASSERT_EQUAL( 2, m_message->detailCount() );
107   CPPUNIT_ASSERT_EQUAL( expected1, m_message->detailAt(0) );
108   CPPUNIT_ASSERT_EQUAL( expected2, m_message->detailAt(1) );
109 }
110 
111 
112 void
testSetShortDescription()113 MessageTest::testSetShortDescription()
114 {
115   std::string expected( "shortDesc" );
116   m_message->setShortDescription( expected );
117   CPPUNIT_ASSERT_EQUAL( expected, m_message->shortDescription() );
118 }
119 
120 
121 void
testClearDetails()122 MessageTest::testClearDetails()
123 {
124   m_message->addDetail( "detail1" );
125   m_message->clearDetails();
126   CPPUNIT_ASSERT_EQUAL( 0, m_message->detailCount() );
127 }
128 
129 
130 void
testConstructor()131 MessageTest::testConstructor()
132 {
133   std::string expected( "short" );
134   CPPUNIT_NS::Message message( expected );
135 
136   CPPUNIT_ASSERT_EQUAL( expected, message.shortDescription() );
137   CPPUNIT_ASSERT_EQUAL( 0, message.detailCount() );
138 }
139 
140 
141 void
testConstructorDetail1()142 MessageTest::testConstructorDetail1()
143 {
144   std::string expected( "short" );
145   std::string expected1( "detail-1" );
146   CPPUNIT_NS::Message message( expected, expected1 );
147 
148   CPPUNIT_ASSERT_EQUAL( expected, message.shortDescription() );
149   CPPUNIT_ASSERT_EQUAL( 1, message.detailCount() );
150   CPPUNIT_ASSERT_EQUAL( expected1, message.detailAt(0) );
151 }
152 
153 
154 void
testConstructorDetail2()155 MessageTest::testConstructorDetail2()
156 {
157   std::string expected( "short" );
158   std::string expected1( "detail-1" );
159   std::string expected2( "detail-2" );
160   CPPUNIT_NS::Message message( expected, expected1, expected2 );
161 
162   CPPUNIT_ASSERT_EQUAL( expected, message.shortDescription() );
163   CPPUNIT_ASSERT_EQUAL( 2, message.detailCount() );
164   CPPUNIT_ASSERT_EQUAL( expected1, message.detailAt(0) );
165   CPPUNIT_ASSERT_EQUAL( expected2, message.detailAt(1) );
166 }
167 
168 
169 void
testConstructorDetail3()170 MessageTest::testConstructorDetail3()
171 {
172   std::string expected( "short" );
173   std::string expected1( "detail-1" );
174   std::string expected2( "detail-2" );
175   std::string expected3( "detail-3" );
176   CPPUNIT_NS::Message message( expected, expected1, expected2, expected3 );
177 
178   CPPUNIT_ASSERT_EQUAL( expected, message.shortDescription() );
179   CPPUNIT_ASSERT_EQUAL( 3, message.detailCount() );
180   CPPUNIT_ASSERT_EQUAL( expected1, message.detailAt(0) );
181   CPPUNIT_ASSERT_EQUAL( expected2, message.detailAt(1) );
182   CPPUNIT_ASSERT_EQUAL( expected3, message.detailAt(2) );
183 }
184 
185 
186 void
testDetailsNone()187 MessageTest::testDetailsNone()
188 {
189   CPPUNIT_ASSERT_MESSAGE("012345678901234",true);
190   std::string empty;
191   CPPUNIT_ASSERT_EQUAL( empty, m_message->details() );
192 }
193 
194 
195 void
testDetailsSome()196 MessageTest::testDetailsSome()
197 {
198   m_message->addDetail( "Expected: 1", "Actual:   7", "Info: number" );
199   std::string expected( "- Expected: 1\n- Actual:   7\n- Info: number\n" );
200   std::string actual = m_message->details();
201   CPPUNIT_ASSERT_EQUAL( expected, actual );
202 }
203 
204 
205 void
testEqual()206 MessageTest::testEqual()
207 {
208   CPPUNIT_ASSERT( *m_message == CPPUNIT_NS::Message() );
209 
210   CPPUNIT_NS::Message message1( "short", "det1", "det2", "det3" );
211   CPPUNIT_NS::Message message2( message1 );
212   CPPUNIT_ASSERT( message1 == message2 );
213 
214   CPPUNIT_ASSERT( !(*m_message == message1) );
215 
216   CPPUNIT_NS::Message message3( "short" );
217   CPPUNIT_ASSERT( !(message3 == message1) );
218 
219   CPPUNIT_NS::Message message4( "long" );
220   CPPUNIT_ASSERT( !(message3 == message4) );
221 
222   CPPUNIT_NS::Message message5( "short", "det1", "det-2", "det3" );
223   CPPUNIT_ASSERT( !(message1 == message5) );
224 }
225 
226 
227 void
testNotEqual()228 MessageTest::testNotEqual()
229 {
230   CPPUNIT_NS::Message message1( "short", "det1", "det2", "det3" );
231   CPPUNIT_NS::Message message2( "short", "det1", "det-2", "det3" );
232   CPPUNIT_ASSERT( message1 != message2 );
233   CPPUNIT_ASSERT( !(message1 != message1) );
234 }
235