package br.gov.servicos.editor.usuarios;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.junit.Assert.*;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public class UsuarioServiceTest {
public static final String CPF = "12312312312";
private static final boolean HABILITADO = Boolean.TRUE;
private static final Long USUARIO_ID = 12345L;
private static final Usuario USUARIO = new Usuario().withCpf(CPF).withHabilitado(HABILITADO);
@Mock
private UsuarioRepository repository;
@InjectMocks
private UsuarioService service;
@Test
public void deveRetornarUsuarioSeEleExiste() {
when(repository.findByCpf(CPF)).thenReturn(USUARIO);
assertThat(service.findByCpf(CPF), equalTo(USUARIO));
}
@Test(expected = UsuarioInexistenteException.class)
public void lancaExcecaoCasoUsuarioNaoExisteNasIntrucoesDeRecuperarSenha() {
when(repository.findByCpf(CPF)).thenReturn(null);
service.findByCpf(CPF);
}
@Test
public void inverteValorCampoHabilitado() {
when(repository.findById(USUARIO_ID)).thenReturn(USUARIO);
when(repository.save(USUARIO)).thenReturn(USUARIO);
// assertThat(service.habilitarDesabilitarUsuario(USUARIO_ID.toString()), equalTo(USUARIO));
}
@Test
public void desabilitaUsuario() {
when(repository.findById(USUARIO_ID)).thenReturn(USUARIO.withHabilitado(true));
service.desabilitarUsuario(USUARIO_ID.toString());
verify(repository).save(USUARIO.withHabilitado(false));
}
}