示例#1
0
        public void InserirItemPedidoDeUmProdutoJaExistente()
        {
            var produto    = new Produto();
            var quantidade = 1;

            var carroDeCompras = new CarroDeCompras();

            carroDeCompras.AdicionarItemPedido(new ItemPedido()
            {
                Produto = produto, Quantidade = quantidade
            });
            carroDeCompras.AdicionarItemPedido(new ItemPedido()
            {
                Produto = produto, Quantidade = quantidade
            });

            carroDeCompras.ItensPedido.Count.Should().Be(1);
            carroDeCompras.ItensPedido[0].Quantidade.Should().Be(2);
        }
        public ActionResult AdicionarItem(CarroDeCompras carroDeCompras, int idProduto, int quantidade)
        {
            var produto = _produtoService.ObterTodosProdutos().First(x => x.Id == idProduto);

            carroDeCompras.AdicionarItemPedido(new ItemPedido()
            {
                Produto = produto, Quantidade = quantidade
            });
            TempData["Mensagem"] = "Produto adicionado com sucesso.";

            return(RedirectToAction("Index", "Produto"));
        }
示例#3
0
        public void InserirItemPedidoEmUmCarroDeComprasVazio()
        {
            var produto    = new Produto();
            var quantidade = 1;

            var carroDeCompras = new CarroDeCompras();

            carroDeCompras.AdicionarItemPedido(new ItemPedido()
            {
                Produto = produto, Quantidade = quantidade
            });
            carroDeCompras.ItensPedido[0].Produto.Should().Be(produto);
            carroDeCompras.ItensPedido[0].Quantidade.Should().Be(quantidade);
        }
示例#4
0
        public void AoFinalizarCompraCarrinhoDeveSerEsvaziado()
        {
            var produto    = new Produto();
            var quantidade = 1;

            var carroDeCompras = new CarroDeCompras();

            carroDeCompras.AdicionarItemPedido(new ItemPedido()
            {
                Produto = produto, Quantidade = quantidade
            });

            carroDeCompras.FinalizarCompra(FormaPagamento.CartaoCreditoVisa);

            carroDeCompras.ItensPedido.Should().BeEmpty();
        }
        public void AoFinalizarACompraComItensNaoExistentesNoEstoqueNaoDeveSerChamadoMetodoIncluir()
        {
            var carroDeCompras = new CarroDeCompras();

            carroDeCompras.AdicionarItemPedido(new ItemPedido()
            {
                Produto = new Produto()
                {
                    Id = 1, QuantidadeEmEstoque = 0
                }, Quantidade = int.MaxValue
            });

            var result = carroDeComprasController.FinalizarCompra(carroDeCompras, "1");

            mockPedidoService.Verify(x => x.IncluirPedido(It.IsAny <Pedido>()), Times.Never());
        }
示例#6
0
        public void AoFinalizarCompraDeveSerGeradoUmPedido()
        {
            var produto    = new Produto();
            var quantidade = 1;

            var carroDeCompras = new CarroDeCompras();

            carroDeCompras.AdicionarItemPedido(new ItemPedido()
            {
                Produto = produto, Quantidade = quantidade
            });

            var pedido = carroDeCompras.FinalizarCompra(FormaPagamento.CartaoCreditoVisa);

            pedido.ItensPedido[0].Produto.Should().Be(produto);
            pedido.ItensPedido[0].Quantidade.Should().Be(quantidade);
            pedido.FormaPagamento.Id.Should().Be(FormaPagamento.CartaoCreditoVisa.Id);
        }
示例#7
0
        public void DeveSerCapazDeItensDePedidoPeloIdDoProduto()
        {
            var produto = new Produto()
            {
                Id = 1
            };

            var carroDeCompras = new CarroDeCompras();

            carroDeCompras.AdicionarItemPedido(new ItemPedido()
            {
                Produto = produto, Quantidade = 0
            });

            carroDeCompras.RemoverProduto(produto.Id.ToString());

            carroDeCompras.ItensPedido.Should().BeEmpty();
        }
示例#8
0
        public void AoFinalizarCompraDeveSerAtualizadoEstoque()
        {
            var produto = new Produto()
            {
                QuantidadeEmEstoque = 1
            };
            var quantidade = produto.QuantidadeEmEstoque;

            var carroDeCompras = new CarroDeCompras();

            carroDeCompras.AdicionarItemPedido(new ItemPedido()
            {
                Produto = produto, Quantidade = quantidade
            });

            var pedido = carroDeCompras.FinalizarCompra(FormaPagamento.CartaoCreditoVisa);

            pedido.ItensPedido[0].Produto.QuantidadeEmEstoque.Should().Be(0);
        }
示例#9
0
        public void CarroDeComprasNaoPodeSerFinalizadoSeTodosOsItensDoPedidosNaoExistemNoEstoque()
        {
            var produto = new Produto()
            {
                QuantidadeEmEstoque = 0
            };
            var quantidade = produto.QuantidadeEmEstoque + 1;

            var carroDeCompras = new CarroDeCompras();

            carroDeCompras.AdicionarItemPedido(new ItemPedido()
            {
                Produto = produto, Quantidade = quantidade
            });

            var result = carroDeCompras.CompraPodeSerFinalizada();

            result.Should().BeFalse();
        }
示例#10
0
        public void DeveSerCapazDeCalcularPrecoTotal()
        {
            var produto = new Produto()
            {
                Preco = 7.5
            };
            var quantidade = 2;

            var carroDeCompras = new CarroDeCompras();

            carroDeCompras.AdicionarItemPedido(new ItemPedido()
            {
                Produto = produto, Quantidade = quantidade
            });

            var result = carroDeCompras.CalcularPreco();

            result.Should().BeInRange(14.9, 15.1);
        }