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