예제 #1
0
        public void NaoDeveExistirNoEstoqueSeQuantidadeMaiorQueQuantidadeDoProdutoNoEstoque()
        {
            var produto = new Produto() { Preco = 6.40, QuantidadeEmEstoque = 2 };
            var itemPedido = new ItemPedido() { Produto = produto, Quantidade = 3 };

            itemPedido.ExisteNoEstoque().Should().BeFalse();
        }
예제 #2
0
        public void DeveSerCapazDeDarBaixaNoEstoque()
        {
            var produto = new Produto() { Preco = 6.40, QuantidadeEmEstoque = 4};
            var itemPedido = new ItemPedido() { Produto = produto, Quantidade = 3 };

            itemPedido.DarBaixaNoEstoque();
            produto.QuantidadeEmEstoque.Should().Be(1);
        }
예제 #3
0
        public void DeveSerCapazDeCalcularPrecoDoItemDoPedido()
        {
            var produto = new Produto() {Preco = 6.40};
            var itemPedido = new ItemPedido() { Produto = produto, Quantidade = 3};

            var result = itemPedido.CalcularPreco();
            result.Should().BeInRange(19.1, 19.3);
        }
예제 #4
0
        public void CarroDeComprasPodeSerFinalizadoSeTodosOsItensDoPedidosExistemNoEstoque()
        {
            var produto = new Produto() {QuantidadeEmEstoque = 1};
            var quantidade = produto.QuantidadeEmEstoque;

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

            var result = carroDeCompras.CompraPodeSerFinalizada();

            result.Should().BeTrue();
        }
예제 #5
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);
        }
예제 #6
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();
        }
예제 #7
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);
        }
예제 #8
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);
        }
예제 #9
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);
        }
예제 #10
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);
        }
예제 #11
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();
        }