1 /*******************************************************************************
2 * Copyright (c) 2009, 2010, 2012 Ericsson
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
10 * Francois Chouinard - Initial API and implementation
11 * Francois Chouinard - Adapted for TMF Trace Model 1.0
12 *******************************************************************************/
14 package org
.eclipse
.linuxtools
.tmf
.core
.tests
.trace
;
16 import junit
.framework
.TestCase
;
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
;
25 * Test suite for the TmfContext class.
27 @SuppressWarnings("nls")
28 public class TmfContextTest
extends TestCase
{
30 // ------------------------------------------------------------------------
32 // ------------------------------------------------------------------------
34 final String aString
= "some location";
35 final Long aLong
= 12345L;
36 final TmfTimestamp aTimestamp
= new TmfTimestamp();
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
);
42 final long fRank1
= 1;
43 final long fRank2
= 2;
44 final long fRank3
= 3;
46 final TmfContext fContext1
= new TmfContext(fLocation1
, fRank1
);
47 final TmfContext fContext2
= new TmfContext(fLocation2
, fRank2
);
48 final TmfContext fContext3
= new TmfContext(fLocation3
, fRank3
);
50 // ------------------------------------------------------------------------
52 // ------------------------------------------------------------------------
55 * @param name the test name
57 public TmfContextTest(final String name
) {
62 protected void setUp() throws Exception
{
67 protected void tearDown() throws Exception
{
71 // ------------------------------------------------------------------------
73 // ------------------------------------------------------------------------
75 public void testTmfContextDefault() {
76 final TmfContext context
= new TmfContext();
77 assertEquals("getLocation", null, context
.getLocation());
78 assertEquals("getRank", TmfContext
.UNKNOWN_RANK
, context
.getRank());
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
);
86 assertEquals("getLocation", fLocation1
, context1
.getLocation());
87 assertEquals("getLocation", fLocation2
, context2
.getLocation());
88 assertEquals("getLocation", fLocation3
, context3
.getLocation());
90 assertEquals("getRank", TmfContext
.UNKNOWN_RANK
, context1
.getRank());
91 assertEquals("getRank", TmfContext
.UNKNOWN_RANK
, context2
.getRank());
92 assertEquals("getRank", TmfContext
.UNKNOWN_RANK
, context3
.getRank());
95 public void testTmfContext() {
96 assertEquals("getLocation", fLocation1
, fContext1
.getLocation());
97 assertEquals("getLocation", fLocation2
, fContext2
.getLocation());
98 assertEquals("getLocation", fLocation3
, fContext3
.getLocation());
100 assertEquals("getRank", fRank1
, fContext1
.getRank());
101 assertEquals("getRank", fRank2
, fContext2
.getRank());
102 assertEquals("getRank", fRank3
, fContext3
.getRank());
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
);
110 assertEquals("getLocation", fLocation1
, context1
.getLocation());
111 assertEquals("getLocation", fLocation2
, context2
.getLocation());
112 assertEquals("getLocation", fLocation3
, context3
.getLocation());
114 assertEquals("getRank", fRank1
, context1
.getRank());
115 assertEquals("getRank", fRank2
, context2
.getRank());
116 assertEquals("getRank", fRank3
, context3
.getRank());
119 public void testTmfContextCopy2() {
121 new TmfContext((TmfContext
) null);
122 fail("Copy constructor: no exception");
124 catch (final IllegalArgumentException e
) {
127 catch (final Exception e
) {
128 fail("Copy constructor: wrong exception");
132 // ------------------------------------------------------------------------
134 // ------------------------------------------------------------------------
136 public void testEqualsReflexivity() throws Exception
{
137 assertTrue("equals", fContext1
.equals(fContext1
));
138 assertTrue("equals", fContext2
.equals(fContext2
));
140 assertFalse("equals", fContext1
.equals(fContext2
));
141 assertFalse("equals", fContext2
.equals(fContext1
));
144 public void testEqualsSymmetry() throws Exception
{
145 final TmfContext context1
= new TmfContext(fContext1
);
146 final TmfContext context2
= new TmfContext(fContext2
);
148 assertTrue("equals", context1
.equals(fContext1
));
149 assertTrue("equals", fContext1
.equals(context1
));
151 assertTrue("equals", context2
.equals(fContext2
));
152 assertTrue("equals", fContext2
.equals(context2
));
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
);
160 assertTrue("equals", context1
.equals(context2
));
161 assertTrue("equals", context2
.equals(context3
));
162 assertTrue("equals", context1
.equals(context3
));
165 public void testEqualsNull() throws Exception
{
166 assertFalse("equals", fContext1
.equals(null));
167 assertFalse("equals", fContext2
.equals(null));
170 public class MyContext
extends TmfContext
{
173 public void testNonEquals() throws Exception
{
176 final MyContext myContext
= new MyContext();
177 assertFalse("equals", fContext1
.equals(myContext
));
178 assertFalse("equals", myContext
.equals(fContext1
));
180 // Different locations
181 TmfContext context1
= new TmfContext(fContext1
);
182 TmfContext context2
= new TmfContext(fContext1
);
183 context1
.setLocation(null);
184 context2
.setLocation(null);
186 assertFalse("equals", fContext1
.equals(context1
));
187 assertFalse("equals", context1
.equals(fContext1
));
188 assertTrue("equals", context1
.equals(context2
));
191 context1
= new TmfContext(fContext1
);
192 context2
= new TmfContext(fContext1
);
193 context1
.setRank(fContext1
.getRank() + 1);
194 context2
.setRank(fContext1
.getRank() + 2);
196 assertFalse("equals", fContext1
.equals(context1
));
197 assertFalse("equals", context1
.equals(fContext1
));
198 assertFalse("equals", context1
.equals(context2
));
201 // ------------------------------------------------------------------------
203 // ------------------------------------------------------------------------
205 public void testHashCode() throws Exception
{
206 final TmfContext context1
= new TmfContext(fContext1
);
207 final TmfContext context2
= new TmfContext(fContext2
);
209 assertEquals("hashCode", fContext1
.hashCode(), context1
.hashCode());
210 assertEquals("hashCode", fContext2
.hashCode(), context2
.hashCode());
212 assertFalse("hashCode", fContext1
.hashCode() == context2
.hashCode());
213 assertFalse("hashCode", fContext2
.hashCode() == context1
.hashCode());
215 final TmfContext nullContext1
= new TmfContext();
216 final TmfContext nullContext2
= new TmfContext(nullContext1
);
217 assertEquals("hashCode", nullContext1
.hashCode(), nullContext2
.hashCode());
220 // ------------------------------------------------------------------------
222 // ------------------------------------------------------------------------
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 + "]";
229 assertEquals("toString", expected1
, fContext1
.toString());
230 assertEquals("toString", expected2
, fContext2
.toString());
231 assertEquals("toString", expected3
, fContext3
.toString());
234 // ------------------------------------------------------------------------
236 // ------------------------------------------------------------------------
238 public void testClone() {
240 final TmfContext context1
= fContext1
.clone();
241 final TmfContext context2
= fContext2
.clone();
242 final TmfContext context3
= fContext3
.clone();
244 assertEquals("clone", context1
, fContext1
);
245 assertEquals("clone", context2
, fContext2
);
246 assertEquals("clone", context3
, fContext3
);
248 context1
.setLocation(null);
249 final TmfContext context4
= context1
.clone();
250 assertEquals("clone", context1
, context4
);
251 assertNull(context1
.getLocation());
252 assertNull(context4
.getLocation());
254 } catch (final InternalError e
) {
259 // ------------------------------------------------------------------------
260 // setLocation, setRank, updateRank
261 // ------------------------------------------------------------------------
263 public void testSetLocation() {
264 final TmfContext context1
= new TmfContext(fContext1
);
265 context1
.setLocation(fContext2
.getLocation());
267 assertEquals("getLocation", fLocation2
, context1
.getLocation());
268 assertEquals("getRank", 1, context1
.getRank());
271 public void testSetRank() {
272 final TmfContext context1
= new TmfContext(fContext1
);
273 context1
.setRank(fContext2
.getRank());
275 assertEquals("getLocation", fLocation1
, context1
.getLocation());
276 assertEquals("getRank", fRank2
, context1
.getRank());
279 public void testIncreaseRank() {
280 final TmfContext context1
= new TmfContext(fContext1
);
282 context1
.increaseRank();
283 assertEquals("getRank", fRank1
+ 1, context1
.getRank());
284 context1
.increaseRank();
285 assertEquals("getRank", fRank1
+ 2, context1
.getRank());
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());