Procházet zdrojové kódy

Use CarrierId instead of String as CarrierMovement identifier.

Renamed to CarrierMovementRepository.
peter_backlund před 18 roky
rodič
revize
bdb9044e7e

+ 10
- 0
dddsample/src/main/java/se/citerus/dddsample/repository/CarrierMovementRepository.java Zobrazit soubor

@@ -0,0 +1,10 @@
1
+package se.citerus.dddsample.repository;
2
+
3
+import se.citerus.dddsample.domain.CarrierId;
4
+import se.citerus.dddsample.domain.CarrierMovement;
5
+
6
+public interface CarrierMovementRepository {
7
+
8
+  CarrierMovement find(CarrierId carrierId);
9
+
10
+}

dddsample/src/main/java/se/citerus/dddsample/repository/CarrierRepositoryInMem.java → dddsample/src/main/java/se/citerus/dddsample/repository/CarrierMovementRepositoryInMem.java Zobrazit soubor

@@ -5,12 +5,13 @@ import se.citerus.dddsample.domain.CarrierMovement;
5 5
 import se.citerus.dddsample.domain.Location;
6 6
 
7 7
 import java.util.HashMap;
8
+import java.util.Map;
8 9
 
9
-public class CarrierRepositoryInMem implements CarrierRepository {
10
-  private HashMap<String, CarrierMovement> carriers;
10
+public class CarrierMovementRepositoryInMem implements CarrierMovementRepository {
11
+  private Map<CarrierId, CarrierMovement> carriers;
11 12
 
12
-  public CarrierRepositoryInMem() {
13
-    carriers = new HashMap<String, CarrierMovement>();
13
+  public CarrierMovementRepositoryInMem() {
14
+    carriers = new HashMap<CarrierId, CarrierMovement>();
14 15
     setup();
15 16
   }
16 17
 
@@ -26,17 +27,15 @@ public class CarrierRepositoryInMem implements CarrierRepository {
26 27
     final CarrierMovement stockholmToHelsinki = new CarrierMovement(
27 28
             new CarrierId("CAR_005"), new Location("SESTO"), new Location("FIHEL"));
28 29
     
29
-    carriers.put("SESTO_DEHAM", stockholmToHamburg);
30
-    carriers.put("DEHAM_CNHKG", hamburgToHongKong);
31
-    carriers.put("AUMEL_JPTOK", melbourneToTokyo);
32
-    carriers.put("JPTOK_USLA", tokyoToLosAngeles);
33
-    carriers.put("SESTO_FIHEL", stockholmToHelsinki);
30
+    carriers.put(new CarrierId("SESTO_DEHAM"), stockholmToHamburg);
31
+    carriers.put(new CarrierId("DEHAM_CNHKG"), hamburgToHongKong);
32
+    carriers.put(new CarrierId("AUMEL_JPTOK"), melbourneToTokyo);
33
+    carriers.put(new CarrierId("JPTOK_USLA"), tokyoToLosAngeles);
34
+    carriers.put(new CarrierId("SESTO_FIHEL"), stockholmToHelsinki);
34 35
   }
35 36
 
36
-  public CarrierMovement find(String carrierId) {
37
+  public CarrierMovement find(CarrierId carrierId) {
37 38
     return carriers.get(carrierId);
38 39
   }
39
-  
40
-  
41 40
 
42 41
 }

+ 0
- 9
dddsample/src/main/java/se/citerus/dddsample/repository/CarrierRepository.java Zobrazit soubor

@@ -1,9 +0,0 @@
1
-package se.citerus.dddsample.repository;
2
-
3
-import se.citerus.dddsample.domain.CarrierMovement;
4
-
5
-public interface CarrierRepository {
6
-
7
-  CarrierMovement find(String carrierId);
8
-
9
-}

+ 7
- 7
dddsample/src/main/java/se/citerus/dddsample/repository/HandlingEventRepositoryInMem.java Zobrazit soubor

@@ -15,7 +15,7 @@ import java.util.Set;
15 15
 
16 16
 public class HandlingEventRepositoryInMem implements HandlingEventRepository{
17 17
   private HashMap<String, HandlingEvent> eventDB;
18
-  private CarrierRepository carrierRepository;
18
+  private CarrierMovementRepository carrierMovementRepository;
19 19
   
20 20
   private final Log logger = LogFactory.getLog(getClass());
21 21
 
@@ -36,11 +36,11 @@ public class HandlingEventRepositoryInMem implements HandlingEventRepository{
36 36
     final Cargo cargoXYZ = new Cargo(new TrackingId("XYZ"), new Location("SESTO"), new Location("AUMEL"));
37 37
     registerEvent(cargoXYZ, "2007-11-30", HandlingEvent.Type.RECEIVE, null);
38 38
 
39
-    final CarrierMovement stockholmToHamburg = carrierRepository.find("SESTO_DEHAM");
39
+    final CarrierMovement stockholmToHamburg = carrierMovementRepository.find(new CarrierId("SESTO_DEHAM"));
40 40
     registerEvent(cargoXYZ, "2007-12-01", HandlingEvent.Type.LOAD, stockholmToHamburg);
41 41
     registerEvent(cargoXYZ, "2007-12-02", HandlingEvent.Type.UNLOAD, stockholmToHamburg);
42 42
     
43
-    final CarrierMovement hamburgToHongKong = carrierRepository.find("DEHAM_CNHKG");
43
+    final CarrierMovement hamburgToHongKong = carrierMovementRepository.find(new CarrierId("DEHAM_CNHKG"));
44 44
     registerEvent(cargoXYZ, "2007-12-03", HandlingEvent.Type.LOAD, hamburgToHongKong);
45 45
     registerEvent(cargoXYZ, "2007-12-05", HandlingEvent.Type.UNLOAD, hamburgToHongKong);
46 46
     
@@ -48,11 +48,11 @@ public class HandlingEventRepositoryInMem implements HandlingEventRepository{
48 48
     final Cargo cargoZYX = new Cargo(new TrackingId("ZYX"), new Location("AUMEL"), new Location("SESTO"));
49 49
     registerEvent(cargoZYX, "2007-12-09", HandlingEvent.Type.RECEIVE, null);
50 50
     
51
-    final CarrierMovement melbourneToTokyo = carrierRepository.find("AUMEL_JPTOK");
51
+    final CarrierMovement melbourneToTokyo = carrierMovementRepository.find(new CarrierId("AUMEL_JPTOK"));
52 52
     registerEvent(cargoZYX, "2007-12-10", HandlingEvent.Type.LOAD, melbourneToTokyo);
53 53
     registerEvent(cargoZYX, "2007-12-12", HandlingEvent.Type.UNLOAD, melbourneToTokyo);
54 54
     
55
-    final CarrierMovement tokyoToLosAngeles = carrierRepository.find("JPTOK_USLA");
55
+    final CarrierMovement tokyoToLosAngeles = carrierMovementRepository.find(new CarrierId("JPTOK_USLA"));
56 56
     registerEvent(cargoZYX, "2007-12-13", HandlingEvent.Type.LOAD, tokyoToLosAngeles);
57 57
  
58 58
     //CargoABC
@@ -133,7 +133,7 @@ public class HandlingEventRepositoryInMem implements HandlingEventRepository{
133 133
     return events;
134 134
   }
135 135
 
136
-  public void setCarrierRepository(CarrierRepository carrierRepository) {
137
-    this.carrierRepository = carrierRepository;
136
+  public void setCarrierRepository(CarrierMovementRepository carrierMovementRepository) {
137
+    this.carrierMovementRepository = carrierMovementRepository;
138 138
   }
139 139
 }

+ 13
- 18
dddsample/src/main/java/se/citerus/dddsample/service/HandlingEventServiceImpl.java Zobrazit soubor

@@ -1,27 +1,24 @@
1 1
 package se.citerus.dddsample.service;
2 2
 
3
-import java.util.Date;
4
-import java.util.HashSet;
5
-import java.util.Set;
6
-
7 3
 import org.apache.commons.lang.Validate;
8
-
9
-import se.citerus.dddsample.domain.Cargo;
10
-import se.citerus.dddsample.domain.CarrierMovement;
11
-import se.citerus.dddsample.domain.HandlingEvent;
12
-import se.citerus.dddsample.domain.TrackingId;
4
+import se.citerus.dddsample.domain.*;
13 5
 import se.citerus.dddsample.repository.CargoRepository;
14
-import se.citerus.dddsample.repository.CarrierRepository;
6
+import se.citerus.dddsample.repository.CarrierMovementRepository;
15 7
 import se.citerus.dddsample.repository.HandlingEventRepository;
16 8
 
9
+import java.util.Date;
10
+import java.util.HashSet;
11
+import java.util.Set;
12
+
17 13
 public class HandlingEventServiceImpl implements HandlingEventService {
18 14
   private CargoRepository cargoRepository;
19
-  private CarrierRepository carrierRepository;
15
+  private CarrierMovementRepository carrierMovementRepository;
20 16
   private HandlingEventRepository handlingEventRepository;
21 17
 
22 18
 
23 19
   public void register(Date date, String type, String carrierId, String[] trackingIds) {
24
-    HandlingEvent event = new HandlingEvent(date, HandlingEvent.parseType(type), findCarrier(carrierId));
20
+    CarrierMovement cm = findCarrier(new CarrierId(carrierId));
21
+    HandlingEvent event = new HandlingEvent(date, HandlingEvent.parseType(type), cm);
25 22
     Set<Cargo> cargos = findCargos(trackingIds);
26 23
     event.register(cargos);
27 24
     
@@ -47,11 +44,11 @@ public class HandlingEventServiceImpl implements HandlingEventService {
47 44
     return cargo;
48 45
   }
49 46
 
50
-  private CarrierMovement findCarrier(String carrierId) {
47
+  private CarrierMovement findCarrier(CarrierId carrierId) {
51 48
     if (carrierId == null){
52 49
       return null;
53 50
     }
54
-    CarrierMovement carrier = carrierRepository.find(carrierId);
51
+    CarrierMovement carrier = carrierMovementRepository.find(carrierId);
55 52
     Validate.notNull(carrier, "Carrier is not found: Carrier ID=" + carrierId);
56 53
     
57 54
     return carrier;
@@ -61,14 +58,12 @@ public class HandlingEventServiceImpl implements HandlingEventService {
61 58
     this.cargoRepository = cargoRepository;
62 59
   }
63 60
 
64
-  public void setCarrierRepository(CarrierRepository carrierRepository) {
65
-    this.carrierRepository = carrierRepository;
61
+  public void setCarrierRepository(CarrierMovementRepository carrierMovementRepository) {
62
+    this.carrierMovementRepository = carrierMovementRepository;
66 63
   }
67 64
 
68 65
   public void setHandlingEventRepository(HandlingEventRepository handlingEventRepository) {
69 66
     this.handlingEventRepository = handlingEventRepository;
70 67
   }
71 68
 
72
-
73
-
74 69
 }

+ 2
- 2
dddsample/src/main/resources/context-persistence.xml Zobrazit soubor

@@ -43,10 +43,10 @@
43 43
   </bean>
44 44
   
45 45
   <bean id="handlingEventRepository" class="se.citerus.dddsample.repository.HandlingEventRepositoryInMem" init-method="init">
46
-    <property name="carrierRepository" ref="carrierRepository"/>
46
+    <property name="carrierRepository" ref="carrierMovementRepository"/>
47 47
   </bean>
48 48
   
49
-  <bean id="carrierRepository" class="se.citerus.dddsample.repository.CarrierRepositoryInMem" />
49
+  <bean id="carrierMovementRepository" class="se.citerus.dddsample.repository.CarrierMovementRepositoryInMem" />
50 50
   
51 51
   <!--bean id="cargoRepository" class="se.citerus.dddsample.repository.CargoRepositoryHibernate">
52 52
     <property name="sessionFactory" ref="sessionFactory"/>

+ 11
- 11
dddsample/src/test/java/se/citerus/dddsample/service/HandlingEventServiceTest.java Zobrazit soubor

@@ -4,7 +4,7 @@ import junit.framework.TestCase;
4 4
 import static org.easymock.EasyMock.*;
5 5
 import se.citerus.dddsample.domain.*;
6 6
 import se.citerus.dddsample.repository.CargoRepository;
7
-import se.citerus.dddsample.repository.CarrierRepository;
7
+import se.citerus.dddsample.repository.CarrierMovementRepository;
8 8
 import se.citerus.dddsample.repository.HandlingEventRepository;
9 9
 
10 10
 import java.util.Calendar;
@@ -15,7 +15,7 @@ import java.util.Set;
15 15
 public class HandlingEventServiceTest extends TestCase {
16 16
   private HandlingEventServiceImpl service;
17 17
   private CargoRepository cargoRepository;
18
-  private CarrierRepository carrierRepository;
18
+  private CarrierMovementRepository carrierMovementRepository;
19 19
   private HandlingEventRepository handlingEventRepository;
20 20
   
21 21
   private final Cargo cargoABC = new Cargo(new TrackingId("ABC"), new Location("ABCFROM"), new Location("ABCTO"));
@@ -26,11 +26,11 @@ public class HandlingEventServiceTest extends TestCase {
26 26
   protected void setUp() throws Exception{
27 27
     service = new HandlingEventServiceImpl();
28 28
     cargoRepository = createMock(CargoRepository.class);
29
-    carrierRepository = createMock(CarrierRepository.class);
29
+    carrierMovementRepository = createMock(CarrierMovementRepository.class);
30 30
     handlingEventRepository = createMock(HandlingEventRepository.class);
31 31
     
32 32
     service.setCargoRepository(cargoRepository);
33
-    service.setCarrierRepository(carrierRepository);
33
+    service.setCarrierRepository(carrierMovementRepository);
34 34
     service.setHandlingEventRepository(handlingEventRepository);
35 35
   }
36 36
 
@@ -42,7 +42,7 @@ public class HandlingEventServiceTest extends TestCase {
42 42
     
43 43
     expect(cargoRepository.find(new TrackingId("ABC"))).andReturn(cargoABC);
44 44
     expect(cargoRepository.find(new TrackingId("XYZ"))).andReturn(cargoXYZ);
45
-    expect(carrierRepository.find("AAA_BBB")).andReturn(cmAAA_BBB);
45
+    expect(carrierMovementRepository.find(new CarrierId("AAA_BBB"))).andReturn(cmAAA_BBB);
46 46
     
47 47
     HandlingEvent event = new HandlingEvent(date, HandlingEvent.parseType(type), cmAAA_BBB);
48 48
     Set<Cargo> cargos = new HashSet<Cargo>();
@@ -52,11 +52,11 @@ public class HandlingEventServiceTest extends TestCase {
52 52
     
53 53
     handlingEventRepository.save(event);
54 54
     
55
-    replay(cargoRepository, carrierRepository, handlingEventRepository);
55
+    replay(cargoRepository, carrierMovementRepository, handlingEventRepository);
56 56
     
57 57
     service.register(date, type, carrierId, trackIds);
58 58
     
59
-    verify(cargoRepository, carrierRepository, handlingEventRepository);
59
+    verify(cargoRepository, carrierMovementRepository, handlingEventRepository);
60 60
   }
61 61
   
62 62
   public void testRegisterEventInvalidCarrier() throws Exception {
@@ -66,9 +66,9 @@ public class HandlingEventServiceTest extends TestCase {
66 66
     
67 67
     expect(cargoRepository.find(new TrackingId("ABC"))).andReturn(cargoABC);
68 68
     expect(cargoRepository.find(new TrackingId("XYZ"))).andReturn(cargoXYZ);
69
-    expect(carrierRepository.find("AAA_BBB")).andReturn(null);
69
+    expect(carrierMovementRepository.find(new CarrierId("AAA_BBB"))).andReturn(null);
70 70
     
71
-    replay(cargoRepository, carrierRepository, handlingEventRepository);
71
+    replay(cargoRepository, carrierMovementRepository, handlingEventRepository);
72 72
     
73 73
     try {
74 74
       service.register(date, type, "AAA_BBB", trackIds);
@@ -85,9 +85,9 @@ public class HandlingEventServiceTest extends TestCase {
85 85
     
86 86
     expect(cargoRepository.find(new TrackingId("ABC"))).andReturn(cargoABC);
87 87
     expect(cargoRepository.find(new TrackingId("XYZ"))).andReturn(null);
88
-    expect(carrierRepository.find("AAA_BBB")).andReturn(cmAAA_BBB);
88
+    expect(carrierMovementRepository.find(new CarrierId("AAA_BBB"))).andReturn(cmAAA_BBB);
89 89
     
90
-    replay(cargoRepository, carrierRepository, handlingEventRepository);
90
+    replay(cargoRepository, carrierMovementRepository, handlingEventRepository);
91 91
     
92 92
     try {
93 93
       service.register(date, type, "AAA_BBB", trackIds);

+ 2
- 2
dddsample/src/test/resources/mock-context-persistence.xml Zobrazit soubor

@@ -13,8 +13,8 @@
13 13
   </bean>
14 14
   
15 15
   <bean id="handlingEventRepository" class="se.citerus.dddsample.repository.HandlingEventRepositoryInMem" init-method="init">
16
-    <property name="carrierRepository" ref="carrierRepository"/>
16
+    <property name="carrierRepository" ref="carrierMovementRepository"/>
17 17
   </bean>
18 18
   
19
-  <bean id="carrierRepository" class="se.citerus.dddsample.repository.CarrierRepositoryInMem" />
19
+  <bean id="carrierMovementRepository" class="se.citerus.dddsample.repository.CarrierMovementRepositoryInMem" />
20 20
 </beans>