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")); }
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); }
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()); }
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); }
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(); }
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); }
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(); }
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); }