Commit | Line | Data |
---|---|---|
d18dd09b ASL |
1 | /******************************************************************************* |
2 | * Copyright (c) 2009 Ericsson | |
3 | * | |
4 | * All rights reserved. This program and the accompanying materials are | |
5 | * made available under the terms of the Eclipse Public License v1.0 which | |
6 | * accompanies this distribution, and is available at | |
7 | * http://www.eclipse.org/legal/epl-v10.html | |
8 | * | |
9 | * Contributors: | |
10 | * Francois Chouinard - Initial API and implementation | |
11 | *******************************************************************************/ | |
12 | ||
13 | package org.eclipse.linuxtools.tmf.tests.event; | |
14 | ||
15 | import org.eclipse.linuxtools.tmf.event.TmfEvent; | |
16 | import org.eclipse.linuxtools.tmf.event.TmfEventContent; | |
17 | import org.eclipse.linuxtools.tmf.event.TmfEventContentStub; | |
18 | import org.eclipse.linuxtools.tmf.event.TmfEventReference; | |
19 | import org.eclipse.linuxtools.tmf.event.TmfEventSource; | |
20 | import org.eclipse.linuxtools.tmf.event.TmfEventType; | |
21 | import org.eclipse.linuxtools.tmf.event.TmfEventTypeStub; | |
22 | import org.eclipse.linuxtools.tmf.event.TmfNoSuchFieldException; | |
23 | import org.eclipse.linuxtools.tmf.event.TmfTimestamp; | |
24 | ||
25 | import junit.framework.TestCase; | |
26 | ||
27 | /** | |
28 | * <b><u>TmfEventContentTest</u></b> | |
29 | * <p> | |
30 | * Test suite for the TmfEventContent class. | |
31 | */ | |
32 | public class TmfEventContentTest extends TestCase { | |
33 | ||
34 | // ------------------------------------------------------------------------ | |
35 | // Variables | |
36 | // ------------------------------------------------------------------------ | |
37 | ||
38 | private final TmfTimestamp fTimestamp; | |
39 | private final TmfEventSource fEventSource; | |
40 | private final TmfEventType fEventType; | |
41 | private final TmfEventTypeStub fEventTypeStub; | |
42 | private final TmfEventReference fReference; | |
43 | private final TmfEvent fEvent; | |
44 | private final TmfEvent fEventStub; | |
45 | ||
46 | private final Object fRawContent0 = new String("Some content"); | |
47 | private final Object fRawContent1 = new String("Some other content"); | |
48 | ||
49 | private final TmfEventContent fBasicContent0; | |
50 | private final TmfEventContent fBasicContent1; | |
51 | private final TmfEventContent fBasicContent2; | |
52 | private final TmfEventContentStub fStubContent; | |
53 | ||
54 | // ------------------------------------------------------------------------ | |
55 | // Housekeeping | |
56 | // ------------------------------------------------------------------------ | |
57 | ||
58 | /** | |
59 | * @param name the test name | |
60 | */ | |
61 | public TmfEventContentTest(String name) { | |
62 | super(name); | |
63 | fTimestamp = new TmfTimestamp(); | |
64 | fEventSource = new TmfEventSource(); | |
65 | fEventType = new TmfEventType(); | |
66 | fEventTypeStub = new TmfEventTypeStub(); | |
67 | fReference = new TmfEventReference(); | |
68 | ||
69 | fEvent = new TmfEvent(fTimestamp, fEventSource, fEventType, fReference); | |
70 | fBasicContent0 = new TmfEventContent(fEvent, fRawContent0); | |
71 | fBasicContent1 = new TmfEventContent(fEvent, fRawContent0); | |
72 | fBasicContent2 = new TmfEventContent(fEvent, fRawContent0); | |
73 | ||
74 | fEventStub = new TmfEvent(fTimestamp, fEventSource, fEventTypeStub, fReference); | |
75 | fStubContent = new TmfEventContentStub(fEventStub, fRawContent1); | |
76 | } | |
77 | ||
78 | @Override | |
79 | protected void setUp() throws Exception { | |
80 | super.setUp(); | |
81 | } | |
82 | ||
83 | @Override | |
84 | protected void tearDown() throws Exception { | |
85 | super.tearDown(); | |
86 | } | |
87 | ||
88 | // ------------------------------------------------------------------------ | |
89 | // Constructors | |
90 | // ------------------------------------------------------------------------ | |
91 | ||
92 | public void testTmfEventContent() { | |
93 | assertSame("getLabels", fEvent, fBasicContent0.getEvent()); | |
94 | assertEquals("getType", fEventType, fBasicContent0.getType()); | |
95 | assertEquals("getContent", fRawContent0, fBasicContent0.getContent()); | |
96 | } | |
97 | ||
98 | public void testTmfEventContentCopy() { | |
99 | TmfEventContent content = new TmfEventContent(fBasicContent0); | |
100 | assertSame("getLabels", fEvent, content.getEvent()); | |
101 | assertEquals("getType", fEventType, content.getType()); | |
102 | assertEquals("getContent", fRawContent0, content.getContent()); | |
103 | } | |
104 | ||
105 | public void testTmfEventContentCopy2() { | |
106 | try { | |
107 | new TmfEventContent(null); | |
108 | fail("null copy"); | |
109 | } | |
110 | catch (IllegalArgumentException e) { | |
111 | // Success | |
112 | } | |
113 | } | |
114 | ||
115 | // ------------------------------------------------------------------------ | |
116 | // equals | |
117 | // ------------------------------------------------------------------------ | |
118 | ||
119 | public void testEqualsReflexivity() throws Exception { | |
120 | @SuppressWarnings("unused") | |
121 | Object[] fields1 = fBasicContent0.getFields(); | |
122 | @SuppressWarnings("unused") | |
123 | Object[] fields2 = fStubContent.getFields(); | |
124 | ||
125 | assertTrue("equals", fBasicContent0.equals(fBasicContent0)); | |
126 | assertTrue("equals", fStubContent.equals(fStubContent)); | |
127 | ||
128 | assertTrue("equals", !fBasicContent0.equals(fStubContent)); | |
129 | assertTrue("equals", !fStubContent.equals(fBasicContent0)); | |
130 | } | |
131 | ||
132 | public void testEqualsSymmetry() throws Exception { | |
133 | assertTrue("equals", fBasicContent0.equals(fBasicContent2)); | |
134 | assertTrue("equals", fBasicContent2.equals(fBasicContent0)); | |
135 | ||
136 | assertTrue("equals", !fBasicContent0.equals(fStubContent)); | |
137 | assertTrue("equals", !fStubContent.equals(fBasicContent0)); | |
138 | } | |
139 | ||
140 | public void testEqualsTransivity() throws Exception { | |
141 | assertTrue("equals", fBasicContent0.equals(fBasicContent1)); | |
142 | assertTrue("equals", fBasicContent1.equals(fBasicContent2)); | |
143 | assertTrue("equals", fBasicContent0.equals(fBasicContent2)); | |
144 | } | |
145 | ||
146 | public void testEqualsNull() throws Exception { | |
147 | assertTrue("equals", !fBasicContent0.equals(null)); | |
148 | assertTrue("equals", !fStubContent.equals(null)); | |
149 | } | |
150 | ||
151 | // ------------------------------------------------------------------------ | |
152 | // hashCode | |
153 | // ------------------------------------------------------------------------ | |
154 | ||
155 | public void testHashCode() throws Exception { | |
156 | assertTrue("hashCode", fBasicContent0.hashCode() == fBasicContent2.hashCode()); | |
157 | assertTrue("hashCode", fBasicContent0.hashCode() != fStubContent.hashCode()); | |
158 | } | |
159 | ||
160 | public void testHashCode2() throws Exception { | |
161 | TmfEventContent basicContent0 = new TmfEventContent(null, fRawContent0); | |
162 | TmfEventContent basicContent1 = new TmfEventContent(fEvent, null); | |
163 | TmfEventContent basicContent2 = new TmfEventContent(null, null); | |
164 | ||
165 | assertTrue("hashCode", fBasicContent0.hashCode() != basicContent0.hashCode()); | |
166 | assertTrue("hashCode", fBasicContent0.hashCode() != basicContent1.hashCode()); | |
167 | assertTrue("hashCode", fBasicContent0.hashCode() != basicContent2.hashCode()); | |
168 | ||
169 | assertTrue("hashCode", basicContent0.hashCode() != basicContent1.hashCode()); | |
170 | assertTrue("hashCode", basicContent0.hashCode() != basicContent2.hashCode()); | |
171 | ||
172 | assertTrue("hashCode", basicContent1.hashCode() != basicContent2.hashCode()); | |
173 | } | |
174 | ||
175 | // ------------------------------------------------------------------------ | |
176 | // toString | |
177 | // ------------------------------------------------------------------------ | |
178 | ||
179 | public void testToString() { | |
180 | String expected = "[TmfEventContent(" + fRawContent0 + ")]"; | |
181 | TmfEventContent content = new TmfEventContent(fEvent, fRawContent0); | |
182 | assertEquals("toString", expected, content.toString()); | |
183 | } | |
184 | ||
185 | public void testToString2() { | |
186 | String expected = "[TmfEventContent(1,-10,true,some string,[TmfTimestamp(1,2,3)])]"; | |
187 | TmfEventContentStub content = new TmfEventContentStub(fEvent, fRawContent0); | |
188 | assertEquals("toString", expected, content.toString()); | |
189 | } | |
190 | ||
191 | // ------------------------------------------------------------------------ | |
192 | // Basic content parsing | |
193 | // ------------------------------------------------------------------------ | |
194 | ||
195 | public void testGetFields() { | |
196 | Object[] fields = fBasicContent0.getFields(); | |
197 | assertEquals("getFields", 1, fields.length); | |
198 | assertEquals("getFields", fRawContent0, fields[0].toString()); | |
199 | } | |
200 | ||
201 | public void testGetFieldFromId() { | |
202 | Object field; | |
203 | try { | |
204 | field = fBasicContent0.getField("Content"); | |
205 | assertEquals("getField", fRawContent0, field.toString()); | |
206 | } catch (TmfNoSuchFieldException e) { | |
207 | fail("Field not found"); | |
208 | } | |
209 | } | |
210 | ||
211 | public void testGetFieldFromIdFailed() { | |
212 | try { | |
213 | fBasicContent0.getField("Dummy"); | |
214 | fail("Found an inexisting field..."); | |
215 | } catch (TmfNoSuchFieldException e) { | |
216 | // Success | |
217 | } | |
218 | } | |
219 | ||
220 | public void testGetFieldFromPos() { | |
221 | Object field = fBasicContent0.getField(0); | |
222 | assertEquals("getField", fRawContent0, field.toString()); | |
223 | } | |
224 | ||
225 | public void testGetFieldFromPosFailed() { | |
226 | Object field = fBasicContent0.getField(10); | |
227 | assertEquals("getField", null, field); | |
228 | } | |
229 | ||
230 | // ------------------------------------------------------------------------ | |
231 | // Standard content parsing | |
232 | // ------------------------------------------------------------------------ | |
233 | ||
234 | public void testGetFields2() { | |
235 | Object[] fields = fStubContent.getFields(); | |
236 | assertEquals("getFields", 5, fields.length); | |
237 | } | |
238 | ||
239 | public void testGetFieldFromId2() { | |
240 | Object field; | |
241 | try { | |
242 | field = fStubContent.getField("Field1"); | |
243 | assertEquals("getField", new Integer(1), field); | |
244 | ||
245 | field = fStubContent.getField("Field2"); | |
246 | assertEquals("getField", new Integer(-10), field); | |
247 | ||
248 | field = fStubContent.getField("Field3"); | |
249 | assertEquals("getField", new Boolean(true), field); | |
250 | ||
251 | field = fStubContent.getField("Field4"); | |
252 | assertEquals("getField", new String("some string"), field); | |
253 | ||
254 | field = fStubContent.getField("Field5"); | |
255 | assertEquals("getField", new TmfTimestamp(1, (byte) 2, 3), field); | |
256 | ||
257 | } catch (TmfNoSuchFieldException e) { | |
258 | fail("Field not found"); | |
259 | } | |
260 | } | |
261 | ||
262 | public void testGetFieldFromPos2() { | |
263 | TmfEventContentStub content = new TmfEventContentStub(fEvent, fRawContent0); | |
264 | ||
265 | Object field; | |
266 | field = content.getField(0); | |
267 | assertEquals("getField", new Integer(1), field); | |
268 | ||
269 | field = content.getField(1); | |
270 | assertEquals("getField", new Integer(-10), field); | |
271 | ||
272 | field = content.getField(2); | |
273 | assertEquals("getField", new Boolean(true), field); | |
274 | ||
275 | field = content.getField(3); | |
276 | assertEquals("getField", new String("some string"), field); | |
277 | ||
278 | field = content.getField(4); | |
279 | assertEquals("getField", new TmfTimestamp(1, (byte) 2, 3), field); | |
280 | } | |
281 | ||
282 | } |