public void Cannot_Checkout_Empty_Cart() { // Arrange - create a mock order processor Mock<IOrderProcessor> mock = new Mock<IOrderProcessor>(); // Arrange - create an empty cart Cart cart = new Cart(); // Arrange - create shipping details ShippingDetails shippingDetails = new ShippingDetails(); // Arrange - create an instance of the controller CartController target = new CartController(null, mock.Object); // Act var result = target.Checkout(cart, shippingDetails); // Assert check that the order hasn't been passed on to the processor mock.Verify(m => m.ProcessOrder(It.IsAny<Cart>(), It.IsAny<ShippingDetails>()), Times.Never); // Assert - check that the method is returning the default view Assert.AreEqual("", result.ViewName); // Assert - check that we are passing an invalid model to the view Assert.AreEqual(false, result.ViewData.ModelState.IsValid); }
public void ProcessOrder(Cart cart, ShippingDetails shippingInfo) { MailToAddress = shippingInfo.Email; using (var smtpClient = new SmtpClient()) { smtpClient.EnableSsl = emailSettings.UseSsl; smtpClient.Host = emailSettings.ServerName; smtpClient.Port = emailSettings.ServerPort; smtpClient.UseDefaultCredentials = false; smtpClient.Credentials = new NetworkCredential(emailSettings.Username, emailSettings.Password); if (emailSettings.WriteAsFile) { smtpClient.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory; smtpClient.PickupDirectoryLocation = emailSettings.FileLocation; smtpClient.EnableSsl = false; } StringBuilder body = new StringBuilder() .AppendLine("Złozono nowe zamównie") .AppendLine("---") .AppendLine("Przedmioty:"); foreach (var line in cart.Lines) { var subtotal = line.Product.Price * line.Quantity; body.AppendFormat("{0} x {1} (suma: {2:c}", line.Quantity, line.Product.Name, subtotal); } body.AppendFormat("Price zamówienia: {0:c}", cart.ComputeTotalValue()) .AppendLine("---") .AppendLine("Wysyłka do:") .AppendLine(shippingInfo.Name) .AppendLine(shippingInfo.Line1) .AppendLine(shippingInfo.City) .AppendLine(shippingInfo.State ?? "") .AppendLine(shippingInfo.Country) .AppendLine(shippingInfo.Zip); MailMessage mailMessage = new MailMessage( emailSettings.MailFromAddress, //From shippingInfo.Email, //To "RAbot.pl Złozono nowe zamówienie!", //Subject body.ToString()); //Body if (emailSettings.WriteAsFile) { mailMessage.BodyEncoding = Encoding.UTF8; } smtpClient.Send(mailMessage); } }
public void ProcessOrder(Cart cart, ShippingDetails shippingInfo) { using (var smtpClient = new SmtpClient()) { smtpClient.EnableSsl = emailSettings.UseSsl; smtpClient.Host = emailSettings.ServerName; smtpClient.Port = emailSettings.ServerPort; smtpClient.UseDefaultCredentials = false; smtpClient.Credentials = new NetworkCredential(emailSettings.Username, emailSettings.Password); if (emailSettings.WriteAsFile) { smtpClient.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory; smtpClient.PickupDirectoryLocation = emailSettings.FileLocation; smtpClient.EnableSsl = false; } StringBuilder body = new StringBuilder() .AppendLine("A new order has been submitted") .AppendLine("---").AppendLine("Items:"); foreach (var line in cart.Lines) { var subtotal = line.Product.Price * line.Quantity; body.AppendFormat("{0} x {1} (subtotal: {2:c}", line.Quantity, line.Product.Name, subtotal); } body.AppendFormat("Total order value: {0:c}", cart.ComputeTotalValue()) .AppendLine("---") .AppendLine("Ship to:").AppendLine(shippingInfo.Name) .AppendLine(shippingInfo.Line1) .AppendLine(shippingInfo.Line2 ?? "") .AppendLine(shippingInfo.Line3 ?? "") .AppendLine(shippingInfo.City) .AppendLine(shippingInfo.State ?? "") .AppendLine(shippingInfo.Country) .AppendLine(shippingInfo.Zip) .AppendLine("---").AppendFormat("Gift wrap: {0}", shippingInfo.GiftWrap ? "Yes" : "No"); MailMessage mailMessage = new MailMessage( emailSettings.MailFromAddress, // From emailSettings.MailToAddress, // To "New order submitted!", // Subject body.ToString()); // Body if (emailSettings.WriteAsFile) { mailMessage.BodyEncoding = Encoding.ASCII; } smtpClient.Send(mailMessage); } }
public void Cannot_Checkout_Empty_Cart() { var mock = new Mock<IOrderProcessor>(); var cart = new Cart(); var shippingDetails = new ShippingDetails(); var target = new CartController(null, mock.Object); ViewResult result = target.Checkout(cart, shippingDetails); mock.Verify(m => m.ProcessOrder(It.IsAny<Cart>(), It.IsAny<ShippingDetails>()), Times.Never()); Assert.AreEqual("", result.ViewName); Assert.AreEqual(false, result.ViewData.ModelState.IsValid); }
public ViewResult Checkout(Cart cart, ShippingDetails shippingDetails) { if (!cart.Lines.Any()) { ModelState.AddModelError("", "Sorry, your cart is empty"); } if (ModelState.IsValid) { orderProcessor.ProcessOrder(cart, shippingDetails); cart.Clear(); return View("Completed"); } return View(shippingDetails); }
public ViewResult Checkout(Cart cart, ShippingDetails shippingDetails) { if (!cart.Lines.Any()) { ModelState.AddModelError("","Извините, ваша корзина пустая!"); } if(ModelState.IsValid) { orderProcessor.ProcessOrder(cart,shippingDetails); cart.Clear(); return View("Completed"); } return View(shippingDetails); }
public void ProcessEmail(CollectionCart cartCollection, ShippingDetails details) { EmailProc returnValue = new EmailProc(); StringBuilder builderCart = new StringBuilder(); foreach (var prod in cartCollection.GetLines()) { builderCart.AppendLine(@"<li style='list-style-position:inside;list-style-type:square; margin-left:50px; '>"); builderCart.AppendLine(prod.Product.Name + " " + prod.Product.Price); builderCart.AppendLine("</li>"); } string full_Name = details.FirstName + "" + details.LastName; string emailText=String.Format(Resources.Domain.Resources.EmailText, full_Name, builderCart.ToString(),cartCollection.TotalPrice(), details.Country, details.City, details.House, details.Telephone); returnValue.EmailText = emailText; returnValue.EmailAdd = details.EMail; SendEmail(returnValue); }
public ViewResult Checkout(Cart cart, ShippingDetails shippingDetails) { if (cart.Lines.Count() == 0) { ModelState.AddModelError("", "Twój koszyk jest pusty :("); } if (ModelState.IsValid) { orderProcessor.ProcessOrder(cart, shippingDetails); cart.Clear(); return View("Completed"); } else { return View(shippingDetails); } }
public ViewResult Checkout(Cart cart, ShippingDetails shippingDetails) { if (cart.Lines.Count() == 0) { ModelState.AddModelError("", "Извините, ваша корзина пуста!"); } if (ModelState.IsValid) { cart.Clear(); return View("OrderCompleted"); } else { return View(shippingDetails); } }
public void ProcessOrder(Cart cart, ShippingDetails shippingInfo) { using (var smtpClient = new SmtpClient()) { smtpClient.EnableSsl = emailSettings.UseSsl; smtpClient.Host = emailSettings.SeverName; smtpClient.UseDefaultCredentials = false; smtpClient.Credentials = new NetworkCredential(emailSettings.Username, emailSettings.Password); var body = new StringBuilder().AppendLine("Новый заказ оформлен") .AppendLine("---") .AppendLine("Товары: "); foreach (var line in cart.Lines) { var subtotal = line.Product.Price*line.Quantity; body.AppendFormat("{0} x {1} (Общая стоимость: {2:c})", line.Quantity, line.Product.Name, subtotal ); } body.AppendFormat("Cумма: {0:c}", cart.ComputeTotalValue()) .AppendLine("--") .AppendLine("Ship to:") .AppendLine(shippingInfo.Name) .AppendLine(shippingInfo.Line1) .AppendLine(shippingInfo.City) .AppendLine(shippingInfo.Country) .AppendLine(shippingInfo.Zip) .AppendLine("--"); var mailMessage = new MailMessage ( emailSettings.MailFromAddress, emailSettings.MailToAddress, "Новый заказ оформлен", body.ToString() ); smtpClient.Send(mailMessage); } }
public void Cannot_Checkout_Empty_Cart() { // Организация - создание пустой корзины Cart cart = new Cart(); // Организация - создание деталей о доставке ShippingDetails shippingDetails = new ShippingDetails(); // Организация - создание контроллера CartController controller = new CartController(null); // Действие ViewResult result = controller.Checkout(cart, shippingDetails); // Утверждение — проверка, что метод вернул стандартное представление Assert.AreEqual("", result.ViewName); // Утверждение - проверка, что-представлению передана неверная модель Assert.AreEqual(false, result.ViewData.ModelState.IsValid); }
public ActionResult Checkout(CollectionCart cartCollection, ShippingDetails datails) { opderProc.ProcessEmail(cartCollection, datails); cartCollection.Clear(); return View("Completed"); }