public void CheckoutTest_CannotCheckoutEmptyCart() { var mock = new Mock<IOrderProcessor>(); var cart = new Cart(); var target = new CartController(null, mock.Object); //动作 ViewResult result = target.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 Cannot_Checkout_Empty_Cart() { Mock<IOrderProcessor> mock = new Mock<IOrderProcessor>(); Cart cart = new Cart(); ShippingDetails shippingDetails = new ShippingDetails(); CartController target = new CartController(null, mock.Object); ViewResult result = target.Checkout(cart, shippingDetails); //Assert 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 CheckoutTest_CannotCheckoutInvalidShippingDetails() { var mock = new Mock<IOrderProcessor>(); var cart = new Cart(); cart.AddItem(new Product(), 1); var target = new CartController(null, mock.Object); //准备--把一个错误添加到模型 target.ModelState.AddModelError("error", "error"); //动作--试图结算 ViewResult result = target.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 Cannot_Checkout_Invalid_ShippingDetails() { // Arrange - create a mock order processor Mock<IOrderProcessor> mock = new Mock<IOrderProcessor>(); // Arrange - create a cart with an item Cart cart = new Cart(); cart.AddItem(new Product(), 1); // Arrange - create an instance of the controller CartController target = new CartController(null, mock.Object); // Arrange - add an error to the model target.ModelState.AddModelError("error", "error"); // Act - try to checkout ViewResult result = target.Checkout(cart, new 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 I am passing an invalid model to the view Assert.AreEqual(false, result.ViewData.ModelState.IsValid); }
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 ViewResult 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 I am passing an invalid model to the view Assert.AreEqual(false, result.ViewData.ModelState.IsValid); }
public void Cannot_Checkout_Invalid_ShippingDetails() { //Arrange 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"); // Act ViewResult result = controller.Checkout(cart, new ShippingDetails()); // Assert 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 Can_Checkout_And_Submit_Order() { Mock<IOrderProcessor> mock = new Mock<IOrderProcessor>(); Cart cart = new Cart(); cart.AddItem(new Product(), 1); CartController target = new CartController(null, mock.Object); ViewResult result = target.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 Can_Checkout_And_Submit_Order() { // Arrange - create a mock order processor Mock<IOrderProcessor> mock = new Mock<IOrderProcessor>(); // Arrange - create a cart with an item Cart cart = new Cart(); cart.AddItem(new Product(), 1); // Arrange - create an instance of the controller CartController target = new CartController(null, mock.Object); // Act - try to checkout ViewResult result = target.Checkout(cart, new ShippingDetails()); // Assert - check that the order has been passed on to the processor mock.Verify(m => m.ProcessOrder(It.IsAny<Cart>(), It.IsAny<ShippingDetails>()), Times.Once()); // Assert - check that the method is returning the Completed view Assert.AreEqual("Completed", result.ViewName); // Assert - check that I am passing a valid model to the view Assert.AreEqual(true, result.ViewData.ModelState.IsValid); }
public void CheckoutTest_CannotCheckoutAndSubmitOrder() { var mock = new Mock<IOrderProcessor>(); var cart = new Cart(); cart.AddItem(new Product(), 1); var target = new CartController(null, mock.Object); //动作--试图结算 var result = target.Checkout(cart, new ShippingDetails()); //断言--检查,订单已经传递给处理器 mock.Verify(m => m.ProcessOrder(It.IsAny<Cart>(), It.IsAny<ShippingDetails>()), Times.Once); //断言--检查,该方法返回Completed视图 Assert.AreEqual("Completed", result.ViewName); //断言--检查,对视图传递一个有效的模型 Assert.AreEqual(true, result.ViewData.ModelState.IsValid); }