//Dstl (c) Crown Copyright 2017 package uk.gov.dstl.baleen.testing.servlets; import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.mockito.Mockito.verify; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; /** * Test for {@link ServletCaller}. * * * */ @RunWith(MockitoJUnitRunner.Silent.class) public class ServletCallerTest { @Mock HttpServlet servlet; @Test public void testAddParameter() { ServletCaller caller = new ServletCaller(); caller.addParameter("one", "one"); caller.addParameter("ab", "a", "b"); HttpServletRequest request = caller.getRequest(); assertNull(request.getParameter("missing")); assertNull(request.getParameterValues("missing")); String[] oneArray = new String[] { "one" }; String[] abArray = new String[] { "a", "b" }; assertEquals("one", request.getParameter("one")); assertArrayEquals(new String[] { "one" }, request.getParameterValues("one")); assertEquals("a", request.getParameter("ab")); assertArrayEquals(abArray, request.getParameterValues("ab")); Map<String, String[]> map = new HashMap<>(); map.put("one", oneArray); map.put("ab", abArray); assertEquals(map.keySet(), request.getParameterMap().keySet()); assertArrayEquals(oneArray, request.getParameterMap().get("one")); assertArrayEquals(abArray, request.getParameterMap().get("ab")); } @Test public void testDoGet() throws Exception { ServletCaller caller = new ServletCaller(); HttpServletResponse response = caller.doGet(servlet); assertNotNull(response); verify(servlet).service(caller.getRequest(), caller.getResponse()); } }