1 /*******************************************************************************
2 * Copyright (c) 2009, 2014 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 * Alexandre Montplaisir - Port to JUnit4
13 * Patrick Tasse - Updated for location in checkpoint
14 *******************************************************************************/
16 package org
.eclipse
.tracecompass
.tmf
.core
.tests
.trace
.indexer
.checkpoint
;
18 import static org
.junit
.Assert
.assertEquals
;
19 import static org
.junit
.Assert
.assertFalse
;
20 import static org
.junit
.Assert
.assertTrue
;
21 import static org
.junit
.Assert
.fail
;
23 import org
.eclipse
.tracecompass
.tmf
.core
.timestamp
.ITmfTimestamp
;
24 import org
.eclipse
.tracecompass
.tmf
.core
.timestamp
.TmfTimestamp
;
25 import org
.eclipse
.tracecompass
.tmf
.core
.trace
.indexer
.checkpoint
.TmfCheckpoint
;
26 import org
.eclipse
.tracecompass
.tmf
.core
.trace
.location
.ITmfLocation
;
27 import org
.eclipse
.tracecompass
.tmf
.core
.trace
.location
.TmfLongLocation
;
28 import org
.junit
.Test
;
31 * Test suite for the TmfCheckpoint class.
33 @SuppressWarnings("javadoc")
34 public class TmfCheckpointTest
{
36 // ------------------------------------------------------------------------
38 // ------------------------------------------------------------------------
40 private ITmfTimestamp fTimestamp1
= new TmfTimestamp();
41 private ITmfTimestamp fTimestamp2
= TmfTimestamp
.BIG_BANG
;
42 private ITmfTimestamp fTimestamp3
= TmfTimestamp
.BIG_CRUNCH
;
44 private long aLong1
= 12345L;
45 private long aLong2
= 23456L;
46 private long aLong3
= 34567L;
47 private long RANK1
= 1L;
48 private long RANK2
= 2L;
49 private long RANK3
= 3L;
51 private ITmfLocation fLocation1
= new TmfLongLocation(aLong1
);
52 private ITmfLocation fLocation2
= new TmfLongLocation(aLong2
);
53 private ITmfLocation fLocation3
= new TmfLongLocation(aLong3
);
55 private TmfCheckpoint fCheckpoint1
= new TmfCheckpoint(fTimestamp1
, fLocation1
, RANK1
);
56 private TmfCheckpoint fCheckpoint2
= new TmfCheckpoint(fTimestamp2
, fLocation2
, RANK2
);
57 private TmfCheckpoint fCheckpoint3
= new TmfCheckpoint(fTimestamp3
, fLocation3
, RANK3
);
59 // ------------------------------------------------------------------------
61 // ------------------------------------------------------------------------
64 public void testTmfCheckpoint() {
65 assertEquals("TmfCheckpoint", fTimestamp1
, fCheckpoint1
.getTimestamp());
66 assertEquals("TmfCheckpoint", fLocation1
, fCheckpoint1
.getLocation());
69 public void testTmfLocationCopy() {
70 final TmfCheckpoint checkpoint
= new TmfCheckpoint(fCheckpoint1
);
72 assertEquals("TmfCheckpoint", fTimestamp1
, checkpoint
.getTimestamp());
73 assertEquals("TmfCheckpoint", fLocation1
, checkpoint
.getLocation());
77 public void testTmfLocationCopy2() {
79 new TmfCheckpoint(null);
82 catch (final IllegalArgumentException e
) {
85 catch (final Exception e
) {
86 fail("wrong exception");
90 // ------------------------------------------------------------------------
92 // ------------------------------------------------------------------------
95 public void testCompareTo() {
96 assertEquals("compareTo", 0, fCheckpoint1
.compareTo(fCheckpoint1
));
97 assertEquals("compareTo", 1, fCheckpoint1
.compareTo(fCheckpoint2
));
98 assertEquals("compareTo", -1, fCheckpoint1
.compareTo(fCheckpoint3
));
100 assertEquals("compareTo", -1, fCheckpoint2
.compareTo(fCheckpoint1
));
101 assertEquals("compareTo", 0, fCheckpoint2
.compareTo(fCheckpoint2
));
102 assertEquals("compareTo", -1, fCheckpoint2
.compareTo(fCheckpoint3
));
104 assertEquals("compareTo", 1, fCheckpoint3
.compareTo(fCheckpoint1
));
105 assertEquals("compareTo", 1, fCheckpoint3
.compareTo(fCheckpoint2
));
106 assertEquals("compareTo", 0, fCheckpoint3
.compareTo(fCheckpoint3
));
110 public void testCompareToNull() {
111 final TmfCheckpoint checkpoint1
= new TmfCheckpoint(null, fLocation1
, RANK1
);
112 final TmfCheckpoint checkpoint2
= new TmfCheckpoint(null, fLocation2
, RANK2
);
113 final TmfCheckpoint checkpoint3
= new TmfCheckpoint(null, fLocation3
, RANK3
);
114 final TmfCheckpoint checkpoint4
= new TmfCheckpoint(null, fLocation1
, RANK1
);
116 // Test the various 'null' vs. '!null' combinations
117 assertEquals("compareTo", 0, checkpoint1
.compareTo(fCheckpoint1
));
118 assertEquals("compareTo", 0, fCheckpoint1
.compareTo(checkpoint1
));
119 assertEquals("compareTo", -1, checkpoint1
.compareTo(fCheckpoint2
));
120 assertEquals("compareTo", 1, fCheckpoint2
.compareTo(checkpoint1
));
121 assertEquals("compareTo", -1, checkpoint1
.compareTo(fCheckpoint3
));
122 assertEquals("compareTo", 1, fCheckpoint3
.compareTo(checkpoint1
));
124 // Test the 'null' vs. 'null' combinations
125 assertEquals("compareTo", 0, checkpoint1
.compareTo(checkpoint4
));
126 assertEquals("compareTo", 0, checkpoint4
.compareTo(checkpoint1
));
127 assertEquals("compareTo", -1, checkpoint1
.compareTo(checkpoint2
));
128 assertEquals("compareTo", 1, checkpoint2
.compareTo(checkpoint1
));
129 assertEquals("compareTo", -1, checkpoint1
.compareTo(checkpoint3
));
130 assertEquals("compareTo", 1, checkpoint3
.compareTo(checkpoint1
));
133 // ------------------------------------------------------------------------
135 // ------------------------------------------------------------------------
138 public void testHashCode() {
139 final TmfCheckpoint checkpoint1
= new TmfCheckpoint(fCheckpoint1
);
140 final TmfCheckpoint checkpoint2
= new TmfCheckpoint(fCheckpoint2
);
142 assertTrue("hashCode", fCheckpoint1
.hashCode() == checkpoint1
.hashCode());
143 assertTrue("hashCode", fCheckpoint2
.hashCode() == checkpoint2
.hashCode());
145 assertTrue("hashCode", fCheckpoint1
.hashCode() != checkpoint2
.hashCode());
146 assertTrue("hashCode", fCheckpoint2
.hashCode() != checkpoint1
.hashCode());
150 public void testHashCodeNull() {
151 final TmfCheckpoint checkpoint1
= new TmfCheckpoint(null, fLocation1
, RANK1
);
152 final TmfCheckpoint checkpoint2
= new TmfCheckpoint(fTimestamp1
, null, RANK1
);
153 final TmfCheckpoint checkpoint3
= new TmfCheckpoint(checkpoint1
);
154 final TmfCheckpoint checkpoint4
= new TmfCheckpoint(checkpoint2
);
156 assertTrue("hashCode", fCheckpoint1
.hashCode() != checkpoint1
.hashCode());
157 assertTrue("hashCode", fCheckpoint1
.hashCode() != checkpoint2
.hashCode());
159 assertTrue("hashCode", checkpoint1
.hashCode() == checkpoint3
.hashCode());
160 assertTrue("hashCode", checkpoint2
.hashCode() == checkpoint4
.hashCode());
163 // ------------------------------------------------------------------------
165 // ------------------------------------------------------------------------
168 public void testEqualsReflexivity() {
169 assertTrue("equals", fCheckpoint1
.equals(fCheckpoint1
));
170 assertTrue("equals", fCheckpoint2
.equals(fCheckpoint2
));
172 assertTrue("equals", !fCheckpoint1
.equals(fCheckpoint2
));
173 assertTrue("equals", !fCheckpoint2
.equals(fCheckpoint1
));
177 public void testEqualsSymmetry() {
178 final TmfCheckpoint checkpoint1
= new TmfCheckpoint(fCheckpoint1
);
179 final TmfCheckpoint checkpoint2
= new TmfCheckpoint(fCheckpoint2
);
181 assertTrue("equals", checkpoint1
.equals(fCheckpoint1
));
182 assertTrue("equals", fCheckpoint1
.equals(checkpoint1
));
184 assertTrue("equals", checkpoint2
.equals(fCheckpoint2
));
185 assertTrue("equals", fCheckpoint2
.equals(checkpoint2
));
189 public void testEqualsTransivity() {
190 final TmfCheckpoint checkpoint1
= new TmfCheckpoint(fCheckpoint1
);
191 final TmfCheckpoint checkpoint2
= new TmfCheckpoint(checkpoint1
);
192 final TmfCheckpoint checkpoint3
= new TmfCheckpoint(checkpoint2
);
194 assertTrue("equals", checkpoint1
.equals(checkpoint2
));
195 assertTrue("equals", checkpoint2
.equals(checkpoint3
));
196 assertTrue("equals", checkpoint1
.equals(checkpoint3
));
200 public void testNotEqual() {
201 // Various checkpoints
202 final TmfCheckpoint checkpoint1
= new TmfCheckpoint(fTimestamp1
, fLocation1
, RANK1
);
203 final TmfCheckpoint checkpoint2
= new TmfCheckpoint(fTimestamp2
, fLocation1
, RANK1
);
204 final TmfCheckpoint checkpoint3
= new TmfCheckpoint(fTimestamp1
, fLocation2
, RANK2
);
205 final TmfCheckpoint checkpoint4
= new TmfCheckpoint(fTimestamp1
, null, RANK1
);
206 final TmfCheckpoint checkpoint5
= new TmfCheckpoint(null, fLocation1
, RANK1
);
209 assertFalse("equals", checkpoint1
.equals(null));
212 assertFalse("equals", checkpoint1
.equals(new TmfTimestamp()));
214 // Null locations/location
215 assertFalse("equals", checkpoint1
.equals(checkpoint4
));
216 assertFalse("equals", checkpoint1
.equals(checkpoint5
));
217 assertFalse("equals", checkpoint4
.equals(checkpoint1
));
218 assertFalse("equals", checkpoint5
.equals(checkpoint1
));
220 // Different locations/location
221 assertFalse("equals", checkpoint1
.equals(checkpoint2
));
222 assertFalse("equals", checkpoint1
.equals(checkpoint3
));
225 // ------------------------------------------------------------------------
227 // ------------------------------------------------------------------------
230 public void testToString() {
231 final String expected1
= "TmfCheckpoint [fLocation=" + fCheckpoint1
.getLocation() +
232 ", fTimestamp=" + fCheckpoint1
.getTimestamp() + ", fCheckpointRank=" + fCheckpoint1
.getCheckpointRank() + "]";
233 final String expected2
= "TmfCheckpoint [fLocation=" + fCheckpoint2
.getLocation() +
234 ", fTimestamp=" + fCheckpoint2
.getTimestamp() + ", fCheckpointRank=" + fCheckpoint2
.getCheckpointRank() + "]";
235 final String expected3
= "TmfCheckpoint [fLocation=" + fCheckpoint3
.getLocation() +
236 ", fTimestamp=" + fCheckpoint3
.getTimestamp() + ", fCheckpointRank=" + fCheckpoint3
.getCheckpointRank() + "]";
238 assertEquals("toString", expected1
, fCheckpoint1
.toString());
239 assertEquals("toString", expected2
, fCheckpoint2
.toString());
240 assertEquals("toString", expected3
, fCheckpoint3
.toString());