package br.com.dextra.dextranet.banner;
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;
// a heranca eh para poder testar os objetos envolvendo entity
public class BannerTest extends TesteIntegracaoBase {
private TimeMachine timeMachine = new TimeMachine();
private Date dataAtual = timeMachine.dataAtual();
@Test
public void testeConstrutor() {
Entity bannerEntity = new Banner("titulo", "link", dataAtual, dataAtual, "usuario").toEntity();
Banner banner = new Banner(bannerEntity);
Assert.assertEquals(bannerEntity.getProperty(BannerFields.id.name()), banner.getId());
Assert.assertEquals(bannerEntity.getProperty(BannerFields.titulo.name()), banner.getTitulo());
Assert.assertEquals(bannerEntity.getProperty(BannerFields.link.name()), banner.getLink());
Assert.assertEquals(bannerEntity.getProperty(BannerFields.dataInicio.name()), banner.getDataInicio());
Assert.assertEquals(bannerEntity.getProperty(BannerFields.dataFim.name()), banner.getDataFim());
Assert.assertEquals(bannerEntity.getProperty(BannerFields.usuario.name()), banner.getUsuario());
Assert.assertEquals(bannerEntity.getProperty(BannerFields.dataAtualizacao.name()),
banner.getDataDeAtualizacao());
}
@Test
public void testeToEntity() {
Banner banner = new Banner("titulo", "link", dataAtual, dataAtual, "usuario");
Entity bannerEntity = banner.toEntity();
Assert.assertEquals(banner.getId(), bannerEntity.getProperty(BannerFields.id.name()));
Assert.assertEquals(banner.getTitulo(), bannerEntity.getProperty(BannerFields.titulo.name()));
Assert.assertEquals(banner.getLink(), bannerEntity.getProperty(BannerFields.link.name()));
Assert.assertEquals(banner.getDataInicio(), bannerEntity.getProperty(BannerFields.dataInicio.name()));
Assert.assertEquals(banner.getDataFim(), bannerEntity.getProperty(BannerFields.dataFim.name()));
Assert.assertEquals(banner.getUsuario(), bannerEntity.getProperty(BannerFields.usuario.name()));
Assert.assertEquals(banner.getDataDeAtualizacao(),
bannerEntity.getProperty(BannerFields.dataAtualizacao.name()));
}
@Test
public void testaEstaVigente() {
Date cincoDiasPraTras = timeMachine.diasParaAtras(5);
Date dezDiasPraFrente = timeMachine.diasParaFrente(10);
Banner banner = new Banner("titulo", "link", cincoDiasPraTras, dezDiasPraFrente, "usuario");
Assert.assertTrue(banner.estaVigente());
}
@Test
public void testaEstaVigenteComInicioTerminoFuturo() {
Date cincoDiasPraFrente = timeMachine.diasParaFrente(5);
Date dezDiasPraFrente = timeMachine.diasParaFrente(10);
Banner banner = new Banner("titulo", "link", cincoDiasPraFrente, dezDiasPraFrente, "usuario");
Assert.assertFalse(banner.estaVigente());
}
@Test
public void testaEstaVigenteComInicioTerminoPassado() {
Date cincoDiasPraTras = timeMachine.diasParaAtras(5);
Date dezDiasPraTras = timeMachine.diasParaAtras(10);
Banner banner = new Banner("titulo", "link", cincoDiasPraTras, dezDiasPraTras, "usuario");
Assert.assertFalse(banner.estaVigente());
}
@Test
public void testaEstaVigenteComInicioHojeTerminoFuturo() {
Date hoje = timeMachine.dataAtual();
Date dezDiasPraFrente = timeMachine.diasParaFrente(10);
Banner banner = new Banner("titulo", "link", hoje, dezDiasPraFrente, "usuario");
Assert.assertTrue(banner.estaVigente());
}
@Test
public void testaEstaVigenteComInicioPassadoTerminoHoje() {
Date hoje = timeMachine.dataAtual();
Date dezDiasPraTras = timeMachine.diasParaAtras(10);
Banner banner = new Banner("titulo", "link", dezDiasPraTras, hoje, "usuario");
Assert.assertTrue(banner.estaVigente());
}
}