Пример #1
0
        public void AplicarPromoAguaSemAguaTest()
        {
            var produto = new Produto()
            {
                Descricao = "Prod Test",
                Id        = 1,
                Valor     = 5
            };

            var produto2 = new Produto()
            {
                Descricao = "Prod Test2",
                Id        = 2,
                Valor     = 20
            };

            var produto3 = new Produto()
            {
                Descricao = "Prod Test3",
                Id        = 3,
                Valor     = 70
            };

            var promocao = new Promocao
            {
                Id              = 1,
                Desconto        = 0,
                DescontoMaximo  = true,
                ItemDesconto    = produto3,
                ItensAtivadores = new PromocaoItem[]
                {
                    new PromocaoItem {
                        Id         = 1,
                        Item       = produto,
                        Quantidade = 2
                    },
                    new PromocaoItem {
                        Id         = 2,
                        Item       = produto2,
                        Quantidade = 3
                    }
                },
                RepetirPromocao = false
            };

            var comanda = new Comanda()
            {
                Id = 1
            };

            comanda.AddItem(produto);
            comanda.AddItem(produto);
            comanda.AddItem(produto2);
            comanda.AddItem(produto2);
            comanda.AddItem(produto2);

            comanda.AplicarPromo(promocao);

            Assert.Equal(70, comanda.Itens.Sum(x => x.ValorTotal));
        }
Пример #2
0
        public void AplicarPromoCerv2vezTest()
        {
            var produto = new Produto()
            {
                Descricao = "Prod Test",
                Id        = 1,
                Valor     = 5
            };

            var produto2 = new Produto()
            {
                Descricao = "Prod Test2",
                Id        = 2,
                Valor     = 50
            };

            var promocao = new Promocao
            {
                Id              = 1,
                Desconto        = 2,
                DescontoMaximo  = false,
                ItemDesconto    = produto,
                ItensAtivadores = new PromocaoItem[]
                {
                    new PromocaoItem {
                        Id         = 1,
                        Item       = produto,
                        Quantidade = 1
                    },
                    new PromocaoItem {
                        Id         = 2,
                        Item       = produto2,
                        Quantidade = 1
                    }
                },
                RepetirPromocao = true
            };

            var comanda = new Comanda()
            {
                Id = 1
            };

            comanda.AddItem(produto);
            comanda.AddItem(produto2);
            comanda.AddItem(produto);
            comanda.AddItem(produto2);
            comanda.AplicarPromo(promocao);

            Assert.Equal(6, comanda.Itens.Single(x => x.Produto.Id == 1).ValorTotal);
        }