package com.qprogramming.tasq.signup; import com.qprogramming.tasq.account.Account; import com.qprogramming.tasq.account.AccountRepository; import com.qprogramming.tasq.account.AccountService; import com.qprogramming.tasq.signin.LocaleSettingAuthenticationSuccessHandler; import com.qprogramming.tasq.test.MockSecurityContext; import com.qprogramming.tasq.test.TestUtils; import org.junit.Assert; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.web.savedrequest.SavedRequest; import org.springframework.web.servlet.i18n.SessionLocaleResolver; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.IOException; import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.when; @RunWith(MockitoJUnitRunner.class) public class LocaleSettingTest { @Rule public ExpectedException thrown = ExpectedException.none(); @InjectMocks private LocaleSettingAuthenticationSuccessHandler localeSettter; @Mock private AccountRepository accRepoMock; @Mock private MockSecurityContext securityMock; @Mock private Authentication authMock; @Mock private HttpServletResponse responseMock; @Mock private HttpServletRequest requestMock; @Mock private SessionLocaleResolver localeResolver; @Mock private HttpSession sessionMock; @Mock private AccountService accountSrvMock; @Mock private SavedRequest savedRequestMock; private Account testAccount = TestUtils.createAccount(); @Before public void setUp() { when(securityMock.getAuthentication()).thenReturn(authMock); when(authMock.getPrincipal()).thenReturn(testAccount); SecurityContextHolder.setContext(securityMock); } @Test public void testLoggin() { try { when(requestMock.getSession(false)).thenReturn(sessionMock); when(sessionMock.getAttribute(anyString())).thenReturn(savedRequestMock); when(savedRequestMock.getRedirectUrl()).thenReturn("projects/show"); localeSettter.onAuthenticationSuccess(requestMock, responseMock, authMock); } catch (ServletException e) { e.printStackTrace(); Assert.fail(e.getMessage()); } catch (IOException e) { e.printStackTrace(); Assert.fail(e.getMessage()); } } }