package br.com.dextra.dextranet.conteudo.post.comentario;
import java.util.Date;
import org.junit.Assert;
import org.junit.Test;
import br.com.dextra.dextranet.utils.TimeMachine;
import br.com.dextra.teste.TesteIntegracaoBase;
import com.google.appengine.api.datastore.Entity;
import com.google.appengine.api.datastore.Text;
// a heranca eh para poder testar os objetos envolvendo entity
public class ComentarioTest extends TesteIntegracaoBase {
private TimeMachine timeMachine = new TimeMachine();
@Test
public void testaConstrutor() {
Date dataAtual = timeMachine.dataAtual();
Comentario novoComentario = new Comentario("post-id", "dextranet", "<script>alert('Hello!');</script><h1>conteudo</h1>");
Assert.assertEquals("39566cf6ac41da40deb7c6452a9ed94b", novoComentario.getUsuarioMD5());
Assert.assertEquals(0, novoComentario.getQuantidadeDeCurtidas());
Assert.assertEquals(timeMachine.formataData(dataAtual), timeMachine.formataData(novoComentario.getDataDeCriacao()));
Assert.assertEquals("post-id", novoComentario.getPostId());
Assert.assertEquals("<h1>conteudo</h1>", novoComentario.getConteudo());
}
@Test
public void testaConstrutorComEntity() {
Comentario comentarioTemporario = new Comentario("post-id", "usuario", "conteudo");
Entity comentarioEntity = comentarioTemporario.toEntity();
Comentario comentario = new Comentario(comentarioEntity);
Assert.assertEquals(comentarioEntity.getProperty(ComentarioFields.id.name()), comentario.getId());
Assert.assertEquals(((Text) comentarioEntity.getProperty(ComentarioFields.conteudo.name())).getValue(),
comentario.getConteudo());
Assert.assertEquals(comentarioEntity.getProperty(ComentarioFields.quantidadeDeCurtidas.name()),
comentario.getQuantidadeDeCurtidas());
Assert.assertEquals(comentarioEntity.getProperty(ComentarioFields.usuario.name()), comentario.getUsuario());
Assert.assertEquals(comentarioEntity.getProperty(ComentarioFields.usuariosQueCurtiram.name()),
comentario.getUsuariosQueCurtiram());
Assert.assertEquals(comentarioEntity.getProperty(ComentarioFields.usuarioMD5.name()),
comentario.getUsuarioMD5());
Assert.assertEquals(comentarioEntity.getProperty(ComentarioFields.dataDeCriacao.name()),
comentario.getDataDeCriacao());
Assert.assertEquals(comentarioEntity.getProperty(ComentarioFields.postId.name()), comentario.getPostId());
}
@Test
public void testeToEntity() {
Comentario comentario = new Comentario("post-id", "usuario", "conteudo");
Entity comentarioEntity = comentario.toEntity();
Assert.assertEquals(comentario.getId(), comentarioEntity.getProperty(ComentarioFields.id.name()));
Assert.assertEquals(comentario.getConteudo(),
((Text) comentarioEntity.getProperty(ComentarioFields.conteudo.name())).getValue());
Assert.assertEquals(comentario.getQuantidadeDeCurtidas(),
comentarioEntity.getProperty(ComentarioFields.quantidadeDeCurtidas.name()));
Assert.assertEquals(comentario.getUsuario(), comentarioEntity.getProperty(ComentarioFields.usuario.name()));
Assert.assertEquals(comentario.getUsuariosQueCurtiram(),
comentarioEntity.getProperty(ComentarioFields.usuariosQueCurtiram.name()));
Assert.assertEquals(comentario.getUsuarioMD5(),
comentarioEntity.getProperty(ComentarioFields.usuarioMD5.name()));
Assert.assertEquals(comentario.getDataDeCriacao(),
comentarioEntity.getProperty(ComentarioFields.dataDeCriacao.name()));
Assert.assertEquals(comentario.getPostId(), comentarioEntity.getProperty(ComentarioFields.postId.name()));
}
}