public void AoAdicionarDeveSerRedirecionadoParaTelaDeProduto() { var carroDeCompras = new CarroDeCompras(); var result = carroDeComprasController.AdicionarItem(carroDeCompras, 1, 10); result.As<RedirectToRouteResult>().RouteValues["action"].Should().Be("Index"); result.As<RedirectToRouteResult>().RouteValues["controller"].Should().Be("Produto"); }
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 AoFinalizarACompraComItensEmEstoqueDeveSerChamadoMetodoIncluir() { var carroDeCompras = new CarroDeCompras(); var result = carroDeComprasController.FinalizarCompra(carroDeCompras, "1"); mockPedidoService.Verify(x => x.IncluirPedido(It.IsAny<Pedido>()), Times.Once()); }
public void AoAdicionarItemItemDeveSerAdicionadoNoCarrinho() { var carroDeCompras = new CarroDeCompras(); carroDeComprasController.AdicionarItem(carroDeCompras, 1, 10); carroDeCompras.ItensPedido[0].Produto.Id.Should().Be(1); carroDeCompras.ItensPedido[0].Quantidade.Should().Be(10); }
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 object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { var carroDeCompras = controllerContext.HttpContext.Session[CarroDeComprasSessionKey]; if (carroDeCompras == null) { carroDeCompras = new CarroDeCompras(); controllerContext.HttpContext.Session[CarroDeComprasSessionKey] = carroDeCompras; } return carroDeCompras; }
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 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(); }
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"); }
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 AoAcessarActionIndexDeveSerExibidoOCarroDeCompras() { var carroDeCompras = new CarroDeCompras(); var result = carroDeComprasController.Index(carroDeCompras); result.As<ViewResult>().Model.Should().BeSameAs(carroDeCompras); }
public ActionResult Index(CarroDeCompras carroDeCompras) { return View(carroDeCompras); }
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 AoFinalizarACompraDevePermanacerNaTelaIndex() { var carroDeCompras = new CarroDeCompras(); var result = carroDeComprasController.FinalizarCompra(carroDeCompras, "1"); result.As<RedirectToRouteResult>().RouteValues["action"].Should().Be("Index"); }
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 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 AoRemoverItemDevePermanecerNaPaginaIndex() { var carroDeCompras = new CarroDeCompras(); carroDeCompras.ItensPedido.Add(new ItemPedido() { Produto = new Produto(){ Id = 1}}); var result = carroDeComprasController.RemoverProduto(carroDeCompras, "1"); result.As<ViewResult>().ViewName.Should().Be("Index"); }
public ActionResult RemoverProduto(CarroDeCompras carroDeCompras, string idProduto) { carroDeCompras.RemoverProduto(idProduto); TempData["Mensagem"] = "Produto removido com sucesso."; return View("Index", carroDeCompras); }
public void AoAcessarActionIndexDeveSerExibidaViewComMesmoNome() { var carroDeCompras = new CarroDeCompras(); var result = carroDeComprasController.Index(carroDeCompras); result.As<ViewResult>().ViewName.Should().BeEmpty(); }
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); }
public void AoRemoverItemItemDeveSerRemovidoDoCarrinho() { var carroDeCompras = new CarroDeCompras(); carroDeCompras.ItensPedido.Add(new ItemPedido() { Produto = new Produto() { Id = 1 } }); carroDeComprasController.RemoverProduto(carroDeCompras, "1"); carroDeCompras.ItensPedido.Should().BeEmpty(); }