Пример #1
0
        public void AdicionarLanchePedido(LanchePedidoDTO lanchePedido)
        {
            _servicoAplicacaoLanche.CalcularValorLanche(lanchePedido);
            var promocoes = _servicoAplicacaoPromocao.VerificaPromocoes(lanchePedido.IngredientesPedido);

            lanchePedido.Promocoes = promocoes.ToList();
        }
Пример #2
0
        public ActionResult AdicionarLanchePedido(LanchePedidoDTO lanchePedido)
        {
            _servicoAplicacaPedido.AdicionarLanchePedido(lanchePedido);


            return(PartialView("_lanchePedido", lanchePedido));
        }
Пример #3
0
        public void CalcularValorLanche(LanchePedidoDTO lanchePedido)
        {
            if (lanchePedido == null)
            {
                throw new Exception("Sem informação de Lanche");
            }

            if (lanchePedido.IngredientesPedido == null || !lanchePedido.IngredientesPedido.Any())
            {
                throw new Exception("Lanche sem Ingredientes!");
            }

            lanchePedido.Valor = lanchePedido.ValorIngredientes;
        }
Пример #4
0
        public void CalcularValorLanche()
        {
            _mockservicoLanche = new Mock <IServicoLanche>();
            var lanche = new LanchePedidoDTO();

            lanche.IngredientesPedido = new List <IngredienteLancheDTO>();
            lanche.IngredientesPedido.Add(new IngredienteLancheDTO {
                Nome = "Queijo", Quantidade = 1, Valor = 1.50M, TipoIngrediente = Dominio.Enumeradores.TipoIngrediente.Queijo
            });
            lanche.IngredientesPedido.Add(new IngredienteLancheDTO {
                Nome = "Hamburger", Quantidade = 1, Valor = 3.00M, TipoIngrediente = Dominio.Enumeradores.TipoIngrediente.Carne
            });
            lanche.Quantidade       = 1;
            _servicoAplicacaoLanche = new ServicoAplicacaoLanche(_mockservicoLanche.Object);
            _servicoAplicacaoLanche.CalcularValorLanche(lanche);
            Assert.True(lanche.Valor == 4.5M);
            Assert.True(lanche.ValorFinal == 4.5M);
        }
Пример #5
0
        public void PromocaoMuitoQueijo()
        {
            _mockServicoPromocao      = new Mock <IServicoPromocao>();
            _servicoAplicacaoPromocao = new ServicoAplicacaoPromocao(_mockServicoPromocao.Object);
            var lanche = new LanchePedidoDTO();

            lanche.IngredientesPedido = new List <IngredienteLancheDTO>();
            lanche.IngredientesPedido.Add(new IngredienteLancheDTO {
                Nome = "Queijo", Quantidade = 3, Valor = 1.50M, TipoIngrediente = Dominio.Enumeradores.TipoIngrediente.Queijo
            });
            lanche.IngredientesPedido.Add(new IngredienteLancheDTO {
                Nome = "Hamburger", Quantidade = 1, Valor = 3.00M, TipoIngrediente = Dominio.Enumeradores.TipoIngrediente.Carne
            });
            lanche.Quantidade = 1;

            _mockServicoPromocao.Setup(m => m.ObterPorTipo(TipoPromocao.MuitaCarne))
            .Returns((TipoPromocao tipo) =>
            {
                return(new Promocao {
                    Nome = "Muita Carne", TipoPromocao = TipoPromocao.MuitaCarne
                });
            });
            _mockServicoPromocao.Setup(m => m.ObterPorTipo(TipoPromocao.MuitoQueijo))
            .Returns((TipoPromocao tipo) =>
            {
                return(new Promocao {
                    Nome = "Muito Queijo", TipoPromocao = TipoPromocao.MuitoQueijo
                });
            });
            _mockServicoPromocao.Setup(m => m.ObterPorTipo(TipoPromocao.Light))
            .Returns((TipoPromocao tipo) =>
            {
                return(new Promocao {
                    Nome = "Light", TipoPromocao = TipoPromocao.Light
                });
            });
            var promocoes = _servicoAplicacaoPromocao.VerificaPromocoes(lanche.IngredientesPedido);

            Assert.True(promocoes.Any());
            Assert.Contains(promocoes, a => a.TipoPromocao == TipoPromocao.MuitoQueijo);
            Assert.DoesNotContain(promocoes, a => a.TipoPromocao == TipoPromocao.MuitaCarne);
        }