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 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 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 ActionResult FinalizarCompra(CarroDeCompras carroDeCompras, string idFormaPagamento) { if (carroDeCompras.CompraPodeSerFinalizada()) { var pedido = carroDeCompras.FinalizarCompra(FormaPagamento.ObterPorId(idFormaPagamento)); _pedidoService.IncluirPedido(pedido); TempData["Mensagem"] = "Pedido realizado com sucesso."; } else { TempData["Mensagem"] = "Estoque insuficiente para sua compra."; } return RedirectToAction("Index"); }