package br.com.dextra.dextranet.grupo; import static br.com.dextra.dextranet.persistencia.TesteUtils.criarGrupoComOsIntegrantes; import static br.com.dextra.dextranet.persistencia.TesteUtils.criarUsuario; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.util.List; import org.junit.Before; import org.junit.Test; import br.com.dextra.dextranet.usuario.Usuario; import br.com.dextra.dextranet.usuario.UsuarioRepository; import br.com.dextra.teste.TesteIntegracaoBase; import com.google.appengine.api.datastore.EntityNotFoundException; public class GrupoRepositoryTest extends TesteIntegracaoBase { private GrupoRepository grupoRepositorio = new GrupoRepository(); private UsuarioRepository usuarioRepositorio = new UsuarioRepository(); private Usuario usuario = new Usuario("login.google"); @Before public void preparaTestes() { usuario = usuarioRepositorio.persiste(usuario); } @Test public void testaRemover() { Grupo grupo = new Grupo("Grupo A", "Grupo teste", usuario.getNome()); Grupo grupoObtido = grupoRepositorio.persiste(grupo); grupoRepositorio.remove(grupoObtido.getId()); try { grupoRepositorio.obtemPorId(grupo.getId()); } catch (EntityNotFoundException e) { assertTrue(true); } } @Test public void testaInserir() throws EntityNotFoundException { limpaGrupoInseridos(grupoRepositorio); Grupo grupo = new Grupo("Grupo A", "Grupo teste", usuario.getNome()); grupoRepositorio.persiste(grupo); Grupo grupoObtido = grupoRepositorio.obtemPorId(grupo.getId()); assertEquals(grupo.getNome(), grupoObtido.getNome()); assertEquals(grupo.getDescricao(), grupoObtido.getDescricao()); assertEquals(grupo.getProprietario(), grupoObtido.getProprietario()); } @Test public void testaListar() { limpaGrupoInseridos(grupoRepositorio); Grupo grupoA = criarGrupoComOsIntegrantes("grupoa", false, "Grupo A", true, usuario); Grupo grupoB = criarGrupoComOsIntegrantes("grupotesteb", false, "Grupo teste B", true, usuario); Grupo grupoC = criarGrupoComOsIntegrantes("grupotestec", false, "Grupo teste C", true, usuario); criarGrupoComOsIntegrantes("grupotested", false, "Grupo teste D", true, usuario); List<Grupo> grupos = grupoRepositorio.lista(); assertEquals(grupos.get(0).getNome(), grupoA.getNome()); assertEquals(grupos.get(0).getDescricao(), grupoA.getDescricao()); assertEquals(grupos.get(0).getProprietario(), grupoA.getProprietario()); assertEquals(grupos.get(1).getNome(), grupoB.getNome()); assertEquals(grupos.get(1).getDescricao(), grupoB.getDescricao()); assertEquals(grupos.get(1).getProprietario(), grupoB.getProprietario()); assertEquals(grupos.get(2).getNome(), grupoC.getNome()); assertEquals(grupos.get(2).getDescricao(), grupoC.getDescricao()); assertEquals(grupos.get(2).getProprietario(), grupoC.getProprietario()); } @Test public void testaAjusteProprietarioGrupo() throws EntityNotFoundException { Usuario usuario1 = criarUsuario("usuario1", true); Usuario usuario2 = criarUsuario("usuario2", true); Usuario usuario3 = criarUsuario("usuario3", true); Usuario usuario4 = criarUsuario("usuario4", true); criarGrupoComOsIntegrantes("grupo1", false, "Grupo1", true, usuario1, usuario2, usuario3, usuario4); criarGrupoComOsIntegrantes("grupo2", false, "Grupo2", true, usuario1, usuario2, usuario3, usuario4); criarGrupoComOsIntegrantes("grupo3", false, "Grupo3", true, usuario1, usuario2, usuario3, usuario4); criarGrupoComOsIntegrantes("grupo4", false, "Grupo4", true, usuario1, usuario2, usuario3, usuario4); List<Grupo> grupos = grupoRepositorio.obtemPorIdIntegrante(usuario1.getId()); grupoRepositorio.ajustarProprietarioGrupo(usuario1); grupos = grupoRepositorio.obtemPorIdIntegrante(usuario1.getId()); for (Grupo grupo : grupos) { assertFalse(grupo.getProprietario().equals(usuario1.getUsername())); } } }