public void CalcularPrecoDoLancheCompromocaoCarneEQueijoTest()
        {
            List <int> ids = new List <int>();

            ids.Add(3);
            ids.Add(3);
            ids.Add(3);
            ids.Add(5);
            ids.Add(5);
            ids.Add(5);

            Cardapio cardapio = new Cardapio();
            var      carne    = cardapio.ObterCardapioIngredientes()
                                .Where(ingrediente => ingrediente.IngredienteId == 3)
                                .FirstOrDefault().Valor;

            var queijo = cardapio.ObterCardapioIngredientes()
                         .Where(ingrediente => ingrediente.IngredienteId == 5)
                         .FirstOrDefault().Valor;


            var precoFinal = (queijo * 2) + (carne * 2);

            CalculoPrecoLanche calculo = new CalculoPrecoLanche();

            Assert.AreEqual(precoFinal, calculo.CalcularPrecoDoLanche(ids));
        }
        public void CalcularPrecoDoLancheNaoLight()
        {
            List <int> ids = new List <int>();

            ids.Add(1);
            ids.Add(2);
            ids.Add(3);

            Cardapio cardapio = new Cardapio();
            var      carne    = cardapio.ObterCardapioIngredientes()
                                .Where(ingrediente => ingrediente.IngredienteId == 3)
                                .FirstOrDefault().Valor;

            var alface = cardapio.ObterCardapioIngredientes()
                         .Where(ingrediente => ingrediente.IngredienteId == 1)
                         .FirstOrDefault().Valor;

            var bacon = cardapio.ObterCardapioIngredientes()
                        .Where(ingrediente => ingrediente.IngredienteId == 2)
                        .FirstOrDefault().Valor;

            var precoFinal = bacon + carne + alface;


            CalculoPrecoLanche calculo = new CalculoPrecoLanche();

            Assert.AreEqual(precoFinal, calculo.CalcularPrecoDoLanche(ids));
        }
        public void CalcularPrecoDoLancheComTodasPromocoes()
        {
            List <int> ids = new List <int>();

            ids.Add(1);
            ids.Add(3);
            ids.Add(3);
            ids.Add(3);
            ids.Add(5);
            ids.Add(5);
            ids.Add(5);
            ids.Add(3);
            ids.Add(3);
            ids.Add(3);
            ids.Add(5);
            ids.Add(5);
            ids.Add(5);


            Cardapio cardapio = new Cardapio();
            var      carne    = cardapio.ObterCardapioIngredientes()
                                .Where(ingrediente => ingrediente.IngredienteId == 3)
                                .FirstOrDefault().Valor;

            var alface = cardapio.ObterCardapioIngredientes()
                         .Where(ingrediente => ingrediente.IngredienteId == 1)
                         .FirstOrDefault().Valor;

            var queijo = cardapio.ObterCardapioIngredientes()
                         .Where(ingrediente => ingrediente.IngredienteId == 5)
                         .FirstOrDefault().Valor;

            var precoFinal = (queijo * 4) + (carne * 4) + alface;

            precoFinal -= precoFinal * 0.1m;

            CalculoPrecoLanche calculo = new CalculoPrecoLanche();

            Assert.AreEqual(precoFinal, calculo.CalcularPrecoDoLanche(ids));
        }
        public void CalcularPrecoDoLancheCompromocaoLigth()
        {
            List <int> ids = new List <int>();

            ids.Add(1);
            ids.Add(3);

            Cardapio cardapio = new Cardapio();
            var      carne    = cardapio.ObterCardapioIngredientes()
                                .Where(ingrediente => ingrediente.IngredienteId == 3)
                                .FirstOrDefault().Valor;

            var alface = cardapio.ObterCardapioIngredientes()
                         .Where(ingrediente => ingrediente.IngredienteId == 1)
                         .FirstOrDefault().Valor;


            var precoFinal = (alface + carne) - ((alface + carne) * 0.1m);


            CalculoPrecoLanche calculo = new CalculoPrecoLanche();

            Assert.AreEqual(precoFinal, calculo.CalcularPrecoDoLanche(ids));
        }
        public decimal PromocaoDeLanche(List <int> ingredientesId, decimal preco)
        {
            int  numerodeCarne    = ingredientesId.Where(ingrediente => ingrediente == 3).Count();
            bool temPromacaoCarne = numerodeCarne > 2;

            if (!temPromacaoCarne)
            {
                return(preco);
            }

            int     numeroDeRetirada = numerodeCarne / 3;
            decimal valor            = cardapio.ObterCardapioIngredientes().Where(ingrediente => ingrediente.IngredienteId == 3)
                                       .FirstOrDefault().Valor *numeroDeRetirada;

            preco -= valor;
            return(preco);
        }
Exemple #6
0
        public decimal CalcularPrecoDoLanche(List <int> ingredientesId)
        {
            decimal preco = 0m;

            foreach (var id in ingredientesId)
            {
                var valor = cardapio.ObterCardapioIngredientes().Where(ingrediente => ingrediente.IngredienteId == id)
                            .FirstOrDefault().Valor;
                preco += valor;
            }

            Promocao promocaoCarne  = new PromocaoMuitaCarne();
            Promocao promocaoQueijo = new PromocaoMuitoQueijo();
            Promocao promocaoLight  = new PromocaoLancheLight();

            CalculaPromocao promocao = new CalculaPromocao();

            preco = promocao.CalcularPromocao(ingredientesId, preco, promocaoCarne);
            preco = promocao.CalcularPromocao(ingredientesId, preco, promocaoQueijo);
            preco = promocao.CalcularPromocao(ingredientesId, preco, promocaoLight);

            return(preco);
        }
        public ActionResult CriarLanche()
        {
            List <Ingrediente> ingredientes = cardapio.ObterCardapioIngredientes();

            return(View(ingredientes));
        }