public void AdicionarItemAoCarrinho()
        {
            //preparação (Arrange) e o estímulo (Act), das verificações (Asserts)
            Produto produto1 = new Produto
            {
                ProdutoId = 1,
                Nome = "Teste1"
            };

            Produto produto2 = new Produto
            {
                ProdutoId = 2,
                Nome = "Teste2"
            };

            Carrinho carrinho = new Carrinho();

            carrinho.AdicionarItem(produto1, 3);

            CarrinhoController controller = new CarrinhoController();

            //Act
            controller.Adicionar(carrinho, 2,1, "");

            //Assert
            Assert.AreEqual(carrinho.ItensCarrinho.Count(), 2);

            Assert.AreEqual(carrinho.ItensCarrinho.ToArray()[0].Produto.ProdutoId, 1);

        }
        public void AdicionarProdutoExistenteParaCarrinho()
        {
            Produto produto1 = new Produto
            {
                ProdutoId = 1,
                Nome = "Teste 1"
            };

            Produto produto2 = new Produto
            {
                ProdutoId = 2,
                Nome = "TEste2"
            };

            Carrinho carrinho = new Carrinho();

            carrinho.AdicionarItem(produto1, 1);
            carrinho.AdicionarItem(produto2, 1);
            carrinho.AdicionarItem(produto1, 10);

            ItemCarrinho[] resultado = carrinho.ItensCarrinho
                .OrderBy(c => c.Produto.ProdutoId)
                .ToArray();

            Assert.AreEqual(resultado.Length, 2);
            Assert.AreEqual(resultado[0].Quantidade, 11);
            Assert.AreEqual(resultado[1].Quantidade, 1);
        }
        public void AdicionarItensAoCarrinho()
        {
            //Arrange - criação dos produtos
            Produto produto1 = new Produto()
            {
                ProdutoId = 1,
                Nome = "Teste 1"
            };

            Produto produto2 = new Produto()
            {
                ProdutoId = 2,
                Nome = "Teste 2"
            };

            //Arrange
            Carrinho carrinho = new Carrinho();

            carrinho.AdicionarItem(produto1, 2);

            carrinho.AdicionarItem(produto2,3);

            //Act - Agir
            ItemCarrinho[] itens = carrinho.ItensCarrinho.ToArray();

            //Assert (Testando se a quantidade de itens é igual a 2)
            Assert.AreEqual(itens.Length,2);

            //Assert (Testando se o produto é igual ou não)
            Assert.AreEqual(itens[0].Produto,produto1);

            Assert.AreEqual(itens[1].Produto,produto2);
        }
        public void PodeAdicionarProdutoExistenteNoCarrinho()
        {
            //Arrange
            Produto produto1 = new Produto
            {
                ProdutoId = 1,
                Descricao = "Bola de Futebol",
                Categoria = "Futebol"
            };

            Produto produto2 = new Produto
            {
                ProdutoId = 2,
                Descricao = "Bola de Basquete",
                Categoria = "Basquete"
            };

            Carrinho carrinho = new Carrinho();

            //Act
            carrinho.AdicionarItem(produto1, 1);
            carrinho.AdicionarItem(produto2, 1);
            carrinho.AdicionarItem(produto1, 10);
            ItemCarrinho[] itens = carrinho.ItensCarrinho.OrderBy(c => c.Produto.ProdutoId).ToArray();

            //Assert
            Assert.AreEqual(itens.Length, 2);
            Assert.AreEqual(itens[0].Produto, produto1);
            Assert.AreEqual(itens[1].Produto, produto2);
        }
        public ViewResult FecharPedido(Carrinho carrinho, Pedido pedido)
        {
            //Carrinho carrinho = ObterCarrinho();

            EmailConfiguracoes email = new EmailConfiguracoes
            {
                EscreverArquivo = bool.Parse(ConfigurationManager.AppSettings["Email.EscreverArquivo"] ?? "false")
            };

            EmailPedido emailpedido = new EmailPedido(email);

            //Se estiver vazio mostre a mensagem de erro
            if (!carrinho.ItensCarrinho.Any())
            {
                ModelState.AddModelError("","Não foi possível concluir o pedido, seu carrinho está vazio!!!");
            }

            //Se todos os campos estiverem preenchidos gravar o pedido
            if (ModelState.IsValid)
            {
                emailpedido.ProcessarPedido(carrinho,pedido);
                carrinho.LimparCarrinho();

                return View("PedidoConcluido");
            }
            else
            {
                return View(pedido);
            }
        }
        public ViewResult FecharPedido(Carrinho carrinho, Pedido pedido)
        {
            EmailConfiguracoes email = new EmailConfiguracoes
            {
                EscreverArquivo = bool.Parse(ConfigurationManager.AppSettings["Email.EscreverArquivo"] ?? "false")
            };

            EmailPedido emailPedido = new EmailPedido(email);

            if (!carrinho.ItensCarrinho.Any())
            {
                ModelState.AddModelError("", "Não foi possivel concluir o pedido, seu carrinho está vazio");
            }

            if (ModelState.IsValid)
            {
                emailPedido.ProcessarPedido(carrinho, pedido);
                carrinho.LimpparCarrinho();
                return View("PedidoConcluido");
            }
            else
            {
                return View(pedido);
            }
        }
        public void AdicionarItensAoCarrinho()
        {
            Produto produto1 = new Produto
            {
                ProdutoId = 1,
                Nome = "Teste 1"
            };

            Produto produto2 = new Produto
            {
                ProdutoId = 2,
                Nome = "TEste2"
            };

            Carrinho carrinho = new Carrinho();

            carrinho.AdicionarItem(produto1, 2);

            carrinho.AdicionarItem(produto2, 3);

            ItemCarrinho[] itens = carrinho.ItensCarrinho.ToArray();

            Assert.AreEqual(itens.Length, 2);
            Assert.AreEqual(itens[0].Produto, produto1);
            Assert.AreEqual(itens[1].Produto, produto2);
        }
        public void AdicionarItemAoCarrinho()
        {
            Produto produto1 = new Produto
            {
                ProdutoId = 1,
                Nome = "Teste1"
            };

            Produto produto2 = new Produto
            {
                ProdutoId = 2,
                Nome = "Teste2"
            };

            Carrinho carrinho = new Carrinho();

            carrinho.AdicionarItem(produto1,3);

            carrinho.AdicionarItem(produto2, 4);

            CarrinhoController controller = new CarrinhoController();

            //Act

            controller.Adicionar(carrinho, 2, "");

            //Assert

            Assert.AreEqual(carrinho.ItensCarrinho.Count(),2);

            Assert.AreEqual(carrinho.ItensCarrinho.ToArray()[0].Produto.ProdutoId,1);
        }
 public ViewResult Index(Carrinho carrinho, string returnUrl)
 {
     return View(new CarrinhoViewModel
     {
         Carrinho = carrinho,
         ReturnUrl = returnUrl
     });
 }
        public void ProcessarPedido(Carrinho carrinho, Pedido pedido)
        {

            using (var smtpClient = new SmtpClient())
            {
                smtpClient.EnableSsl = _emailConfiguracoes.UsarSsl;
                smtpClient.Host = _emailConfiguracoes.ServidorSmtp;
                smtpClient.Port = _emailConfiguracoes.ServidorPorta;
                smtpClient.UseDefaultCredentials = false;
                smtpClient.Credentials = new NetworkCredential(
                    _emailConfiguracoes.Usuario, _emailConfiguracoes.ServidorSmtp
                    );

                if (_emailConfiguracoes.EscreverArquivo)
                {
                    smtpClient.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory;
                    smtpClient.PickupDirectoryLocation = _emailConfiguracoes.PastaArquivo;
                    smtpClient.EnableSsl = false;
                }

                StringBuilder body = new StringBuilder()
                    .AppendLine("Novo Pedido:")
                    .AppendLine("-------")
                    .AppendLine("Itens");

                foreach (var item in carrinho.ItensCarrinho)
                {
                    var subtotal = item.Produto.Preco * item.Quantidade;
                    body.AppendFormat("{0} x {1} (subtotal: {2:c}",
                        item.Quantidade, item.Produto.Nome, subtotal);
                }

                body.AppendFormat("Valor total do peido: {0:c}", carrinho.ObterValorTotal())
                    .AppendLine("--------------------")
                    .AppendLine("Enviar para:")
                    .AppendLine(pedido.NomeCliente)
                    .AppendLine(pedido.Email)
                    .AppendLine(pedido.Endereco ?? "")
                    .AppendLine(pedido.Cidade ?? "")
                    .AppendLine(pedido.Complemento ?? "")
                    .AppendLine("--------------------")
                    .AppendFormat("Para presente?: {0}", pedido.EmbrulhaPresente ? "Sim" : "Não");

                MailMessage mailMessage = new MailMessage(
                    _emailConfiguracoes.De,
                    _emailConfiguracoes.Para,
                    "Novo peido", body.ToString());


                if (_emailConfiguracoes.EscreverArquivo)
                {
                    mailMessage.BodyEncoding = Encoding.GetEncoding("ISO-8859-1");
                }

                smtpClient.Send(mailMessage);

            }
        }
Esempio n. 11
0
        private Carrinho ObterCarrinho()
        {
            Carrinho carrinho = (Carrinho) Session["Carrinho"];

            if (carrinho == null)
            {
                carrinho = new Carrinho();
                Session["Carrinho"] = carrinho;
            }

            return carrinho;
        }
        public RedirectToRouteResult Adicionar(Carrinho carrinho, int produtoId, int quantidade, string returnUrl)
        {
            _repositorio = new ProdutosRepositorio();

            Produto produto = _repositorio.Produtos.FirstOrDefault(p => p.ProdutoId == produtoId);

            if (produto != null)
            {
                carrinho.AdicionarItem(produto,quantidade);
            }

            return RedirectToAction("Index", new {returnUrl});
        }
Esempio n. 13
0
        public void AdcionarProdutoExistenteAoCarrinho()
        {
            // Arrange - Criação dos Produtos
            Produto _produto1 = new Produto
            {
                Categoria = "Categoria 1",
                Descricao = "Produto 1",
                IdProduto = 1,
                Nome = "Produto Teste 1",
                Preco = 1.0m
            };

            Produto _produto2 = new Produto
            {
                Categoria = "Categoria 1",
                Descricao = "Produto 1",
                IdProduto = 2,
                Nome = "Produto Teste 1",
                Preco = 2.0m
            };

            Produto _produto3 = new Produto
            {
                Categoria = "Categoria 3",
                Descricao = "Produto 3",
                IdProduto = 3,
                Nome = "Produto Teste 3",
                Preco = 3.0m
            };

            // Arrange
            Carrinho carrinho = new Carrinho();

            carrinho.AdicionarItem(_produto1, 1);

            carrinho.AdicionarItem(_produto2, 1);

            carrinho.AdicionarItem(_produto1, 10);

            // Action
            ItemCarrinho[] itens = carrinho
                                        .ItensCarrinho
                                        .OrderBy(c => c.Produto.IdProduto)
                                        .ToArray();

            //Assert
            Assert.AreEqual(itens.Length, 2);

            Assert.AreEqual(itens[0].Quantidade, 11);
        }
        public RedirectToRouteResult Remover(Carrinho carrinho, int produtoId, string returnUrl)
        {
            _repositorio = new ProdutosRepositorio();

            Produto produto = _repositorio.Produtos
                .FirstOrDefault(p => p.ProdutoId == produtoId);

            if (produto != null)
            {
                carrinho.RemevorItem(produto);
            }

            return RedirectToAction("Index", new { returnUrl });
        }
        public void AdicionarItensAoCarrinho()
        {

            //Arrange - criação dos produtos
            Produto produto1 = new Produto
            {
                ProdutoId = 1,
                Nome = "Teste 1"
            };

            Produto produto2 = new Produto
            {
                ProdutoId = 2,
                Nome = "Teste 2"
            };

            Produto produto3 = new Produto
            {
                ProdutoId = 3,
                Nome = "Teste 3"
            };


            //Arrange

            Carrinho carrinho = new Carrinho();

            carrinho.AdicionarItem(produto1, 2);

            carrinho.AdicionarItem(produto2, 3);

            carrinho.AdicionarItem(produto3, 3);

            //Act
            ItemCarrinho[] itens = carrinho.ItensCarrinho.ToArray();

            //Assert


            Assert.AreEqual(itens.Length, 3);


            Assert.AreEqual(itens[0].Produto, produto1);


            Assert.AreEqual(itens[1].Produto, produto2);


        }
        public void Posso_Ver_O_Conteudo_Do_Carrinho()
        {
            //Arrange
            Carrinho carrinho = new Carrinho();

            CarrinhoController controller = new CarrinhoController();

            //Act
            CarrinhoViewModel resultado = (CarrinhoViewModel) controller.Index(carrinho, "minhaUrl").ViewData.Model;

            //Assert
            //AreSame (se são os mesmos)
            Assert.AreSame(resultado.Carrinho,carrinho);

            Assert.AreEqual(resultado.ReturnUrl,"minhaUrl");
        }
        public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
        {
            Carrinho carrinho = null;

            if(controllerContext.HttpContext.Session != null)
                carrinho = (Carrinho)controllerContext.HttpContext.Session[SessionKey];

            if (carrinho ==null)
            {
                carrinho = new Carrinho();

                if (controllerContext.HttpContext.Session != null)
                    controllerContext.HttpContext.Session[SessionKey] = carrinho;
            }

            return carrinho;
        }
        public void Adicionar_prod_Carrinho()
        {
            //Preparação (Arrange) e o estimulo (Act), das verificações.

            //Arrange
            Carrinho carrinho = new Carrinho();

            //A
            CarrinhoController controller = new CarrinhoController();

            //Act
            // RedirectToRouteResult result = controller.Adicionar(carrinho, 2, "minhaUrl");

            //Assert.AreEqual(result.RouteValues["action"], "Index");

            //Assert.AreEqual(result.RouteValues["returnUrl"], "minhaUrl");
        }
        public void Adiciono_Produto_No_Carrinho_Volta_Para_A_Categoria()
        {
            //preparação (Arrange) e o estímulo (Act) das verificações (Assert)

            //Arrange
            Carrinho carrinho = new Carrinho();

            CarrinhoController controller = new CarrinhoController();

            //Act
             //   RedirectToRouteResult result = controller.Adicionar(carrinho, 2, "minhaUrl");

            //Assert
             //   Assert.AreEqual(result.RouteValues["action"],"Index");

            //    Assert.AreEqual(result.RouteValues["returnUrl"],"minhaUrl");
        }
        public void Posso_Ver_O_Meu_Carrinho()
        {
            //Preparação (Arrange) e o estimulo (Act), das verificações.

            //Arrange
            Carrinho carrinho = new Carrinho();

            //A
            CarrinhoController controller = new CarrinhoController();

            //Act
            CarrinhoViewModel resultado = (CarrinhoViewModel)controller.Index(carrinho, "minhaUrl").ViewData.Model;

            //Assert
            Assert.AreSame(resultado.Carrinho, carrinho);

            Assert.AreEqual(resultado.ReturnUrl, "minhaUrl");
        }
        public void AdicionarProdutoExistenteParaCarrinho()
        {
            //Arrange - criação dos produtos
            Produto produto1 = new Produto()
            {
                ProdutoId = 1,
                Nome = "Teste 1"
            };

            Produto produto2 = new Produto()
            {
                ProdutoId = 2,
                Nome = "Teste 2"
            };

            //Produto produto3 = new Produto()
            //{
            //    ProdutoId = 3,
            //    Nome = "Teste 3"
            //};

            //Arrange
            Carrinho carrinho = new Carrinho();

            carrinho.AdicionarItem(produto1, 1);

            carrinho.AdicionarItem(produto2, 3);

            carrinho.AdicionarItem(produto1, 10);

            //Act - Agir
            ItemCarrinho[] resultado = carrinho.ItensCarrinho
                        .OrderBy(c => c.Produto.ProdutoId).ToArray();

            //Assert - (2 produtos adicionados testar igualdade)
            Assert.AreEqual(resultado.Length,2);

            //Assert - (Quantidade de produtos no produto 1)
            Assert.AreEqual(resultado[0].Quantidade, 11);

            Assert.AreEqual(resultado[1].Quantidade,3);
        }
 public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
 {
     //Obtenho o carrinho da sessão
     Carrinho carrinho = null;
     if (controllerContext.HttpContext.Session != null)
     {
         carrinho = (Carrinho)controllerContext.HttpContext.Session[SessionKey];
     }
     // Crio o carrinho se não tenho a sessao
     if (carrinho == null)
     {
         carrinho = new Carrinho();
         if (controllerContext.HttpContext.Session != null)
         {
             controllerContext.HttpContext.Session[SessionKey] = carrinho;
         }
     }
     // Returno o carrinho
     return carrinho;
 }
        public void AdicionarItensAoCarrinho()
        {

            // Arrange - Criação de Produtos
            Produto produto1 = new Produto();
            Produto produto2 = new Produto();
            Produto produto3 = new Produto();
            
            produto1.ProdutoId = 1;
            produto1.Nome = "Teste 1";
            produto1.Preco = 10.00m;

            produto2.ProdutoId = 2;
            produto2.Nome = "Teste 2";
            produto2.Preco = 15.00m;

            produto3.ProdutoId = 3;
            produto3.Nome = "Teste 3";
            produto3.Preco = 12.00m;
        
            // Arrange Criação de Carrinho

            Carrinho carrinho = new Carrinho();

            carrinho.AdicionarItem(produto1, 2);
            carrinho.AdicionarItem(produto2, 3);
            carrinho.AdicionarItem(produto3, 5);

            //Act
            ItemCarrinho[] itens = carrinho.ItensCarrinho.ToArray(); // obs: ToArray() só é válido quando é Referenciado using System.Linq;

            //Assert
            
            Assert.AreEqual(itens.Length, 3); // Tem que ser Verdadeiro porque tenho dois produtos
            Assert.AreEqual(itens[0].Produto, produto1); // Verdadeiro pq foi o primeiro elemento que adicionei 
            Assert.AreEqual(itens[1].Produto, produto2); // Tem que ser verdadeiro
            Assert.AreEqual(itens.Sum(p => p.Produto.Preco), 37m); // Tem que ser verdadeiro

        
        }
 public PartialViewResult Resumo(Carrinho carrinho)
 {
     return PartialView(carrinho);
 }
        public void CalcularValorTotal()
        {
            //Arrange - criação dos produtos
            Produto produto1 = new Produto()
            {
                ProdutoId = 1,
                Nome = "Teste 1",
                Preco = 100M
            };

            Produto produto2 = new Produto()
            {
                ProdutoId = 2,
                Nome = "Teste 2",
                Preco = 50M
            };

            //Arrange
            Carrinho carrinho = new Carrinho();

            carrinho.AdicionarItem(produto1, 1);

            carrinho.AdicionarItem(produto2, 1);

            carrinho.AdicionarItem(produto1, 3);

            //Act
            decimal resultado = carrinho.ObterValorTotal();

            //Assert
            Assert.AreEqual(resultado, 450M);
        }
        public void RemoverItensCarrinho()
        {
            //Arrange - criação dos produtos
            Produto produto1 = new Produto()
            {
                ProdutoId = 1,
                Nome = "Teste 1"
            };

            Produto produto2 = new Produto()
            {
                ProdutoId = 2,
                Nome = "Teste 2"
            };

            Produto produto3 = new Produto()
            {
                ProdutoId = 3,
                Nome = "Teste 3"
            };

            //Arrange
            Carrinho carrinho = new Carrinho();

            carrinho.AdicionarItem(produto1, 1);

            carrinho.AdicionarItem(produto2, 3);

            carrinho.AdicionarItem(produto3, 5);

            carrinho.AdicionarItem(produto2, 1);

            //Act
            carrinho.RemoverItem(produto2);

            //Assert - Quantidade de produtos após a remoção
            Assert.AreEqual(carrinho.ItensCarrinho.Where(c => c.Produto == produto2).Count(),0);

            //Assert - Quantos itens tem no carrinho depois de removido um produto
            Assert.AreEqual(carrinho.ItensCarrinho.Count(),2);
        }
        public void LimparItensCarrinho()
        {
            Produto produto1 = new Produto
            {
                ProdutoId = 1,
                Nome = "Teste 1",
                Preco = 100M
            };

            Produto produto2 = new Produto
            {
                ProdutoId = 2,
                Nome = "TEste2",
                Preco = 50M
            };

            Carrinho carrinho = new Carrinho();

            carrinho.AdicionarItem(produto1, 1);
            carrinho.AdicionarItem(produto2, 1);

            carrinho.LimpparCarrinho();

            Assert.AreEqual(carrinho.ItensCarrinho.Count(), 0);
        }
        public void LimparItensCarrinho()
        {
            //Arrange - criação dos produtos
            Produto produto1 = new Produto()
            {
                ProdutoId = 1,
                Nome = "Teste 1",
                Preco = 100M
            };

            Produto produto2 = new Produto()
            {
                ProdutoId = 2,
                Nome = "Teste 2",
                Preco = 50M
            };

            //Arrange
            Carrinho carrinho = new Carrinho();

            carrinho.AdicionarItem(produto1, 1);

            carrinho.AdicionarItem(produto2, 1);

            //Act
            carrinho.LimparCarrinho();

            //Assert
            Assert.AreEqual(carrinho.ItensCarrinho.Count(),0);
        }
        public void CalcularValorTotal()
        {
            Produto produto1 = new Produto
            {
                ProdutoId = 1,
                Nome = "Teste 1",
                Preco = 100M
            };

            Produto produto2 = new Produto
            {
                ProdutoId = 2,
                Nome = "TEste2",
                Preco = 50M
            };

            Carrinho carrinho = new Carrinho();

            carrinho.AdicionarItem(produto1, 1);
            carrinho.AdicionarItem(produto2, 1);
            carrinho.AdicionarItem(produto1, 3);

            decimal resultado = carrinho.ObterValorTotal();

            Assert.AreEqual(resultado, 450M);
        }
        public void RemoverItensCarrinho()
        {
            Produto produto1 = new Produto
            {
                ProdutoId = 1,
                Nome = "Teste 1"
            };

            Produto produto2 = new Produto
            {
                ProdutoId = 2,
                Nome = "TEste2"
            };

            Carrinho carrinho = new Carrinho();

            carrinho.AdicionarItem(produto1, 1);
            carrinho.AdicionarItem(produto2, 3);
            carrinho.AdicionarItem(produto1, 5);
            carrinho.AdicionarItem(produto2, 1);

            carrinho.RemoverItem(produto2);

            Assert.AreEqual(carrinho.ItensCarrinho.Where(c => c.Produto == produto2).Count() , 0);
            Assert.AreEqual(carrinho.ItensCarrinho.Count(), 1);
        }