package com.bahadirakin.controllers; import com.bahadirakin.entities.User; import com.bahadirakin.exceptions.UserNotFoundException; import com.bahadirakin.services.IUserService; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.mockito.*; import org.mockito.internal.verification.Times; /** * Created by bhdrkn on 08/11/14. */ public class LoginControllerTest { @Mock private IUserService userService; @InjectMocks private LoginController loginController; @Before public void setup(){ MockitoAnnotations.initMocks(this); } @Test public void testAuhtentication() throws Exception { final User userStub = new User(); userStub.setUsername("bhdrkn"); userStub.setPassword("passowrd"); Mockito.when(userService.authenticate(userStub)).thenReturn(true); final String redirect = loginController.authenticate(userStub); Assert.assertEquals("homePage", redirect); Mockito.verify(userService, new Times(1)).authenticate(Mockito.any(User.class)); } @Test public void testAuhtenticationForUserNotFound() throws Exception { final User userStub = new User(); userStub.setUsername("bhdrkn"); userStub.setPassword("passowrd"); Mockito.when(userService.authenticate(userStub)).thenThrow(UserNotFoundException.class); final String redirect = loginController.authenticate(userStub); Assert.assertEquals(redirect, "errorPage?message=userNotFound"); Mockito.verify(userService, new Times(1)).authenticate(Mockito.any(User.class)); } @Test public void testAuhtenticationForWrongPassword() throws Exception { final User userStub = new User(); userStub.setUsername("bhdrkn"); userStub.setPassword("passowrd"); Mockito.when(userService.authenticate(userStub)).thenReturn(false); final String redirect = loginController.authenticate(userStub); Assert.assertEquals(redirect, "errorPage?message=wrongPassword"); Mockito.verify(userService, new Times(1)).authenticate(Mockito.any(User.class)); } }