public void RemoveTag_When_ModelState_Invalid() { // arrange var destinationServiceMock = new Mock <IDestinationService>(MockBehavior.Strict); var tagServiceMock = new Mock <ITagService>(MockBehavior.Strict); var tempDataMock = new Mock <ITempDataDictionary>(); var controller = new DestinationController(destinationServiceMock.Object, tagServiceMock.Object) { TempData = tempDataMock.Object }; int destinationId = 1; int tagId = 2; var model = new RemoveTagRequestModel { DestinationId = destinationId, TagId = tagId }; destinationServiceMock.Setup(s => s.ExistsAsync(destinationId)).ReturnsAsync(true); tagServiceMock.Setup(s => s.ExistsAsync(tagId)).ReturnsAsync(true); controller.ModelState.AddModelError(string.Empty, "Some error"); // act var result = controller.RemoveTag(model); // assert Assert.IsAssignableFrom <RedirectToActionResult>(result.Result); var actionName = (result.Result as RedirectToActionResult)?.ActionName; Assert.True(actionName != null && actionName.Equals(nameof(DestinationController.All), StringComparison.CurrentCultureIgnoreCase)); destinationServiceMock.VerifyAll(); tagServiceMock.VerifyAll(); }
public void RemoveTag_On_Success() { // arrange var destinationServiceMock = new Mock <IDestinationService>(MockBehavior.Strict); var tagServiceMock = new Mock <ITagService>(MockBehavior.Strict); var tempDataMock = new Mock <ITempDataDictionary>(); var controller = new DestinationController(destinationServiceMock.Object, tagServiceMock.Object) { TempData = tempDataMock.Object }; int destinationId = 1; int tagId = 2; var model = new RemoveTagRequestModel { DestinationId = destinationId, TagId = tagId }; destinationServiceMock.Setup(s => s.ExistsAsync(destinationId)).ReturnsAsync(true); destinationServiceMock.Setup(s => s.RemoveTagAsync(destinationId, tagId)).ReturnsAsync(true); tagServiceMock.Setup(s => s.ExistsAsync(tagId)).ReturnsAsync(true); // act var result = controller.RemoveTag(model); // assert Assert.IsAssignableFrom <RedirectToActionResult>(result.Result); var castedResult = result.Result as RedirectToActionResult; var actionName = castedResult?.ActionName; Assert.True(actionName != null && actionName.Equals(nameof(DestinationController.Details), StringComparison.CurrentCultureIgnoreCase)); Assert.True(castedResult.RouteValues.Count == 1); Assert.True(castedResult.RouteValues.ContainsKey("id")); Assert.True(Convert.ToInt32(castedResult.RouteValues["id"]) == destinationId); destinationServiceMock.VerifyAll(); tagServiceMock.VerifyAll(); }