public void CannotCheckoutInvalidShippingDetails() { Mock<IOrderProcessor> mock = new Mock<IOrderProcessor>(); Cart cart = new Cart(); cart.AddItem(new Game(), 1); CartController controller = new CartController(null, mock.Object); controller.ModelState.AddModelError("error", "error"); ViewResult result = controller.Checkout(cart, new 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 void CanCheckoutAndSubmitOrder() { Mock<IOrderProcessor> mock = new Mock<IOrderProcessor>(); Cart cart = new Cart(); cart.AddItem(new Game(), 1); CartController controller = new CartController(null, mock.Object); ViewResult result = controller.Checkout(cart, new ShippingDetails()); mock.Verify(m => m.ProcessOrder(It.IsAny<Cart>(), It.IsAny<ShippingDetails>()), Times.Once()); Assert.AreEqual("Completed", result.ViewName); Assert.AreEqual(true, result.ViewData.ModelState.IsValid); }
public void CannotCheckoutEmptyCart() { Mock<IOrderProcessor> mock = new Mock<IOrderProcessor>(); Cart cart = new Cart(); ShippingDetails shippingDetails = new ShippingDetails(); CartController controller = new CartController(null, mock.Object); ViewResult result = controller.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); }