tmf.core: Introduce TmfTimestamp factory methods
[deliverable/tracecompass.git] / tmf / org.eclipse.tracecompass.tmf.core.tests / src / org / eclipse / tracecompass / tmf / core / tests / trace / indexer / checkpoint / TmfCheckpointTest.java
1 /*******************************************************************************
2 * Copyright (c) 2009, 2014 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 * Alexandre Montplaisir - Port to JUnit4
13 * Patrick Tasse - Updated for location in checkpoint
14 *******************************************************************************/
15
16 package org.eclipse.tracecompass.tmf.core.tests.trace.indexer.checkpoint;
17
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;
22
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;
29
30 /**
31 * Test suite for the TmfCheckpoint class.
32 */
33 @SuppressWarnings("javadoc")
34 public class TmfCheckpointTest {
35
36 // ------------------------------------------------------------------------
37 // Variables
38 // ------------------------------------------------------------------------
39
40 private ITmfTimestamp fTimestamp1 = TmfTimestamp.fromSeconds(0);
41 private ITmfTimestamp fTimestamp2 = TmfTimestamp.BIG_BANG;
42 private ITmfTimestamp fTimestamp3 = TmfTimestamp.BIG_CRUNCH;
43
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;
50
51 private ITmfLocation fLocation1 = new TmfLongLocation(aLong1);
52 private ITmfLocation fLocation2 = new TmfLongLocation(aLong2);
53 private ITmfLocation fLocation3 = new TmfLongLocation(aLong3);
54
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);
58
59 // ------------------------------------------------------------------------
60 // Constructors
61 // ------------------------------------------------------------------------
62
63 @Test
64 public void testTmfCheckpoint() {
65 assertEquals("TmfCheckpoint", fTimestamp1, fCheckpoint1.getTimestamp());
66 assertEquals("TmfCheckpoint", fLocation1, fCheckpoint1.getLocation());
67 }
68
69 public void testTmfLocationCopy() {
70 final TmfCheckpoint checkpoint = new TmfCheckpoint(fCheckpoint1);
71
72 assertEquals("TmfCheckpoint", fTimestamp1, checkpoint.getTimestamp());
73 assertEquals("TmfCheckpoint", fLocation1, checkpoint.getLocation());
74 }
75
76 @Test
77 public void testTmfLocationCopy2() {
78 try {
79 new TmfCheckpoint(null);
80 fail("null copy");
81 }
82 catch (final IllegalArgumentException e) {
83 // Success
84 }
85 catch (final Exception e) {
86 fail("wrong exception");
87 }
88 }
89
90 // ------------------------------------------------------------------------
91 // compareTo
92 // ------------------------------------------------------------------------
93
94 @Test
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));
99
100 assertEquals("compareTo", -1, fCheckpoint2.compareTo(fCheckpoint1));
101 assertEquals("compareTo", 0, fCheckpoint2.compareTo(fCheckpoint2));
102 assertEquals("compareTo", -1, fCheckpoint2.compareTo(fCheckpoint3));
103
104 assertEquals("compareTo", 1, fCheckpoint3.compareTo(fCheckpoint1));
105 assertEquals("compareTo", 1, fCheckpoint3.compareTo(fCheckpoint2));
106 assertEquals("compareTo", 0, fCheckpoint3.compareTo(fCheckpoint3));
107 }
108
109 @Test
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);
115
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));
123
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));
131 }
132
133 // ------------------------------------------------------------------------
134 // hashCode
135 // ------------------------------------------------------------------------
136
137 @Test
138 public void testHashCode() {
139 final TmfCheckpoint checkpoint1 = new TmfCheckpoint(fCheckpoint1);
140 final TmfCheckpoint checkpoint2 = new TmfCheckpoint(fCheckpoint2);
141
142 assertTrue("hashCode", fCheckpoint1.hashCode() == checkpoint1.hashCode());
143 assertTrue("hashCode", fCheckpoint2.hashCode() == checkpoint2.hashCode());
144
145 assertTrue("hashCode", fCheckpoint1.hashCode() != checkpoint2.hashCode());
146 assertTrue("hashCode", fCheckpoint2.hashCode() != checkpoint1.hashCode());
147 }
148
149 @Test
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);
155
156 assertTrue("hashCode", fCheckpoint1.hashCode() != checkpoint1.hashCode());
157 assertTrue("hashCode", fCheckpoint1.hashCode() != checkpoint2.hashCode());
158
159 assertTrue("hashCode", checkpoint1.hashCode() == checkpoint3.hashCode());
160 assertTrue("hashCode", checkpoint2.hashCode() == checkpoint4.hashCode());
161 }
162
163 // ------------------------------------------------------------------------
164 // equals
165 // ------------------------------------------------------------------------
166
167 @Test
168 public void testEqualsReflexivity() {
169 assertTrue("equals", fCheckpoint1.equals(fCheckpoint1));
170 assertTrue("equals", fCheckpoint2.equals(fCheckpoint2));
171
172 assertTrue("equals", !fCheckpoint1.equals(fCheckpoint2));
173 assertTrue("equals", !fCheckpoint2.equals(fCheckpoint1));
174 }
175
176 @Test
177 public void testEqualsSymmetry() {
178 final TmfCheckpoint checkpoint1 = new TmfCheckpoint(fCheckpoint1);
179 final TmfCheckpoint checkpoint2 = new TmfCheckpoint(fCheckpoint2);
180
181 assertTrue("equals", checkpoint1.equals(fCheckpoint1));
182 assertTrue("equals", fCheckpoint1.equals(checkpoint1));
183
184 assertTrue("equals", checkpoint2.equals(fCheckpoint2));
185 assertTrue("equals", fCheckpoint2.equals(checkpoint2));
186 }
187
188 @Test
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);
193
194 assertTrue("equals", checkpoint1.equals(checkpoint2));
195 assertTrue("equals", checkpoint2.equals(checkpoint3));
196 assertTrue("equals", checkpoint1.equals(checkpoint3));
197 }
198
199 @Test
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);
207
208 // Null check
209 assertFalse("equals", checkpoint1.equals(null));
210
211 // Different types
212 assertFalse("equals", checkpoint1.equals(TmfTimestamp.fromSeconds(0)));
213
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));
219
220 // Different locations/location
221 assertFalse("equals", checkpoint1.equals(checkpoint2));
222 assertFalse("equals", checkpoint1.equals(checkpoint3));
223 }
224
225 // ------------------------------------------------------------------------
226 // toString
227 // ------------------------------------------------------------------------
228
229 @Test
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() + "]";
237
238 assertEquals("toString", expected1, fCheckpoint1.toString());
239 assertEquals("toString", expected2, fCheckpoint2.toString());
240 assertEquals("toString", expected3, fCheckpoint3.toString());
241 }
242
243 }
This page took 0.03661 seconds and 5 git commands to generate.