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 *******************************************************************************/
13 package org
.eclipse
.linuxtools
.tmf
.core
.tests
.trace
;
15 import junit
.framework
.TestCase
;
17 import org
.eclipse
.linuxtools
.tmf
.core
.event
.ITmfTimestamp
;
18 import org
.eclipse
.linuxtools
.tmf
.core
.event
.TmfTimestamp
;
19 import org
.eclipse
.linuxtools
.tmf
.core
.trace
.TmfCheckpoint
;
20 import org
.eclipse
.linuxtools
.tmf
.core
.trace
.TmfLocation
;
23 * <b><u>TmfCheckpointTest</u></b>
25 * Test suite for the TmfCheckpoint class.
27 @SuppressWarnings("nls")
28 public class TmfCheckpointTest
extends TestCase
{
30 // ------------------------------------------------------------------------
32 // ------------------------------------------------------------------------
34 ITmfTimestamp fTimestamp1
= new TmfTimestamp();
35 ITmfTimestamp fTimestamp2
= TmfTimestamp
.BIG_BANG
;
36 ITmfTimestamp fTimestamp3
= TmfTimestamp
.BIG_CRUNCH
;
41 TmfLocation
<Long
> fLocation1
= new TmfLocation
<Long
>(aLong1
);
42 TmfLocation
<Long
> fLocation2
= new TmfLocation
<Long
>(aLong2
);
43 TmfLocation
<Long
> fLocation3
= new TmfLocation
<Long
>(aLong3
);
45 TmfCheckpoint fCheckpoint1
= new TmfCheckpoint(fTimestamp1
, fLocation1
);
46 TmfCheckpoint fCheckpoint2
= new TmfCheckpoint(fTimestamp2
, fLocation2
);
47 TmfCheckpoint fCheckpoint3
= new TmfCheckpoint(fTimestamp3
, fLocation3
);
49 // ------------------------------------------------------------------------
51 // ------------------------------------------------------------------------
54 * @param name the test name
56 public TmfCheckpointTest(final String name
) {
61 protected void setUp() throws Exception
{
66 protected void tearDown() throws Exception
{
70 // ------------------------------------------------------------------------
72 // ------------------------------------------------------------------------
74 public void testTmfCheckpoint() {
75 assertEquals("TmfCheckpoint", fTimestamp1
, fCheckpoint1
.getTimestamp());
76 assertEquals("TmfCheckpoint", fLocation1
, fCheckpoint1
.getLocation());
79 public void testTmfLocationCopy() {
80 final TmfCheckpoint checkpoint
= new TmfCheckpoint(fCheckpoint1
);
82 assertEquals("TmfCheckpoint", fTimestamp1
, checkpoint
.getTimestamp());
83 assertEquals("TmfCheckpoint", fLocation1
, checkpoint
.getLocation());
86 public void testTmfLocationCopy2() throws Exception
{
88 new TmfCheckpoint(null);
91 catch (final IllegalArgumentException e
) {
94 catch (final Exception e
) {
95 fail("wrong exception");
99 // ------------------------------------------------------------------------
101 // ------------------------------------------------------------------------
103 public void testClone() {
105 TmfCheckpoint checkpoint1
= fCheckpoint1
.clone();
106 TmfCheckpoint checkpoint2
= fCheckpoint1
.clone();
107 TmfCheckpoint checkpoint3
= fCheckpoint1
.clone();
109 assertEquals("clone", checkpoint1
, fCheckpoint1
);
110 assertEquals("clone", checkpoint2
, fCheckpoint1
);
111 assertEquals("clone", checkpoint3
, fCheckpoint1
);
113 checkpoint1
= new TmfCheckpoint(fTimestamp1
, null);
114 checkpoint2
= checkpoint1
.clone();
115 assertEquals("clone", checkpoint1
, checkpoint2
);
116 assertNull(checkpoint1
.getLocation());
117 assertNull(checkpoint2
.getLocation());
119 checkpoint1
= new TmfCheckpoint(null, fLocation1
);
120 checkpoint3
= checkpoint1
.clone();
121 assertEquals("clone", checkpoint1
, checkpoint3
);
122 assertNull(checkpoint1
.getTimestamp());
123 assertNull(checkpoint3
.getTimestamp());
125 } catch (final InternalError e
) {
130 // ------------------------------------------------------------------------
132 // ------------------------------------------------------------------------
134 public void testCompareTo() {
135 assertEquals("compareTo", 0, fCheckpoint1
.compareTo(fCheckpoint1
));
136 assertEquals("compareTo", 1, fCheckpoint1
.compareTo(fCheckpoint2
));
137 assertEquals("compareTo", -1, fCheckpoint1
.compareTo(fCheckpoint3
));
139 assertEquals("compareTo", -1, fCheckpoint2
.compareTo(fCheckpoint1
));
140 assertEquals("compareTo", 0, fCheckpoint2
.compareTo(fCheckpoint2
));
141 assertEquals("compareTo", -1, fCheckpoint2
.compareTo(fCheckpoint3
));
143 assertEquals("compareTo", 1, fCheckpoint3
.compareTo(fCheckpoint1
));
144 assertEquals("compareTo", 1, fCheckpoint3
.compareTo(fCheckpoint2
));
145 assertEquals("compareTo", 0, fCheckpoint3
.compareTo(fCheckpoint3
));
148 public void testCompareToNull() {
149 final TmfCheckpoint checkpoint1
= new TmfCheckpoint(null, fLocation1
);
150 final TmfCheckpoint checkpoint2
= new TmfCheckpoint(null, fLocation2
);
151 final TmfCheckpoint checkpoint3
= new TmfCheckpoint(null, fLocation3
);
152 final TmfCheckpoint checkpoint4
= new TmfCheckpoint(null, fLocation1
);
154 // Test the various 'null' vs. '!null' combinations
155 assertEquals("compareTo", 0, checkpoint1
.compareTo(fCheckpoint1
));
156 assertEquals("compareTo", 0, fCheckpoint1
.compareTo(checkpoint1
));
157 assertEquals("compareTo", -1, checkpoint1
.compareTo(fCheckpoint2
));
158 assertEquals("compareTo", 1, fCheckpoint2
.compareTo(checkpoint1
));
159 assertEquals("compareTo", -1, checkpoint1
.compareTo(fCheckpoint3
));
160 assertEquals("compareTo", 1, fCheckpoint3
.compareTo(checkpoint1
));
162 // Test the 'null' vs. 'null' combinations
163 assertEquals("compareTo", 0, checkpoint1
.compareTo(checkpoint4
));
164 assertEquals("compareTo", 0, checkpoint4
.compareTo(checkpoint1
));
165 assertEquals("compareTo", -1, checkpoint1
.compareTo(checkpoint2
));
166 assertEquals("compareTo", 1, checkpoint2
.compareTo(checkpoint1
));
167 assertEquals("compareTo", -1, checkpoint1
.compareTo(checkpoint3
));
168 assertEquals("compareTo", 1, checkpoint3
.compareTo(checkpoint1
));
171 // ------------------------------------------------------------------------
173 // ------------------------------------------------------------------------
175 public void testHashCode() throws Exception
{
176 final TmfCheckpoint checkpoint1
= new TmfCheckpoint(fCheckpoint1
);
177 final TmfCheckpoint checkpoint2
= new TmfCheckpoint(fCheckpoint2
);
179 assertTrue("hashCode", fCheckpoint1
.hashCode() == checkpoint1
.hashCode());
180 assertTrue("hashCode", fCheckpoint2
.hashCode() == checkpoint2
.hashCode());
182 assertTrue("hashCode", fCheckpoint1
.hashCode() != checkpoint2
.hashCode());
183 assertTrue("hashCode", fCheckpoint2
.hashCode() != checkpoint1
.hashCode());
186 public void testHashCodeNull() throws Exception
{
187 final TmfCheckpoint checkpoint1
= new TmfCheckpoint(null, fLocation1
);
188 final TmfCheckpoint checkpoint2
= new TmfCheckpoint(fTimestamp1
, null);
189 final TmfCheckpoint checkpoint3
= new TmfCheckpoint(checkpoint1
);
190 final TmfCheckpoint checkpoint4
= new TmfCheckpoint(checkpoint2
);
192 assertTrue("hashCode", fCheckpoint1
.hashCode() != checkpoint1
.hashCode());
193 assertTrue("hashCode", fCheckpoint1
.hashCode() != checkpoint2
.hashCode());
195 assertTrue("hashCode", checkpoint1
.hashCode() == checkpoint3
.hashCode());
196 assertTrue("hashCode", checkpoint2
.hashCode() == checkpoint4
.hashCode());
199 // ------------------------------------------------------------------------
201 // ------------------------------------------------------------------------
203 public void testEqualsReflexivity() throws Exception
{
204 assertTrue("equals", fCheckpoint1
.equals(fCheckpoint1
));
205 assertTrue("equals", fCheckpoint2
.equals(fCheckpoint2
));
207 assertTrue("equals", !fCheckpoint1
.equals(fCheckpoint2
));
208 assertTrue("equals", !fCheckpoint2
.equals(fCheckpoint1
));
211 public void testEqualsSymmetry() throws Exception
{
212 final TmfCheckpoint checkpoint1
= new TmfCheckpoint(fCheckpoint1
);
213 final TmfCheckpoint checkpoint2
= new TmfCheckpoint(fCheckpoint2
);
215 assertTrue("equals", checkpoint1
.equals(fCheckpoint1
));
216 assertTrue("equals", fCheckpoint1
.equals(checkpoint1
));
218 assertTrue("equals", checkpoint2
.equals(fCheckpoint2
));
219 assertTrue("equals", fCheckpoint2
.equals(checkpoint2
));
222 public void testEqualsTransivity() throws Exception
{
223 final TmfCheckpoint checkpoint1
= new TmfCheckpoint(fCheckpoint1
);
224 final TmfCheckpoint checkpoint2
= new TmfCheckpoint(checkpoint1
);
225 final TmfCheckpoint checkpoint3
= new TmfCheckpoint(checkpoint2
);
227 assertTrue("equals", checkpoint1
.equals(checkpoint2
));
228 assertTrue("equals", checkpoint2
.equals(checkpoint3
));
229 assertTrue("equals", checkpoint1
.equals(checkpoint3
));
232 public void testNotEqual() throws Exception
{
233 // Various checkpoints
234 final TmfCheckpoint checkpoint1
= new TmfCheckpoint(fTimestamp1
, fLocation1
);
235 final TmfCheckpoint checkpoint2
= new TmfCheckpoint(fTimestamp2
, fLocation1
);
236 final TmfCheckpoint checkpoint3
= new TmfCheckpoint(fTimestamp1
, fLocation2
);
237 final TmfCheckpoint checkpoint4
= new TmfCheckpoint(fTimestamp1
, null);
238 final TmfCheckpoint checkpoint5
= new TmfCheckpoint(null, fLocation1
);
241 assertFalse("equals", checkpoint1
.equals(null));
244 assertFalse("equals", checkpoint1
.equals(new TmfTimestamp()));
246 // Null locations/location
247 assertFalse("equals", checkpoint1
.equals(checkpoint4
));
248 assertFalse("equals", checkpoint1
.equals(checkpoint5
));
249 assertFalse("equals", checkpoint4
.equals(checkpoint1
));
250 assertFalse("equals", checkpoint5
.equals(checkpoint1
));
252 // Different locations/location
253 assertFalse("equals", checkpoint1
.equals(checkpoint2
));
254 assertFalse("equals", checkpoint1
.equals(checkpoint3
));
257 // ------------------------------------------------------------------------
259 // ------------------------------------------------------------------------
261 public void testToString() {
262 final String expected1
= "TmfCheckpoint [fLocation=" + fCheckpoint1
.getLocation() +
263 ", fTimestamp=" + fCheckpoint1
.getTimestamp() + "]";
264 final String expected2
= "TmfCheckpoint [fLocation=" + fCheckpoint2
.getLocation() +
265 ", fTimestamp=" + fCheckpoint2
.getTimestamp() + "]";
266 final String expected3
= "TmfCheckpoint [fLocation=" + fCheckpoint3
.getLocation() +
267 ", fTimestamp=" + fCheckpoint3
.getTimestamp() + "]";
269 assertEquals("toString", expected1
, fCheckpoint1
.toString());
270 assertEquals("toString", expected2
, fCheckpoint2
.toString());
271 assertEquals("toString", expected3
, fCheckpoint3
.toString());