Ejemplo n.º 1
0
        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));
            }
        }
Ejemplo n.º 2
0
        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());
            }
        }