|
|
@@ -1,13 +1,14 @@
|
|
1
|
1
|
package se.citerus.dddsample.web;
|
|
2
|
2
|
|
|
3
|
3
|
import junit.framework.TestCase;
|
|
4
|
|
-
|
|
5
|
4
|
import org.springframework.mock.web.MockHttpServletRequest;
|
|
6
|
5
|
import org.springframework.mock.web.MockHttpServletResponse;
|
|
7
|
6
|
import org.springframework.mock.web.MockHttpSession;
|
|
8
|
7
|
import org.springframework.mock.web.MockServletContext;
|
|
|
8
|
+import org.springframework.validation.BindingResult;
|
|
|
9
|
+import org.springframework.validation.Errors;
|
|
|
10
|
+import org.springframework.validation.FieldError;
|
|
9
|
11
|
import org.springframework.web.servlet.ModelAndView;
|
|
10
|
|
-
|
|
11
|
12
|
import se.citerus.dddsample.domain.Cargo;
|
|
12
|
13
|
import se.citerus.dddsample.domain.Location;
|
|
13
|
14
|
import se.citerus.dddsample.domain.TrackingId;
|
|
|
@@ -31,9 +32,7 @@ public class CargoTrackingControllerTest extends TestCase {
|
|
31
|
32
|
controller = new CargoTrackingController();
|
|
32
|
33
|
controller.setFormView("test-form");
|
|
33
|
34
|
controller.setSuccessView("test-success");
|
|
34
|
|
- controller.setUnknownCargoView("test-unkownCargo");
|
|
35
|
35
|
controller.setCommandName("test-command-name");
|
|
36
|
|
- controller.setCargoService(getCargoServiceMock());
|
|
37
|
36
|
}
|
|
38
|
37
|
|
|
39
|
38
|
private CargoService getCargoServiceMock() {
|
|
|
@@ -57,6 +56,7 @@ public class CargoTrackingControllerTest extends TestCase {
|
|
57
|
56
|
}
|
|
58
|
57
|
|
|
59
|
58
|
public void testHandleGet() throws Exception {
|
|
|
59
|
+ controller.setCargoService(getCargoServiceMock());
|
|
60
|
60
|
request.setMethod("GET");
|
|
61
|
61
|
|
|
62
|
62
|
ModelAndView mav = controller.handleRequest(request, response);
|
|
|
@@ -67,11 +67,13 @@ public class CargoTrackingControllerTest extends TestCase {
|
|
67
|
67
|
}
|
|
68
|
68
|
|
|
69
|
69
|
public void testHandlePost() throws Exception {
|
|
|
70
|
+ controller.setCargoService(getCargoServiceMock());
|
|
70
|
71
|
request.setMethod("POST");
|
|
71
|
72
|
|
|
72
|
73
|
ModelAndView mav = controller.handleRequest(request, response);
|
|
73
|
74
|
|
|
74
|
|
- assertEquals("test-success", mav.getViewName());
|
|
|
75
|
+ assertEquals("test-form", mav.getViewName());
|
|
|
76
|
+ // Errors, command are two standard map attributes, the third should be the cargo object
|
|
75
|
77
|
assertEquals(3, mav.getModel().size());
|
|
76
|
78
|
Cargo cargo = (Cargo) mav.getModel().get("cargo");
|
|
77
|
79
|
assertEquals("AAA", cargo.getCurrentLocation().unlocode());
|
|
|
@@ -79,28 +81,22 @@ public class CargoTrackingControllerTest extends TestCase {
|
|
79
|
81
|
|
|
80
|
82
|
public void testUnknownCargo() throws Exception {
|
|
81
|
83
|
controller.setCargoService(getCargoServiceNullMock());
|
|
82
|
|
- controller.setCommandClass(TrackCommandMock.class);
|
|
83
|
84
|
request.setMethod("POST");
|
|
84
|
|
-
|
|
|
85
|
+ request.setParameter("trackingId", "unknown-id");
|
|
|
86
|
+
|
|
85
|
87
|
ModelAndView mav = controller.handleRequest(request, response);
|
|
86
|
88
|
|
|
87
|
|
- assertEquals("test-unkownCargo", mav.getViewName());
|
|
88
|
|
- assertEquals(1, mav.getModel().size());
|
|
89
|
|
- String trackId = (String) mav.getModel().get("trackingId");
|
|
90
|
|
- assertEquals("MOCK", trackId);
|
|
91
|
|
- }
|
|
92
|
|
-
|
|
93
|
|
-
|
|
94
|
|
-
|
|
95
|
|
-
|
|
96
|
|
- /**
|
|
97
|
|
- * Mock track command.
|
|
98
|
|
- *
|
|
99
|
|
- * Sets a default track id when constructed.
|
|
100
|
|
- */
|
|
101
|
|
- private static class TrackCommandMock extends TrackCommand {
|
|
102
|
|
- public TrackCommandMock() {
|
|
103
|
|
- setTrackingId("MOCK");
|
|
104
|
|
- }
|
|
|
89
|
+ assertEquals("test-form", mav.getViewName());
|
|
|
90
|
+ assertEquals(2, mav.getModel().size());
|
|
|
91
|
+
|
|
|
92
|
+ TrackCommand command = (TrackCommand) mav.getModel().get(controller.getCommandName());
|
|
|
93
|
+ assertEquals("unknown-id", command.getTrackingId());
|
|
|
94
|
+
|
|
|
95
|
+ Errors errors = (Errors) mav.getModel().get(BindingResult.MODEL_KEY_PREFIX + controller.getCommandName());
|
|
|
96
|
+ FieldError fe = errors.getFieldError("trackingId");
|
|
|
97
|
+ assertEquals("cargo.unknown_id", fe.getCode());
|
|
|
98
|
+ assertEquals(1, fe.getArguments().length);
|
|
|
99
|
+ assertEquals(command.getTrackingId(), fe.getArguments()[0]);
|
|
105
|
100
|
}
|
|
|
101
|
+
|
|
106
|
102
|
}
|