public void Deve_realizar_uma_busca_nos_lotes_pelo_nome_da_cerveja() { var primeiroPedido = PedidoBuilder.Novo().Criar(); var cervejaDoSegundoPedido = CervejaBuilder.Novo().ComNome("Budweiser").ComPreco(6.75).Criar(); var segundoPedido = PedidoBuilder.Novo().ComCerveja(cervejaDoSegundoPedido).Criar(); _pedidos.Add(primeiroPedido); _pedidos.Add(segundoPedido); var comanda = ComandaBuilder.Novo().ComPedidos(_pedidos).Criar(); var lotesQueContemPrimeiraCerveja = new List <Lote>() { new Lote(primeiroPedido.Cerveja, 7), new Lote(primeiroPedido.Cerveja, 3) }; var lotesQueContemSegundaCerveja = new List <Lote>() { new Lote(segundoPedido.Cerveja, 7), new Lote(segundoPedido.Cerveja, 3) }; _repositorioDeLotes.Setup(repositorio => repositorio.ObterLotesPeloNomeDaCerveja(primeiroPedido.Cerveja.Nome)) .Returns(lotesQueContemPrimeiraCerveja); _repositorioDeLotes.Setup(repositorio => repositorio.ObterLotesPeloNomeDaCerveja(segundoPedido.Cerveja.Nome)) .Returns(lotesQueContemSegundaCerveja); _realizacaoDaVenda.Vender(comanda); _repositorioDeLotes.Verify(repositorio => repositorio.ObterLotesPeloNomeDaCerveja(It.Is <string>(nomeDaCerveja => nomeDaCerveja == primeiroPedido.Cerveja.Nome))); _repositorioDeLotes.Verify(repositorio => repositorio.ObterLotesPeloNomeDaCerveja(It.Is <string>(nomeDaCerveja => nomeDaCerveja == segundoPedido.Cerveja.Nome))); }
public void Deve_criar_estoque_com_lote_valido() { var loteEsperado = DateTime.Now.ToString("yyyyMMdd"); var estoque = new Lote(CervejaBuilder.Novo().Criar(), 10); Assert.Equal(loteEsperado, estoque.Identificador); }
public void Nao_deve_permitir_alterar_nome_por_nome_invalido(string nomeInvalido) { var cerveja = CervejaBuilder.Novo().Criar(); Action acao = () => cerveja.AlterarNome(nomeInvalido); Assert.Throws <ExcecaoDeDominio>(acao).ComMensagem(Resource.NomeInvalido); }
public void Nao_deve_permitir_alterar_quantidade_para_valores_invalido_ao_decrementar(int quantidadeBase, int valorInvalido) { var cerveja = CervejaBuilder.Novo().Criar(); var lote = new Lote(cerveja, quantidadeBase); Action acao = () => lote.DecrementarQuantidade(valorInvalido); Assert.Throws <ExcecaoDeDominio>(acao).ComMensagem(Resource.QuantidadeReduzidaEhInvalida); }
public void Deve_alterar_o_nome() { const string nomeEsperado = "Budweiser"; var cerveja = CervejaBuilder.Novo().ComNome("Brahma").Criar(); cerveja.AlterarNome(nomeEsperado); Assert.Equal(nomeEsperado, cerveja.Nome); }
public void Nao_deve_permitir_alterar_quantidade_para_valores_invalido_ao_incrementar(int valorInvalido) { const int quantidadeBase = 6; var cerveja = CervejaBuilder.Novo().Criar(); var estoque = new Lote(cerveja, quantidadeBase); Action acao = () => estoque.IncrementarQuantidade(valorInvalido); Assert.Throws <ExcecaoDeDominio>(acao).ComMensagem(Resource.QuantidadeAdicionadaEhInvalida); }
public void Deve_alterar_a_quantidade_do_estoque(int quantidadeASerAdicionada) { var cerveja = CervejaBuilder.Novo().Criar(); var estoque = new Lote(cerveja, 5); var quantidadeEsperada = estoque.Quantidade + quantidadeASerAdicionada; estoque.IncrementarQuantidade(quantidadeASerAdicionada); Assert.Equal(quantidadeEsperada, estoque.Quantidade); }
public void Deve_armazenar_um_lote_no_repositorio() { var cerveja = CervejaBuilder.Novo().Criar(); var loteEsperado = new Lote(cerveja, 8); _armazenadorDeLotes.Armazenar(loteEsperado); _repositorioDeLotes.Verify(estoque => estoque.Adiciona( It.Is <Lote>(lote => lote.Identificador == loteEsperado.Identificador))); }
public void Não_deve_adicionar_caso_ja_exista_tal_cerveja_no_estoque() { var cervejaEsperada = CervejaBuilder.Novo().ComNome("Teste").Criar(); _repositorioDeCerveja.Setup(estoque => estoque.VerificaSeExistePeloNome(cervejaEsperada.Nome)).Returns(true); _armazenadorDeCerveja.Armazenar(cervejaEsperada); _repositorioDeCerveja.Verify(estoque => estoque.Adiciona(It.IsAny <Cerveja>()), Times.Never()); }
public void Deve_criar_um_pedido() { var cerveja = CervejaBuilder.Novo().Criar(); const int quantidade = 4; var valor = cerveja.Preco * quantidade; var pedidoEsperado = new { Cerveja = cerveja, Quantidade = quantidade, Valor = valor }.ToExpectedObject(); var pedidoObtido = new Pedido(cerveja, quantidade); pedidoEsperado.ShouldMatch(pedidoObtido); }
public void Deve_criar_uma_comanda() { var cervejaDoPrimeiroPedido = CervejaBuilder.Novo().Criar(); var cervejaDoSegundoPedido = CervejaBuilder.Novo().ComNome("Budweiser").ComPreco(6.75).Criar(); var primeiroPedido = new Pedido(cervejaDoPrimeiroPedido, 5); var segundoPedido = new Pedido(cervejaDoSegundoPedido, 4); var valorTotal = primeiroPedido.Valor + segundoPedido.Valor; var pedidos = new List <Pedido> { primeiroPedido, segundoPedido }; var comandaEsperada = new { Pedidos = pedidos, ValorTotal = valorTotal }; var comandaObtida = new Comanda(pedidos); comandaEsperada.ToExpectedObject().ShouldMatch(comandaObtida); }
public LoteTest() { _cerveja = CervejaBuilder.Novo().Criar(); _identificador = DateTime.Now.ToString("yyyyMMdd"); }
public void Nao_deve_aceitar_nome_invalido(string nomeInvalido) { Action acao = () => CervejaBuilder.Novo().ComNome(nomeInvalido).Criar(); Assert.Throws <ExcecaoDeDominio>(acao).ComMensagem(Resource.NomeInvalido); }
public void Nao_deve_aceitar_preco_invalido() { Action acao = () => CervejaBuilder.Novo().ComPreco(-7.5).Criar(); Assert.Throws <ExcecaoDeDominio>(acao).ComMensagem(Resource.PrecoInvalido); }