package org.appfuse.webapp.controller; import org.junit.Before; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mock.web.MockHttpSession; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MvcResult; import org.springframework.test.web.servlet.ResultActions; import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.subethamail.wiser.Wiser; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; public class PasswordHintControllerTest extends BaseControllerTestCase { @Autowired private PasswordHintController controller; private MockMvc mockMvc; @Before public void setUp() { mockMvc = MockMvcBuilders.standaloneSetup(controller).build(); } @Test public void testExecute() throws Exception { // start SMTP Server Wiser wiser = startWiser(getSmtpPort()); ResultActions actions = mockMvc.perform(get("/passwordHint.html").param("username", "user")) .andExpect(status().is3xxRedirection()); MvcResult result = actions.andReturn(); MockHttpSession session = (MockHttpSession) result.getRequest().getSession(); // verify that success messages are in the session assertNotNull(session.getAttribute(BaseFormController.MESSAGES_KEY)); // verify an account information e-mail was sent wiser.stop(); assertTrue(wiser.getMessages().size() == 1); } }