package br.com.dextra.dextranet.usuario;
import java.util.List;
import org.junit.Assert;
import org.junit.After;
import org.junit.Test;
import br.com.dextra.dextranet.persistencia.EntidadeNaoEncontradaException;
import br.com.dextra.teste.TesteIntegracaoBase;
import com.google.appengine.api.datastore.EntityNotFoundException;
public class UsuarioRepositoryTest extends TesteIntegracaoBase {
private UsuarioRepository repositorio = new UsuarioRepository();
@After
public void after() throws EntityNotFoundException {
this.limpaUsuariosInseridos(repositorio);
}
@Test
public void testaRemocao() {
Usuario novoUsuario = new Usuario("dextranet");
Usuario usuarioCriado = repositorio.persiste(novoUsuario);
String idDoUsuarioCriado = usuarioCriado.getId();
repositorio.remove(idDoUsuarioCriado);
try {
repositorio.obtemPorId(idDoUsuarioCriado);
Assert.fail();
} catch (EntityNotFoundException e) {
Assert.assertTrue(true);
}
}
@Test
public void testaListaTodos() throws EntityNotFoundException {
Usuario usuario01 = new Usuario("reloadDextranet");
Usuario usuario02 = new Usuario("dextranet");
Usuario usuario03 = new Usuario("novaDextranet");
repositorio.persiste(usuario01);
repositorio.persiste(usuario02);
repositorio.persiste(usuario03);
List<Usuario> usuariosEncontrados = repositorio.lista();
Assert.assertEquals(3, usuariosEncontrados.size());
Assert.assertEquals(usuario02, usuariosEncontrados.get(0));
Assert.assertEquals(usuario03, usuariosEncontrados.get(1));
Assert.assertEquals(usuario01, usuariosEncontrados.get(2));
}
@Test
public void testaListaPorUsuariosAtivos() throws EntityNotFoundException {
Usuario usuario01 = new Usuario("reloadDextranet");
usuario01.setAtivo(false);
Usuario usuario02 = new Usuario("dextranet");
Usuario usuario03 = new Usuario("novaDextranet");
repositorio.persiste(usuario01);
repositorio.persiste(usuario02);
repositorio.persiste(usuario03);
Boolean isInfra = false;
List<Usuario> usuariosEncontrados = repositorio.listaPor(isInfra);
Assert.assertEquals(2, usuariosEncontrados.size());
}
@Test
public void testaListaPorUsuariosAtivosEInativos() throws EntityNotFoundException {
Usuario usuario01 = new Usuario("reloadDextranet");
usuario01.setAtivo(false);
Usuario usuario02 = new Usuario("dextranet");
Usuario usuario03 = new Usuario("novaDextranet");
repositorio.persiste(usuario01);
repositorio.persiste(usuario02);
repositorio.persiste(usuario03);
Boolean isInfra = true;
List<Usuario> usuariosEncontrados = repositorio.listaPor(isInfra);
Assert.assertEquals(3, usuariosEncontrados.size());
}
@Test
public void testaObtemPorUsernameInexistente() {
try {
repositorio.obtemPorUsername("dextranet");
Assert.fail();
} catch (EntidadeNaoEncontradaException e) {
Assert.assertTrue(true);
}
}
@Test
public void testaObtemPorUsername() {
Usuario usuario01 = new Usuario("reloadDextranet");
Usuario usuario02 = new Usuario("dextranet");
Usuario usuario03 = new Usuario("novaDextranet");
repositorio.persiste(usuario01);
repositorio.persiste(usuario02);
repositorio.persiste(usuario03);
Assert.assertEquals(usuario02, repositorio.obtemPorUsername(usuario02.getUsername()));
}
}