Created
November 17, 2010 17:59
-
-
Save fbenevides/703733 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package org.benevides.shop.infra; | |
import static org.hamcrest.Matchers.*; | |
import static org.junit.Assert.assertThat; | |
import java.math.BigDecimal; | |
import org.benevides.shop.model.Categoria; | |
import org.benevides.shop.model.Produto; | |
import org.junit.Before; | |
import org.junit.Test; | |
import com.googlecode.objectify.Objectify; | |
import com.googlecode.objectify.ObjectifyFactory; | |
public class ProdutoDaoTest extends DaoTest { | |
ProdutoDao produtoDao; | |
Objectify objectify; | |
@Before | |
public void setup() { | |
super.setup(); | |
ObjectifyFactory factory = new ObjectifyFactory(); | |
this.objectify = factory.begin(); | |
factory.register(Produto.class); | |
factory.register(Categoria.class); | |
this.produtoDao = new ProdutoDao(objectify); | |
} | |
@Test | |
public void deveriaMostrarTodosOsProdutosQueNaoForamVendidos() { | |
Produto bodyboard = new Produto("Bodyboard Genesis", "Modelo Genesis Uri Valadão", new BigDecimal("250.00")); | |
produtoDao.adicionar(bodyboard); | |
Produto mochila = new Produto("Mochila Targus", "Modelo Genesis Uri Valadão", new BigDecimal("250.00")); | |
mochila.definirComoVendido(); | |
produtoDao.adicionar(mochila); | |
assertThat(produtoDao.produtosAVenda(), hasItem(bodyboard)); | |
assertThat(produtoDao.produtosAVenda(), not(hasItem(mochila))); | |
} | |
@Test | |
public void deveriaMostrarTodosOsProdutos() { | |
Produto bodyboard = new Produto("Bodyboard Genesis", "Modelo Genesis Uri Valadão", new BigDecimal("250.00")); | |
produtoDao.adicionar(bodyboard); | |
Produto mochila = new Produto("Mochila Targus", "Modelo Genesis Uri Valadão", new BigDecimal("250.00")); | |
mochila.definirComoVendido(); | |
produtoDao.adicionar(mochila); | |
Produto camisa = new Produto("Camisa Aeropostale", "Tamanho M, estado muito bom!", new BigDecimal("250.00")); | |
produtoDao.adicionar(camisa); | |
assertThat(produtoDao.todos(), hasItems(bodyboard, mochila, camisa)); | |
} | |
@Test | |
public void deveriaMostrarTodosOsProdutosDeUmaCategoria() { | |
Categoria esporte = new Categoria("Esporte"); | |
Produto bodyboard = new Produto("Bodyboard Genesis", "Modelo Genesis Uri Valadão", new BigDecimal("250.00"), esporte); | |
produtoDao.adicionar(bodyboard); | |
Categoria informatica = new Categoria("Informática"); | |
Produto mochila = new Produto("Mochila Targus", "Modelo Genesis Uri Valadão", new BigDecimal("250.00"), informatica); | |
mochila.definirComoVendido(); | |
produtoDao.adicionar(mochila); | |
Categoria vestuario = new Categoria("Vestuário"); | |
Produto camisa = new Produto("Camisa Aeropostale", "Tamanho M, estado muito bom!", new BigDecimal("250.00"), vestuario); | |
produtoDao.adicionar(camisa); | |
assertThat(produtoDao.daCategoria(esporte), hasItems(bodyboard)); | |
assertThat(produtoDao.daCategoria(esporte), not(hasItems(mochila))); | |
assertThat(produtoDao.daCategoria(esporte), not(hasItems(camisa))); | |
} | |
@Test | |
public void deveriaMostrarUmProdutoComCodigo() { | |
Categoria esporte = new Categoria("Esporte"); | |
Produto bodyboard = new Produto("Bodyboard Genesis", "Modelo Genesis Uri Valadão", new BigDecimal("250.00"), esporte); | |
produtoDao.adicionar(bodyboard); | |
Categoria informatica = new Categoria("Informática"); | |
Produto mochila = new Produto("Mochila Targus", "Modelo Genesis Uri Valadão", new BigDecimal("250.00"), informatica); | |
mochila.definirComoVendido(); | |
produtoDao.adicionar(mochila); | |
Categoria vestuario = new Categoria("Vestuário"); | |
Produto camisa = new Produto("Camisa Aeropostale", "Tamanho M, estado muito bom!", new BigDecimal("250.00"), vestuario); | |
produtoDao.adicionar(camisa); | |
assertThat(produtoDao.obter(2L), is(bodyboard)); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment