public void UpdateDeliveryPost_CorrectDelivery_ReturnsCorrectRedirectToRouteResult() { // Arrange Mock <IDeliveryProvider> deliveryProviderMock = new Mock <IDeliveryProvider>(); Mock <IDeliveryHandler> deliveryHandlerMock = new Mock <IDeliveryHandler>(); deliveryHandlerMock.Setup(x => x.Update(It.IsAny <Delivery>())) .Returns(true); Mock <IDeliveryValidator> deliveryValidatorMock = new Mock <IDeliveryValidator>(); deliveryValidatorMock.Setup(x => x.CanUpdateDelivery(It.IsAny <Delivery>())) .Returns(new List <KeyValuePair <string, string> >()); DeliveryController controller = new DeliveryController(deliveryProviderMock.Object, deliveryHandlerMock.Object, deliveryValidatorMock.Object); // Act RedirectToRouteResult result = controller.UpdateDeliveryPost(this.deliveries[0]) as RedirectToRouteResult; // Assert Assert.IsNotNull(result); Assert.AreEqual("GetDeliveriesList", result.RouteValues.FirstOrDefault().Value); }
public void UpdateDeliveryPost_NullDelivery_ThrowsException() { // Arrange Mock <IDeliveryProvider> deliveryProviderMock = new Mock <IDeliveryProvider>(); Mock <IDeliveryHandler> deliveryHandlerMock = new Mock <IDeliveryHandler>(); Mock <IDeliveryValidator> deliveryValidatorMock = new Mock <IDeliveryValidator>(); deliveryValidatorMock.Setup(x => x.CanAddDelivery(null)) .Throws <ArgumentNullException>(); DeliveryController controller = new DeliveryController(deliveryProviderMock.Object, deliveryHandlerMock.Object, deliveryValidatorMock.Object); // Act ViewResult result = controller.UpdateDeliveryPost(null) as ViewResult; // Assert Assert.IsNotNull(result); Assert.IsFalse(controller.ModelState.IsValid); Assert.AreEqual(1, controller.ModelState.Keys.Count); Assert.AreEqual("", controller.ModelState.Keys.FirstOrDefault()); Assert.AreEqual("UpdateDelivery", result.ViewName); }