package com.tddinaction.j2ee.web.controller.spring; import static org.junit.Assert.*; import org.junit.Before; import org.junit.Test; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; import org.springframework.web.servlet.ModelAndView; import com.tddinaction.j2ee.web.controller.authenticator.MockAuthenticator; public class TestLoginController { private static final String CORRECT_PASSWORD = "correctpassword"; private static final String VALID_USERNAME = "validuser"; private MockHttpServletRequest request; private MockHttpServletResponse response; private LoginController controller; @Before public void setUp() { request = new MockHttpServletRequest(); response = new MockHttpServletResponse(); controller = new LoginController(); MockAuthenticator auth = new MockAuthenticator(); auth.addUser(VALID_USERNAME, CORRECT_PASSWORD); controller.setAuthenticator(auth); } @Test public void wrongPasswordShouldRedirectToErrorPage() throws Exception { request.addParameter("j_username", "nosuchusername"); request.addParameter("j_password", "nosuchpassword"); ModelAndView v = controller.handleRequest(request, response); assertEquals("wrongpassword", v.getViewName()); } @Test public void validLoginForwardsToFrontPageAndStoresUsername() throws Exception { request.addParameter("j_username", VALID_USERNAME); request.addParameter("j_password", CORRECT_PASSWORD); ModelAndView v = controller.handleRequest(request, response); assertEquals("frontpage", v.getViewName()); } }