Skip to content

Commit 035a36b

Browse files
author
Dan Eidmark
committed
Fixed CargoTrackingControllerTest
1 parent 980d631 commit 035a36b

File tree

1 file changed

+61
-89
lines changed

1 file changed

+61
-89
lines changed
Lines changed: 61 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -1,97 +1,69 @@
11
package se.citerus.dddsample.interfaces.tracking;
22

3-
import junit.framework.TestCase;
4-
import org.easymock.EasyMock;
5-
import org.springframework.context.support.StaticApplicationContext;
6-
import org.springframework.mock.web.MockHttpServletRequest;
7-
import org.springframework.mock.web.MockHttpServletResponse;
8-
import org.springframework.mock.web.MockHttpSession;
9-
import org.springframework.mock.web.MockServletContext;
3+
import org.junit.Before;
4+
import org.junit.Test;
5+
import org.junit.runner.RunWith;
6+
import org.springframework.test.context.ContextConfiguration;
7+
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
8+
import org.springframework.test.context.web.WebAppConfiguration;
9+
import org.springframework.test.web.servlet.MockMvc;
10+
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
1011
import org.springframework.validation.BindingResult;
1112
import org.springframework.validation.Errors;
1213
import org.springframework.validation.FieldError;
13-
import org.springframework.web.servlet.ModelAndView;
14-
import se.citerus.dddsample.domain.model.cargo.CargoRepository;
15-
import se.citerus.dddsample.domain.model.handling.HandlingEventRepository;
14+
import org.springframework.web.servlet.view.InternalResourceViewResolver;
1615
import se.citerus.dddsample.infrastructure.persistence.inmemory.CargoRepositoryInMem;
1716
import se.citerus.dddsample.infrastructure.persistence.inmemory.HandlingEventRepositoryInMem;
1817

19-
/*public class CargoTrackingControllerTest extends TestCase {
20-
CargoTrackingController controller;
21-
MockHttpServletRequest request;
22-
MockHttpServletResponse response;
23-
MockHttpSession session;
24-
MockServletContext servletContext;
25-
CargoRepositoryInMem cargoRepository;
26-
HandlingEventRepository handlingEventRepository;
27-
28-
protected void setUp() throws Exception {
29-
servletContext = new MockServletContext("test");
30-
request = new MockHttpServletRequest(servletContext);
31-
response = new MockHttpServletResponse();
32-
session = new MockHttpSession(servletContext);
33-
request.setSession(session);
34-
35-
controller = new CargoTrackingController();
36-
StaticApplicationContext applicationContext = new StaticApplicationContext();
37-
controller.setApplicationContext(applicationContext);
38-
controller.setFormView("test-form");
39-
controller.setSuccessView("test-success");
40-
controller.setCommandName("test-command-name");
41-
cargoRepository = new CargoRepositoryInMem();
42-
cargoRepository.setHandlingEventRepository(new HandlingEventRepositoryInMem());
43-
cargoRepository.init();
44-
45-
handlingEventRepository = new HandlingEventRepositoryInMem();
46-
controller.setHandlingEventRepository(handlingEventRepository);
47-
}
48-
49-
public void testHandleGet() throws Exception {
50-
controller.setCargoRepository(new CargoRepositoryInMem());
51-
request.setMethod("GET");
52-
53-
ModelAndView mav = controller.handleRequest(request, response);
54-
55-
assertEquals("test-form", mav.getViewName());
56-
assertEquals(2, mav.getModel().size());
57-
assertTrue(mav.getModel().get("test-command-name") instanceof TrackCommand);
58-
}
59-
60-
public void testHandlePost() throws Exception {
61-
controller.setCargoRepository(cargoRepository);
62-
request.addParameter("trackingId", "ABC");
63-
request.setMethod("POST");
64-
65-
ModelAndView mav = controller.handleRequest(request, response);
66-
67-
assertEquals("test-form", mav.getViewName());
68-
// Errors, command are two standard map attributes, the third should be the cargo object
69-
assertEquals(3, mav.getModel().size());
70-
CargoTrackingViewAdapter cargo = (CargoTrackingViewAdapter) mav.getModel().get("cargo");
71-
assertEquals("ABC", cargo.getTrackingId());
72-
}
73-
74-
public void testUnknownCargo() throws Exception {
75-
CargoRepository cargoRepository = EasyMock.createNiceMock(CargoRepository.class);
76-
EasyMock.replay(cargoRepository);
77-
controller.setCargoRepository(cargoRepository);
78-
79-
request.setMethod("POST");
80-
request.setParameter("trackingId", "unknown-id");
81-
82-
ModelAndView mav = controller.handleRequest(request, response);
83-
84-
assertEquals("test-form", mav.getViewName());
85-
assertEquals(2, mav.getModel().size());
86-
87-
TrackCommand command = (TrackCommand) mav.getModel().get(controller.getCommandName());
88-
assertEquals("unknown-id", command.getTrackingId());
89-
90-
Errors errors = (Errors) mav.getModel().get(BindingResult.MODEL_KEY_PREFIX + controller.getCommandName());
91-
FieldError fe = errors.getFieldError("trackingId");
92-
assertEquals("cargo.unknown_id", fe.getCode());
93-
assertEquals(1, fe.getArguments().length);
94-
assertEquals(command.getTrackingId(), fe.getArguments()[0]);
95-
}
96-
97-
}*/
18+
import java.util.Map;
19+
20+
import static org.junit.Assert.assertEquals;
21+
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
22+
23+
24+
@RunWith(SpringJUnit4ClassRunner.class)
25+
@WebAppConfiguration
26+
@ContextConfiguration(classes = CargoTrackingControllerTest.TestConfiguration.class)
27+
public class CargoTrackingControllerTest {
28+
public static class TestConfiguration {
29+
30+
}
31+
32+
private MockMvc mockMvc;
33+
34+
@Before
35+
public void setup() throws Exception {
36+
CargoRepositoryInMem cargoRepository = new CargoRepositoryInMem();
37+
cargoRepository.setHandlingEventRepository(new HandlingEventRepositoryInMem());
38+
cargoRepository.init();
39+
40+
CargoTrackingController controller = new CargoTrackingController();
41+
controller.setCargoRepository(cargoRepository);
42+
controller.setHandlingEventRepository(new HandlingEventRepositoryInMem());
43+
44+
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
45+
resolver.setPrefix("/jsp/");
46+
resolver.setSuffix(".jsp");
47+
this.mockMvc = MockMvcBuilders.standaloneSetup(controller).setViewResolvers(resolver).build();
48+
}
49+
50+
@Test
51+
public void canGetCargo() throws Exception {
52+
String trackingId = "ABC";
53+
Map<String, Object> model = mockMvc.perform(post("/track").param("trackingId", trackingId)).andReturn().getModelAndView().getModel();
54+
CargoTrackingViewAdapter cargoTrackingViewAdapter = (CargoTrackingViewAdapter) model.get("cargo");
55+
assertEquals(trackingId, cargoTrackingViewAdapter.getTrackingId());
56+
}
57+
58+
@Test
59+
public void cannnotGetUnknownCargo() throws Exception {
60+
String trackingId = "UNKNOWN";
61+
Map<String, Object> model = mockMvc.perform(post("/track").param("trackingId", trackingId)).andReturn().getModelAndView().getModel();
62+
Errors errors = (Errors) model.get(BindingResult.MODEL_KEY_PREFIX + "trackCommand");
63+
FieldError fe = errors.getFieldError("trackingId");
64+
assertEquals("cargo.unknown_id", fe.getCode());
65+
assertEquals(1, fe.getArguments().length);
66+
assertEquals(trackingId, fe.getArguments()[0]);
67+
}
68+
69+
}

0 commit comments

Comments
 (0)