Commit | Line | Data |
---|---|---|
d18dd09b | 1 | /******************************************************************************* |
60ae41e1 | 2 | * Copyright (c) 2009, 2014 Ericsson |
54a7a54c | 3 | * |
d18dd09b ASL |
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 | |
54a7a54c | 8 | * |
d18dd09b ASL |
9 | * Contributors: |
10 | * Francois Chouinard - Initial API and implementation | |
0316808c | 11 | * Francois Chouinard - Adapted for TMF Trace Model 1.0 |
6e1886bc | 12 | * Alexandre Montplaisir - Port to JUnit4 |
ea271da6 | 13 | * Patrick Tasse - Updated for location in checkpoint |
d18dd09b ASL |
14 | *******************************************************************************/ |
15 | ||
a3db8436 | 16 | package org.eclipse.linuxtools.tmf.core.tests.trace.indexer.checkpoint; |
d18dd09b | 17 | |
6e1886bc AM |
18 | import static org.junit.Assert.assertEquals; |
19 | import static org.junit.Assert.assertFalse; | |
6e1886bc AM |
20 | import static org.junit.Assert.assertTrue; |
21 | import static org.junit.Assert.fail; | |
d18dd09b | 22 | |
3bd46eef AM |
23 | import org.eclipse.linuxtools.tmf.core.timestamp.ITmfTimestamp; |
24 | import org.eclipse.linuxtools.tmf.core.timestamp.TmfTimestamp; | |
a3db8436 AM |
25 | import org.eclipse.linuxtools.tmf.core.trace.indexer.checkpoint.TmfCheckpoint; |
26 | import org.eclipse.linuxtools.tmf.core.trace.location.ITmfLocation; | |
27 | import org.eclipse.linuxtools.tmf.core.trace.location.TmfLongLocation; | |
6e1886bc | 28 | import org.junit.Test; |
d18dd09b ASL |
29 | |
30 | /** | |
d18dd09b ASL |
31 | * Test suite for the TmfCheckpoint class. |
32 | */ | |
cad06250 | 33 | @SuppressWarnings("javadoc") |
6e1886bc | 34 | public class TmfCheckpointTest { |
d18dd09b | 35 | |
5d837f9b FC |
36 | // ------------------------------------------------------------------------ |
37 | // Variables | |
38 | // ------------------------------------------------------------------------ | |
39 | ||
6e1886bc AM |
40 | private ITmfTimestamp fTimestamp1 = new TmfTimestamp(); |
41 | private ITmfTimestamp fTimestamp2 = TmfTimestamp.BIG_BANG; | |
42 | private ITmfTimestamp fTimestamp3 = TmfTimestamp.BIG_CRUNCH; | |
d18dd09b | 43 | |
0126a8ca AM |
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; | |
032ecd45 | 50 | |
6e1886bc AM |
51 | private ITmfLocation fLocation1 = new TmfLongLocation(aLong1); |
52 | private ITmfLocation fLocation2 = new TmfLongLocation(aLong2); | |
53 | private ITmfLocation fLocation3 = new TmfLongLocation(aLong3); | |
d18dd09b | 54 | |
032ecd45 MAL |
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); | |
d18dd09b ASL |
58 | |
59 | // ------------------------------------------------------------------------ | |
60 | // Constructors | |
61 | // ------------------------------------------------------------------------ | |
62 | ||
6e1886bc | 63 | @Test |
5d837f9b FC |
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 | ||
6e1886bc | 76 | @Test |
54a7a54c | 77 | public void testTmfLocationCopy2() { |
5d837f9b FC |
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 | } | |
d18dd09b | 89 | |
ff1ccee6 FC |
90 | // ------------------------------------------------------------------------ |
91 | // compareTo | |
92 | // ------------------------------------------------------------------------ | |
93 | ||
6e1886bc | 94 | @Test |
ff1ccee6 FC |
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 | ||
6e1886bc | 109 | @Test |
ff1ccee6 | 110 | public void testCompareToNull() { |
032ecd45 MAL |
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); | |
ff1ccee6 FC |
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 | ||
6e1886bc | 137 | @Test |
54a7a54c | 138 | public void testHashCode() { |
ff1ccee6 FC |
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 | ||
6e1886bc | 149 | @Test |
54a7a54c | 150 | public void testHashCodeNull() { |
032ecd45 MAL |
151 | final TmfCheckpoint checkpoint1 = new TmfCheckpoint(null, fLocation1, RANK1); |
152 | final TmfCheckpoint checkpoint2 = new TmfCheckpoint(fTimestamp1, null, RANK1); | |
ff1ccee6 FC |
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 | ||
d18dd09b ASL |
163 | // ------------------------------------------------------------------------ |
164 | // equals | |
165 | // ------------------------------------------------------------------------ | |
166 | ||
6e1886bc | 167 | @Test |
54a7a54c | 168 | public void testEqualsReflexivity() { |
5d837f9b FC |
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 | ||
6e1886bc | 176 | @Test |
54a7a54c | 177 | public void testEqualsSymmetry() { |
5d837f9b FC |
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 | ||
6e1886bc | 188 | @Test |
54a7a54c | 189 | public void testEqualsTransivity() { |
5d837f9b FC |
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 | ||
6e1886bc | 199 | @Test |
54a7a54c | 200 | public void testNotEqual() { |
8ca8c4f1 | 201 | // Various checkpoints |
032ecd45 MAL |
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); | |
8ca8c4f1 FC |
207 | |
208 | // Null check | |
209 | assertFalse("equals", checkpoint1.equals(null)); | |
210 | ||
211 | // Different types | |
212 | assertFalse("equals", checkpoint1.equals(new TmfTimestamp())); | |
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)); | |
5d837f9b FC |
223 | } |
224 | ||
d18dd09b ASL |
225 | // ------------------------------------------------------------------------ |
226 | // toString | |
227 | // ------------------------------------------------------------------------ | |
228 | ||
6e1886bc | 229 | @Test |
5d837f9b | 230 | public void testToString() { |
ea271da6 | 231 | final String expected1 = "TmfCheckpoint [fLocation=" + fCheckpoint1.getLocation() + |
032ecd45 | 232 | ", fTimestamp=" + fCheckpoint1.getTimestamp() + ", fCheckpointRank=" + fCheckpoint1.getCheckpointRank() + "]"; |
ea271da6 | 233 | final String expected2 = "TmfCheckpoint [fLocation=" + fCheckpoint2.getLocation() + |
032ecd45 | 234 | ", fTimestamp=" + fCheckpoint2.getTimestamp() + ", fCheckpointRank=" + fCheckpoint2.getCheckpointRank() + "]"; |
ea271da6 | 235 | final String expected3 = "TmfCheckpoint [fLocation=" + fCheckpoint3.getLocation() + |
032ecd45 | 236 | ", fTimestamp=" + fCheckpoint3.getTimestamp() + ", fCheckpointRank=" + fCheckpoint3.getCheckpointRank() + "]"; |
d18dd09b | 237 | |
5d837f9b FC |
238 | assertEquals("toString", expected1, fCheckpoint1.toString()); |
239 | assertEquals("toString", expected2, fCheckpoint2.toString()); | |
240 | assertEquals("toString", expected3, fCheckpoint3.toString()); | |
241 | } | |
d18dd09b | 242 | |
d18dd09b | 243 | } |