public void CheckOut_InvalidModelOfShoppingCartViewModel() { using (var homeController = new HomeController(MockData.MoqLogger(), MockData.MoqShopContext(), MockData.MoqEmailSender(), MockData.MoqMyLogger())) { var user = new User { UserName = "******", Email = "*****@*****.**", Phone = "+48 605 337 334" }; var billingAddress = new Address { Country = "Poland", City = "Warsaw", ZipCode = "01-111", Street = "MarszaĆkowska 123A" }; var scvm = new ShoppingCartViewModel() { Order = new Order { UserId = 2, Payment = true, Draft = false, Date = new DateTime(2021, 2, 27, 9, 10, 23), Status = null, TotalPrice = 0.00, BillingAddress = billingAddress, ShippingAddress = billingAddress, User = user }, Basket = MockData.GetRandomMoqOrderedBooksList().ToList(), ShippingEqualBilling = true }; homeController.ModelState.AddModelError(string.Empty, "Test Error"); Assert.False(homeController.ModelState.IsValid, "Model state has remained valid."); // Test for BadRequest being returned var result = homeController.CheckOut(scvm) as ViewResult; var model = result?.Model; Assert.Equal("ShoppingCart", result?.ViewName); Assert.True(model.IsSameOrEqualTo(scvm)); } }
public void CheckOut_ValidModelOfShoppingCartViewModelDifferentAddresses() { using (var homeController = new HomeController(MockData.MoqLogger(), MockData.MoqShopContext(), MockData.MoqEmailSender(), MockData.MoqMyLogger())) { var user = new User { UserName = "******", Email = "*****@*****.**", Phone = "+48 605 337 334" }; var billingAddress = new Address { Country = "Poland", City = "Warsaw", ZipCode = "01-111", Street = "MarszaĆkowska 123A" }; var shippingAddress = new Address { Country = "Poland", City = "Cracow", ZipCode = "03-456", Street = "Spacerowa 31" }; var scvm = new ShoppingCartViewModel() { Order = new Order { UserId = 2, Payment = true, Draft = false, Date = new DateTime(2021, 2, 27, 9, 10, 23), Status = null, TotalPrice = 0.00, BillingAddress = billingAddress, ShippingAddress = shippingAddress, User = user }, Basket = MockData.GetRandomMoqOrderedBooksList().ToList(), ShippingEqualBilling = false }; double totalPrice = 0; foreach (var book in scvm.Basket) { totalPrice += book.Price * book.Quantity; } totalPrice = Math.Round(totalPrice, 2, MidpointRounding.AwayFromZero); var controllerContext = new ControllerContext() { HttpContext = new DefaultHttpContext() { Session = new MockHttpSession() } }; homeController.ControllerContext = controllerContext; homeController.HttpContext.Session.Set("userId", "8befe3cc-024b-4084-ab38-8f5c7663cd1d"); var action = homeController.CheckOut(scvm) as RedirectToActionResult; Assert.Equal("Payment", action?.ActionName); Assert.Equal("5", action?.RouteValues["orderId"]?.ToString()); Assert.Equal(totalPrice.ToString(CultureInfo.InvariantCulture), action?.RouteValues["totalPrice"]?.ToString()); } }