コード例 #1
0
        public void PromocaoValidaExedTest()
        {
            var produto = new Produto()
            {
                CompraMaxima = 3,
                Descricao    = "Prod Test",
                Id           = 1,
                Valor        = 50
            };

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

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

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

            var promValid = promocao.PromocaoValida(comanda);

            Assert.True(promValid, "Promoção valida com mais itens que o necessário");
        }
コード例 #2
0
        public void AddItemAumQuantTest()
        {
            var produto = new Produto()
            {
                CompraMaxima = 3,
                Descricao    = "Prod Test",
                Id           = 1,
                Valor        = 50
            };

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

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

            Assert.True(comanda.Valid, "Comanda segue valida");
            Assert.True(comanda.Itens.Count == 1, "Adicionado o item na lista");
            Assert.True(comanda.Itens.First().Quantidade == 2, "Adicionado a quantidade");
        }
コード例 #3
0
        public void Repetir2Vezes2ProdTest()
        {
            var produto = new Produto()
            {
                Descricao = "Prod Test",
                Id        = 1,
                Valor     = 50
            };
            var produto2 = new Produto()
            {
                Descricao = "Prod Test 2",
                Id        = 2,
                Valor     = 50
            };

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

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

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

            var promValid = promocao.PromocaoValida(comanda);
            var repetir   = promocao.RepetirXVezes(comanda);

            Assert.True(promocao.Valid, "Promoção valida");
            Assert.True(promValid, "Promoção pode ser aplicada");
            Assert.Equal(2, repetir);
        }
コード例 #4
0
        public void AplicarPromoAguaComAgua2Test()
        {
            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.AddItem(produto3);
            comanda.AddItem(produto3);

            comanda.AplicarPromo(promocao);

            Assert.Equal(140, comanda.Itens.Sum(x => x.ValorTotal));
        }