Przeglądaj źródła

Minor scenario test improvments

peter_backlund 16 lat temu
rodzic
commit
8c5ab18c12

+ 5
- 5
dddsample/tracking/core/src/main/java/se/citerus/dddsample/tracking/core/domain/model/voyage/SampleVoyages.java Wyświetl plik

@@ -1,14 +1,14 @@
1 1
 package se.citerus.dddsample.tracking.core.domain.model.voyage;
2 2
 
3
-import static se.citerus.dddsample.tracking.core.application.util.DateTestUtil.toDate;
4
-import static se.citerus.dddsample.tracking.core.domain.model.location.SampleLocations.*;
5
-
6 3
 import java.lang.reflect.Field;
7 4
 import java.util.ArrayList;
8 5
 import java.util.HashMap;
9 6
 import java.util.List;
10 7
 import java.util.Map;
11 8
 
9
+import static se.citerus.dddsample.tracking.core.application.util.DateTestUtil.toDate;
10
+import static se.citerus.dddsample.tracking.core.domain.model.location.SampleLocations.*;
11
+
12 12
 /**
13 13
  * Sample carrier movements, for test purposes.
14 14
  */
@@ -42,11 +42,11 @@ public class SampleVoyages {
42 42
 
43 43
   public final static Voyage continental3 = new Voyage.Builder(new VoyageNumber("CNT3"), SEATTLE).
44 44
     addMovement(CHICAGO, toDate("2009-03-06"), toDate("2009-03-08")).
45
-    addMovement(NEWYORK, toDate("2009-03-10"), toDate("2009-03-14")).
45
+    addMovement(NEWYORK, toDate("2009-03-10"), toDate("2009-03-13")).
46 46
     build();
47 47
 
48 48
   public final static Voyage atlantic1 = new Voyage.Builder(new VoyageNumber("ATC1"), NEWYORK).
49
-      addMovement(ROTTERDAM, toDate("2009-03-15"), toDate("2009-03-18")).
49
+      addMovement(ROTTERDAM, toDate("2009-03-13"), toDate("2009-03-18")).
50 50
       addMovement(HAMBURG, toDate("2009-03-19"), toDate("2009-03-20")).
51 51
       addMovement(HELSINKI, toDate("2009-03-21"), toDate("2009-03-22")).
52 52
       addMovement(NEWYORK, toDate("2009-03-24"), toDate("2009-03-30")).

+ 13
- 9
dddsample/tracking/core/src/test/java/se/citerus/dddsample/tracking/core/domain/scenario/CargoLifecycle.java Wyświetl plik

@@ -25,6 +25,9 @@ public class CargoLifecycle {
25 25
   public void cargoIsProperlyDelivered() throws Exception {
26 26
     Cargo cargo = setupCargoFromHongkongToStockholm();
27 27
 
28
+    // Hamcrest matchers:
29
+    // assertEquals(1 + 1, 2) <=> assertThat(1 + 1, is(2)) <=> assertThat(1 + 1, equalTo(2))
30
+
28 31
     // Initial state, before routing
29 32
     assertThat(cargo.transportStatus(), is(NOT_RECEIVED));
30 33
     assertThat(cargo.routingStatus(), is(NOT_ROUTED));
@@ -43,7 +46,11 @@ public class CargoLifecycle {
43 46
     // Routed
44 47
     assertThat(cargo.transportStatus(), is(NOT_RECEIVED));
45 48
     assertThat(cargo.routingStatus(), is(ROUTED));
49
+
50
+    // Static factory + builder:
51
+    // [HandlingActivity.]receiveIn(HONGKONG) <=> new HandlingActivity(RECEIVE, HONGKONG)
46 52
     assertThat(cargo.nextExpectedActivity(), is(receiveIn(HONGKONG)));
53
+
47 54
     assertNotNull(cargo.estimatedTimeOfArrival());
48 55
     assertThat(cargo.customsClearancePoint(), is(STOCKHOLM));
49 56
 
@@ -110,14 +117,13 @@ public class CargoLifecycle {
110 117
     assertThat(cargo.nextExpectedActivity(), is(claimIn(STOCKHOLM)));
111 118
 
112 119
     cargo.handled(claimIn(STOCKHOLM));
113
-    
120
+
121
+    assertThat(cargo.transportStatus(), is(CLAIMED));
114 122
     assertNull(cargo.nextExpectedActivity());
115 123
   }
116 124
 
117
-  // TODO misdirected cargo, loaded onto wrong voyage
118
-                                                      
119 125
   @Test
120
-  public void cargoIsMisdirectedAndRerouted() throws Exception {
126
+  public void cargoIsUnloadedInWrongLocation() throws Exception {
121 127
 
122 128
     Cargo cargo = setupCargoFromHongkongToStockholm();
123 129
 
@@ -269,7 +275,6 @@ public class CargoLifecycle {
269 275
     // Etc
270 276
   }
271 277
 
272
-
273 278
   @Test
274 279
   public void customerRequestsChangeOfDestination() throws Exception {
275 280
     Cargo cargo = setupCargoFromHongkongToStockholm();
@@ -320,9 +325,7 @@ public class CargoLifecycle {
320 325
     assertThat(cargo.nextExpectedActivity(), is(loadOnto(continental1).in(LONGBEACH)));
321 326
 
322 327
     // Customer wants cargo to go to Rotterdam instead of Stockholm
323
-    RouteSpecification toRotterdam = cargo.routeSpecification().
324
-      withDestination(ROTTERDAM);
325
-
328
+    RouteSpecification toRotterdam = cargo.routeSpecification().withDestination(ROTTERDAM);
326 329
     cargo.specifyNewRoute(toRotterdam);
327 330
 
328 331
     // Misrouted
@@ -359,6 +362,8 @@ public class CargoLifecycle {
359 362
     assertThat(cargo.nextExpectedActivity(), is(claimIn(ROTTERDAM)));
360 363
   }
361 364
 
365
+  // --- Support ---
366
+
362 367
   private Cargo setupCargoFromHongkongToStockholm() {
363 368
     TrackingId trackingId = trackingIdFactory.nextTrackingId();
364 369
     Date arrivalDeadline = toDate("2009-04-10");
@@ -367,7 +372,6 @@ public class CargoLifecycle {
367 372
     return new Cargo(trackingId, routeSpecification);
368 373
   }
369 374
 
370
-  // Stubbed out customer selection process
371 375
   private Itinerary selectAppropriateRoute(List<Itinerary> itineraries) {
372 376
     return itineraries.get(0);
373 377
   }

+ 8
- 9
dddsample/tracking/core/src/test/java/se/citerus/dddsample/tracking/core/domain/scenario/VoyageRescheduledScenarioTest.java Wyświetl plik

@@ -1,21 +1,22 @@
1 1
 package se.citerus.dddsample.tracking.core.domain.scenario;
2 2
 
3
-import static org.hamcrest.core.Is.is;
4
-import static org.junit.Assert.assertThat;
5 3
 import org.junit.Before;
6 4
 import org.junit.Test;
7
-import static se.citerus.dddsample.tracking.core.application.util.DateTestUtil.toDate;
8 5
 import se.citerus.dddsample.tracking.core.domain.model.cargo.*;
9
-import static se.citerus.dddsample.tracking.core.domain.model.cargo.RoutingStatus.MISROUTED;
10
-import static se.citerus.dddsample.tracking.core.domain.model.cargo.RoutingStatus.ROUTED;
11
-import static se.citerus.dddsample.tracking.core.domain.model.location.SampleLocations.*;
12
-import static se.citerus.dddsample.tracking.core.domain.model.voyage.SampleVoyages.*;
13 6
 import se.citerus.dddsample.tracking.core.domain.model.voyage.Voyage;
14 7
 import se.citerus.dddsample.tracking.core.domain.model.voyage.VoyageNumber;
15 8
 import se.citerus.dddsample.tracking.core.infrastructure.persistence.inmemory.TrackingIdFactoryInMem;
16 9
 
17 10
 import java.util.Date;
18 11
 
12
+import static org.hamcrest.core.Is.is;
13
+import static org.junit.Assert.assertThat;
14
+import static se.citerus.dddsample.tracking.core.application.util.DateTestUtil.toDate;
15
+import static se.citerus.dddsample.tracking.core.domain.model.cargo.RoutingStatus.MISROUTED;
16
+import static se.citerus.dddsample.tracking.core.domain.model.cargo.RoutingStatus.ROUTED;
17
+import static se.citerus.dddsample.tracking.core.domain.model.location.SampleLocations.*;
18
+import static se.citerus.dddsample.tracking.core.domain.model.voyage.SampleVoyages.*;
19
+
19 20
 public class VoyageRescheduledScenarioTest {
20 21
 
21 22
   Cargo cargo;
@@ -81,8 +82,6 @@ public class VoyageRescheduledScenarioTest {
81 82
     // keep the latter part of the old itinerary, and the new itinerary
82 83
     // is therefore truncated after unload in NYC.
83 84
 
84
-    // TODO delay the arrival instead of advancing the departure
85
-
86 85
     Date newDepartureTime = toDate("2008-10-23", "18:30");
87 86
     voyage2.departureRescheduled(NEWYORK, newDepartureTime);
88 87