public void AdicionarLanchePedido(LanchePedidoDTO lanchePedido) { _servicoAplicacaoLanche.CalcularValorLanche(lanchePedido); var promocoes = _servicoAplicacaoPromocao.VerificaPromocoes(lanchePedido.IngredientesPedido); lanchePedido.Promocoes = promocoes.ToList(); }
public ActionResult AdicionarLanchePedido(LanchePedidoDTO lanchePedido) { _servicoAplicacaPedido.AdicionarLanchePedido(lanchePedido); return(PartialView("_lanchePedido", lanchePedido)); }
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; }
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); }
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); }