package br.com.dextra.dextranet.conteudo.post.curtida; import java.util.List; import org.junit.Assert; import org.junit.After; import org.junit.Test; import br.com.dextra.dextranet.conteudo.post.Post; import br.com.dextra.dextranet.conteudo.post.PostRepository; import br.com.dextra.dextranet.persistencia.EntidadeNaoEncontradaException; import br.com.dextra.teste.TesteIntegracaoBase; import com.google.appengine.api.datastore.EntityNotFoundException; public class CurtidaRepositoryTest extends TesteIntegracaoBase { private PostRepository repositorioDePosts = new PostRepository(); private CurtidaRepository repositorioDeCurtidas = new CurtidaRepository(); @After public void removeDadosInseridos() { this.limpaPostsInseridos(repositorioDePosts); this.limpaCurtidasInseridas(repositorioDeCurtidas); } @Test public void testaRemocao() { Post novoPost = new Post("usuario", "titulo", "conteudo"); Curtida curtida = novoPost.curtir("dextranet"); Curtida curtidaCriada = repositorioDeCurtidas.persiste(curtida); String idDaCurtidaCriada = curtidaCriada.getId(); repositorioDeCurtidas.remove(idDaCurtidaCriada); try { repositorioDeCurtidas.obtemPorId(idDaCurtidaCriada); Assert.fail(); } catch (EntityNotFoundException e) { Assert.assertTrue(true); } } @Test public void testaRemocaoPorConteudoId() { Post novoPost = new Post("usuario", "titulo", "conteudo"); Curtida curtida = novoPost.curtir("dextranet"); Curtida curtidaCriada = repositorioDeCurtidas.persiste(curtida); String idDaCurtidaCriada = curtidaCriada.getId(); repositorioDeCurtidas.remove(curtida.getConteudoId(), curtida.getUsuario()); try { repositorioDeCurtidas.obtemPorId(idDaCurtidaCriada); Assert.fail(); } catch (EntityNotFoundException e) { Assert.assertTrue(true); } } @Test public void testaExcecaoObtemPorConteudoEUsusuario() { try { repositorioDeCurtidas.obtemPorConteudoEUsuario("conteudoId", "usuario"); Assert.fail(); } catch (EntidadeNaoEncontradaException e) { Assert.assertTrue(true); } } @Test public void testaListaPorConteudo() { Post post01 = new Post("usuario", "titulo 01", "conteudo 01"); repositorioDePosts.persiste(post01); Curtida curtida01 = post01.curtir("dextranet"); repositorioDeCurtidas.persiste(curtida01); Curtida curtida02 = post01.curtir("outro-usuario"); repositorioDeCurtidas.persiste(curtida02); Post post02 = new Post("dextranet", "titulo 02", "conteudo 02"); repositorioDePosts.persiste(post02); Curtida curtida03 = post02.curtir("usuario"); repositorioDeCurtidas.persiste(curtida03); Curtida curtida04 = post02.curtir("outro-usuario"); repositorioDeCurtidas.persiste(curtida04); List<Curtida> curtidasDoPost = repositorioDeCurtidas.listaPorConteudo(post01.getId()); Assert.assertEquals(2, curtidasDoPost.size()); Assert.assertEquals(curtida02, curtidasDoPost.get(0)); Assert.assertEquals(curtida01, curtidasDoPost.get(1)); } }