Merge branch 'master'
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.core.tests / src / org / eclipse / linuxtools / tmf / core / tests / trace / TmfContextTest.java
1 /*******************************************************************************
2 * Copyright (c) 2009, 2010, 2012 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 * Francois Chouinard - Adapted for TMF Trace Model 1.0
12 *******************************************************************************/
13
14 package org.eclipse.linuxtools.tmf.core.tests.trace;
15
16 import junit.framework.TestCase;
17
18 import org.eclipse.linuxtools.tmf.core.event.ITmfTimestamp;
19 import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp;
20 import org.eclipse.linuxtools.tmf.core.trace.ITmfContext;
21 import org.eclipse.linuxtools.tmf.core.trace.TmfContext;
22 import org.eclipse.linuxtools.tmf.core.trace.TmfLocation;
23
24 /**
25 * Test suite for the TmfContext class.
26 */
27 @SuppressWarnings("nls")
28 public class TmfContextTest extends TestCase {
29
30 // ------------------------------------------------------------------------
31 // Variables
32 // ------------------------------------------------------------------------
33
34 final String aString = "some location";
35 final Long aLong = 12345L;
36 final TmfTimestamp aTimestamp = new TmfTimestamp();
37
38 final TmfLocation<String> fLocation1 = new TmfLocation<String>(aString);
39 final TmfLocation<Long> fLocation2 = new TmfLocation<Long>(aLong);
40 final TmfLocation<ITmfTimestamp> fLocation3 = new TmfLocation<ITmfTimestamp>(aTimestamp);
41
42 final long fRank1 = 1;
43 final long fRank2 = 2;
44 final long fRank3 = 3;
45
46 final TmfContext fContext1 = new TmfContext(fLocation1, fRank1);
47 final TmfContext fContext2 = new TmfContext(fLocation2, fRank2);
48 final TmfContext fContext3 = new TmfContext(fLocation3, fRank3);
49
50 // ------------------------------------------------------------------------
51 // Housekeeping
52 // ------------------------------------------------------------------------
53
54 /**
55 * @param name the test name
56 */
57 public TmfContextTest(final String name) {
58 super(name);
59 }
60
61 @Override
62 protected void setUp() throws Exception {
63 super.setUp();
64 }
65
66 @Override
67 protected void tearDown() throws Exception {
68 super.tearDown();
69 }
70
71 // ------------------------------------------------------------------------
72 // Constructors
73 // ------------------------------------------------------------------------
74
75 public void testTmfContextDefault() {
76 final TmfContext context = new TmfContext();
77 assertEquals("getLocation", null, context.getLocation());
78 assertEquals("getRank", TmfContext.UNKNOWN_RANK, context.getRank());
79 }
80
81 public void testTmfContextNoRank() {
82 final TmfContext context1 = new TmfContext(fLocation1);
83 final TmfContext context2 = new TmfContext(fLocation2);
84 final TmfContext context3 = new TmfContext(fLocation3);
85
86 assertEquals("getLocation", fLocation1, context1.getLocation());
87 assertEquals("getLocation", fLocation2, context2.getLocation());
88 assertEquals("getLocation", fLocation3, context3.getLocation());
89
90 assertEquals("getRank", TmfContext.UNKNOWN_RANK, context1.getRank());
91 assertEquals("getRank", TmfContext.UNKNOWN_RANK, context2.getRank());
92 assertEquals("getRank", TmfContext.UNKNOWN_RANK, context3.getRank());
93 }
94
95 public void testTmfContext() {
96 assertEquals("getLocation", fLocation1, fContext1.getLocation());
97 assertEquals("getLocation", fLocation2, fContext2.getLocation());
98 assertEquals("getLocation", fLocation3, fContext3.getLocation());
99
100 assertEquals("getRank", fRank1, fContext1.getRank());
101 assertEquals("getRank", fRank2, fContext2.getRank());
102 assertEquals("getRank", fRank3, fContext3.getRank());
103 }
104
105 public void testTmfContextCopy() {
106 final TmfContext context1 = new TmfContext(fContext1);
107 final TmfContext context2 = new TmfContext(fContext2);
108 final TmfContext context3 = new TmfContext(fContext3);
109
110 assertEquals("getLocation", fLocation1, context1.getLocation());
111 assertEquals("getLocation", fLocation2, context2.getLocation());
112 assertEquals("getLocation", fLocation3, context3.getLocation());
113
114 assertEquals("getRank", fRank1, context1.getRank());
115 assertEquals("getRank", fRank2, context2.getRank());
116 assertEquals("getRank", fRank3, context3.getRank());
117 }
118
119 public void testTmfContextCopy2() {
120 try {
121 new TmfContext((TmfContext) null);
122 fail("Copy constructor: no exception");
123 }
124 catch (final IllegalArgumentException e) {
125 // pass
126 }
127 catch (final Exception e) {
128 fail("Copy constructor: wrong exception");
129 }
130 }
131
132 // ------------------------------------------------------------------------
133 // equals
134 // ------------------------------------------------------------------------
135
136 public void testEqualsReflexivity() throws Exception {
137 assertTrue("equals", fContext1.equals(fContext1));
138 assertTrue("equals", fContext2.equals(fContext2));
139
140 assertFalse("equals", fContext1.equals(fContext2));
141 assertFalse("equals", fContext2.equals(fContext1));
142 }
143
144 public void testEqualsSymmetry() throws Exception {
145 final TmfContext context1 = new TmfContext(fContext1);
146 final TmfContext context2 = new TmfContext(fContext2);
147
148 assertTrue("equals", context1.equals(fContext1));
149 assertTrue("equals", fContext1.equals(context1));
150
151 assertTrue("equals", context2.equals(fContext2));
152 assertTrue("equals", fContext2.equals(context2));
153 }
154
155 public void testEqualsTransivity() throws Exception {
156 final TmfContext context1 = new TmfContext(fContext1);
157 final TmfContext context2 = new TmfContext(context1);
158 final TmfContext context3 = new TmfContext(context2);
159
160 assertTrue("equals", context1.equals(context2));
161 assertTrue("equals", context2.equals(context3));
162 assertTrue("equals", context1.equals(context3));
163 }
164
165 public void testEqualsNull() throws Exception {
166 assertFalse("equals", fContext1.equals(null));
167 assertFalse("equals", fContext2.equals(null));
168 }
169
170 public class MyContext extends TmfContext {
171 }
172
173 public void testNonEquals() throws Exception {
174
175 // Different classes
176 final MyContext myContext = new MyContext();
177 assertFalse("equals", fContext1.equals(myContext));
178 assertFalse("equals", myContext.equals(fContext1));
179
180 // Different locations
181 TmfContext context1 = new TmfContext(fContext1);
182 TmfContext context2 = new TmfContext(fContext1);
183 context1.setLocation(null);
184 context2.setLocation(null);
185
186 assertFalse("equals", fContext1.equals(context1));
187 assertFalse("equals", context1.equals(fContext1));
188 assertTrue("equals", context1.equals(context2));
189
190 // Different ranks
191 context1 = new TmfContext(fContext1);
192 context2 = new TmfContext(fContext1);
193 context1.setRank(fContext1.getRank() + 1);
194 context2.setRank(fContext1.getRank() + 2);
195
196 assertFalse("equals", fContext1.equals(context1));
197 assertFalse("equals", context1.equals(fContext1));
198 assertFalse("equals", context1.equals(context2));
199 }
200
201 // ------------------------------------------------------------------------
202 // hashCode
203 // ------------------------------------------------------------------------
204
205 public void testHashCode() throws Exception {
206 final TmfContext context1 = new TmfContext(fContext1);
207 final TmfContext context2 = new TmfContext(fContext2);
208
209 assertEquals("hashCode", fContext1.hashCode(), context1.hashCode());
210 assertEquals("hashCode", fContext2.hashCode(), context2.hashCode());
211
212 assertFalse("hashCode", fContext1.hashCode() == context2.hashCode());
213 assertFalse("hashCode", fContext2.hashCode() == context1.hashCode());
214
215 final TmfContext nullContext1 = new TmfContext();
216 final TmfContext nullContext2 = new TmfContext(nullContext1);
217 assertEquals("hashCode", nullContext1.hashCode(), nullContext2.hashCode());
218 }
219
220 // ------------------------------------------------------------------------
221 // toString
222 // ------------------------------------------------------------------------
223
224 public void testToString() {
225 final String expected1 = "TmfContext [fLocation=" + fLocation1 + ", fRank=" + 1 + "]";
226 final String expected2 = "TmfContext [fLocation=" + fLocation2 + ", fRank=" + 2 + "]";
227 final String expected3 = "TmfContext [fLocation=" + fLocation3 + ", fRank=" + 3 + "]";
228
229 assertEquals("toString", expected1, fContext1.toString());
230 assertEquals("toString", expected2, fContext2.toString());
231 assertEquals("toString", expected3, fContext3.toString());
232 }
233
234 // ------------------------------------------------------------------------
235 // clone
236 // ------------------------------------------------------------------------
237
238 public void testClone() {
239 try {
240 final TmfContext context1 = fContext1.clone();
241 final TmfContext context2 = fContext2.clone();
242 final TmfContext context3 = fContext3.clone();
243
244 assertEquals("clone", context1, fContext1);
245 assertEquals("clone", context2, fContext2);
246 assertEquals("clone", context3, fContext3);
247
248 context1.setLocation(null);
249 final TmfContext context4 = context1.clone();
250 assertEquals("clone", context1, context4);
251 assertNull(context1.getLocation());
252 assertNull(context4.getLocation());
253
254 } catch (final InternalError e) {
255 fail("clone()");
256 }
257 }
258
259 // ------------------------------------------------------------------------
260 // setLocation, setRank, updateRank
261 // ------------------------------------------------------------------------
262
263 public void testSetLocation() {
264 final TmfContext context1 = new TmfContext(fContext1);
265 context1.setLocation(fContext2.getLocation());
266
267 assertEquals("getLocation", fLocation2, context1.getLocation());
268 assertEquals("getRank", 1, context1.getRank());
269 }
270
271 public void testSetRank() {
272 final TmfContext context1 = new TmfContext(fContext1);
273 context1.setRank(fContext2.getRank());
274
275 assertEquals("getLocation", fLocation1, context1.getLocation());
276 assertEquals("getRank", fRank2, context1.getRank());
277 }
278
279 public void testIncreaseRank() {
280 final TmfContext context1 = new TmfContext(fContext1);
281
282 context1.increaseRank();
283 assertEquals("getRank", fRank1 + 1, context1.getRank());
284 context1.increaseRank();
285 assertEquals("getRank", fRank1 + 2, context1.getRank());
286
287 context1.setRank(ITmfContext.UNKNOWN_RANK);
288 context1.increaseRank();
289 assertEquals("getRank", ITmfContext.UNKNOWN_RANK, context1.getRank());
290 context1.increaseRank();
291 assertEquals("getRank", ITmfContext.UNKNOWN_RANK, context1.getRank());
292 }
293
294 }
This page took 0.040457 seconds and 6 git commands to generate.