Example #1
0
        public void Cannot_Check_Out_If_Shipping_Details_Are_Invalid()
        {
            // Arrange: Given a user has a non-empty cart
            var cart = new Cart();
            cart.AddItem(new Product(), 1);

            // Arrange: ... but the shipping details are invalid
            var cartController = new CartController(null, null);
            cartController.ModelState.AddModelError("any key", "any error");

            // Act: When the user tries to check out
            var result = cartController.CheckOut(cart, new ShippingDetails());

            // Assert
            result.ShouldBeDefaultView();
        }
Example #2
0
        public void Can_Check_Out_And_Submit_Order()
        {
            var mockOrderSubmitter = new Mock<IOrderSubmitter>();

            // Arrange: Given a user has a non-empty cart & no validation errors
            var cart = new Cart();
            cart.AddItem(new Product(), 1);
            var shippingDetails = new ShippingDetails();

            // Act: When the user tries to check out
            var cartController = new CartController(null, mockOrderSubmitter.Object);
            var result = cartController.CheckOut(cart, shippingDetails);

            // Assert: Order goes to the order submitter & user sees "Completed" view
            mockOrderSubmitter.Verify(x => x.SubmitOrder(cart, shippingDetails));
            result.ShouldBeView("Completed");
        }