Skip to content

Commit 305db83

Browse files
author
Danil
committed
Stabilizes CarrierMovementTest#testSameValueAsEqualsHashCode
The default constructor of java.util.Date depends on the system clock. If the clock should happen to tick while the CarrierMovements in this test are initialized, two movements we expect to be the same will be off by a millisecond.
1 parent 700be64 commit 305db83

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

src/test/java/se/citerus/dddsample/domain/model/voyage/CarrierMovementTest.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,16 @@ public void testConstructor() {
2929

3030
@Test
3131
public void testSameValueAsEqualsHashCode() {
32-
CarrierMovement cm1 = new CarrierMovement(STOCKHOLM, HAMBURG, new Date(), new Date());
33-
CarrierMovement cm2 = new CarrierMovement(STOCKHOLM, HAMBURG, new Date(), new Date());
34-
CarrierMovement cm3 = new CarrierMovement(HAMBURG, STOCKHOLM, new Date(), new Date());
35-
CarrierMovement cm4 = new CarrierMovement(HAMBURG, STOCKHOLM, new Date(), new Date());
32+
long referenceTime = System.currentTimeMillis();
33+
34+
// One could, in theory, use the same Date(referenceTime) for all of these movements
35+
// However, in practice, carrier movements will be initialized by different processes
36+
// so we might have different Date that reference the same time, and we want to be
37+
// certain that sameValueAs does the right thing in that case.
38+
CarrierMovement cm1 = new CarrierMovement(STOCKHOLM, HAMBURG, new Date(referenceTime), new Date(referenceTime));
39+
CarrierMovement cm2 = new CarrierMovement(STOCKHOLM, HAMBURG, new Date(referenceTime), new Date(referenceTime));
40+
CarrierMovement cm3 = new CarrierMovement(HAMBURG, STOCKHOLM, new Date(referenceTime), new Date(referenceTime));
41+
CarrierMovement cm4 = new CarrierMovement(HAMBURG, STOCKHOLM, new Date(referenceTime), new Date(referenceTime));
3642

3743
assertThat(cm1.sameValueAs(cm2)).isTrue();
3844
assertThat(cm2.sameValueAs(cm3)).isFalse();

0 commit comments

Comments
 (0)