package egovframework.rte.ptl.mvc.bind; import static org.junit.Assert.assertEquals; import java.io.IOException; import javax.servlet.ServletException; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.BeansException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; import org.springframework.mock.web.MockMultipartHttpServletRequest; import org.springframework.mock.web.MockServletConfig; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.GenericWebApplicationContext; import org.springframework.web.servlet.DispatcherServlet; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = "classpath*:META-INF/spring/bind/test_servlet.xml") public class CommandMapArgumentResolverTest { @Autowired private ApplicationContext ctx; private DispatcherServlet dispatcher; /** * org.springframework.web.servlet.mvc.annotation.ServletAnnotationControllerTests 를 참조했다. * @throws ServletException */ @Before public void setUp() throws ServletException{ this.dispatcher = new DispatcherServlet() { @Override protected WebApplicationContext createWebApplicationContext(WebApplicationContext parent) throws BeansException { GenericWebApplicationContext genericCtx = new GenericWebApplicationContext(); genericCtx.setParent(ctx); genericCtx.refresh(); return genericCtx; } }; dispatcher.init(new MockServletConfig()); } @Test public void testCommandMapWithHttpRequest() throws ServletException, IOException{ MockHttpServletRequest mockRequest = new MockHttpServletRequest(); MockHttpServletResponse mockResponse = new MockHttpServletResponse(); mockRequest.setMethod("POST"); mockRequest.setRequestURI("/test.do"); mockRequest.addParameter("USA", "washington"); mockRequest.addParameter("japan", "tokyo"); mockRequest.addParameter("korea", "seoul"); dispatcher.service(mockRequest, mockResponse); assertEquals("washington",mockRequest.getAttribute("USA")); assertEquals("tokyo",mockRequest.getAttribute("japan")); assertEquals("seoul",mockRequest.getAttribute("korea")); } @Test public void testCommandMapWithHttpMultiparRequest() throws ServletException, IOException{ MockMultipartHttpServletRequest mockRequest = new MockMultipartHttpServletRequest(); MockHttpServletResponse mockResponse = new MockHttpServletResponse(); mockRequest.setMethod("POST"); mockRequest.setRequestURI("/test.do"); mockRequest.addParameter("USA", "washington"); mockRequest.addParameter("japan", "tokyo"); mockRequest.addParameter("korea", "seoul"); dispatcher.service(mockRequest, mockResponse); assertEquals("washington",mockRequest.getAttribute("USA")); assertEquals("tokyo",mockRequest.getAttribute("japan")); assertEquals("seoul",mockRequest.getAttribute("korea")); } }