(no commit message)
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.tests / src / org / eclipse / linuxtools / tmf / tests / event / TmfEventContentTest.java
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 }
This page took 0.037218 seconds and 5 git commands to generate.