package br.usp.ime.academicdevoir.controller; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; import org.mockito.Spy; import br.com.caelum.vraptor.Result; import br.com.caelum.vraptor.util.test.MockResult; import br.usp.ime.academicdevoir.dao.UsuarioDao; import br.usp.ime.academicdevoir.entidade.Usuario; import br.usp.ime.academicdevoir.infra.UsuarioSession; import br.usp.ime.academicdevoir.util.Given; public class LoginControllerTeste { private LoginController loginController; private Usuario usuario; @Spy private Result result = new MockResult(); @Mock private UsuarioDao usuarioDao; private UsuarioSession usuarioSession; @Before public void setUp(){ MockitoAnnotations.initMocks(this); usuario = Given.novoUsuario(); usuarioSession = new UsuarioSession(); usuarioSession.setUsuario(usuario); loginController = new LoginController(result, usuarioDao, usuarioSession); } @Test public void deveFazerLogin(){ loginController.login(); } @Test public void deveAutenticarLogin(){ Mockito.when(usuarioDao.fazLogin(usuario.getLogin(), usuario.getSenha())).thenReturn(usuario); loginController.login(usuario); } @Test public void naoDeveAutenticar() { Mockito.when(usuarioDao.fazLogin(usuario.getLogin(), usuario.getSenha())).thenReturn(null); loginController.login(usuario); Mockito.verify(result).include("error", "Login ou senha incorreta!"); } }