package br.com.dextra.dextranet.web.conteudo.post;
import org.junit.Assert;
import org.junit.After;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import br.com.dextra.dextranet.TesteFuncionalBase;
import br.com.dextra.dextranet.conteudo.post.PostRepository;
public class PostWebTest extends TesteFuncionalBase {
private PaginaPost paginaNovoPost = null;
@After
public void limpaDadosCriados() {
this.limpaPostsInseridos(new PostRepository());
}
@Test
public void testaPost() {
dadoQueUsuarioAcessaPaginaPrincipal();
String titulo = "Titulo de Teste";
String conteudo = "Texto do teste";
quandoEleCriaUmPost(titulo, conteudo);
entaoNovoPostExisteNaTimeline(titulo, conteudo);
quandoEleCurtePost();
entaoPostFoiCurtidoPeloUsuarioLogado();
quandoEleExcluiPost();
entaoPostNaoExisteMaisNaTimeline(titulo, conteudo);
}
protected void quandoEleCriaUmPost(String titulo, String conteudo) {
paginaNovoPost = paginaPrincipal.clicaEmNovoPost();
paginaNovoPost.criarNovoPost(titulo, conteudo);
}
private void entaoNovoPostExisteNaTimeline(String titulo, String conteudo) {
Assert.assertTrue(paginaNovoPost.existePostPor(titulo, conteudo));
}
private void entaoPostNaoExisteMaisNaTimeline(String titulo, String conteudo) {
Assert.assertTrue(!paginaNovoPost.existePostPor(titulo, conteudo));
}
private void quandoEleCurtePost() {
String linkCurtir = "a#like_" + paginaNovoPost.getIdPost();
linkCurtir += " span";
paginaPrincipal.click(linkCurtir);
paginaPrincipal.waitToLoad();
}
private void entaoPostFoiCurtidoPeloUsuarioLogado() {
String numeroCurtida = "a#showLikes_" + paginaNovoPost.getIdPost();
numeroCurtida += " .numero_curtida";
WebElement curtidas = driver.findElement(By.cssSelector(numeroCurtida));
Assert.assertEquals("1", curtidas.getText());
}
private void quandoEleExcluiPost() {
paginaNovoPost.excluiPost();
}
private void dadoQueUsuarioAcessaPaginaPrincipal() {
paginaPrincipal.acessaPaginaPrincipal();
}
}