public async Task Edit_POST_throws_exceptions_not_of_type_IdMismatch() { // Arrange var alias = new AliasCrudVm { NavId = 1 }; _mockService.Setup(m => m.UpdateAliasAsync(It.IsAny <int>(), It.IsAny <string>(), It.IsAny <string>())).ThrowsAsync(new Exception()); SetupControllerRouteData(_controller, "id", 1); // Act & Assert await Assert.ThrowsExceptionAsync <Exception>(() => _controller.Edit(alias)); }
public async Task Create_POST_calls_AddAliasAsync_and_redirects_to_Index() { // Arrange var alias = new AliasCrudVm(); // Act var result = await _controller.Create(alias); var redirectResult = result as RedirectToActionResult; // Assert _mockService.Verify(m => m.AddAliasAsync(alias.Name, alias.PayeeName), Times.Once()); Assert.AreEqual("Index", redirectResult.ActionName); }
public async Task Edit_POST_rethrows_ConcurrencyException_when_alias_exists() { // Arrange var alias = new AliasCrudVm { NavId = 1 }; _mockService.Setup(m => m.UpdateAliasAsync(It.IsAny <int>(), It.IsAny <string>(), It.IsAny <string>())).ThrowsAsync(new ConcurrencyException()); _mockService.Setup(m => m.AliasExists(It.IsAny <int>())).Returns(true); SetupControllerRouteData(_controller, "id", 1); // Act & Assert await Assert.ThrowsExceptionAsync <ConcurrencyException>(() => _controller.Edit(alias)); }
public async Task Create_POST_returns_to_create_view_when_ModelValidationException_thrown() { // Arrange var alias = new AliasCrudVm(); _mockService.Setup(m => m.AddAliasAsync(It.IsAny <string>(), It.IsAny <string>())).ThrowsAsync(new ModelValidationException()); // Act var result = await _controller.Create(alias); var viewResult = result as ViewResult; // Assert Assert.IsNotNull(viewResult); Assert.AreEqual("Create", viewResult.ViewName); }
public async Task Edit_POST_returns_NotFound_when_IdMismatchException_thrown() { // Arrange var alias = new AliasCrudVm { NavId = 1 }; _mockService.Setup(m => m.UpdateAliasAsync(It.IsAny <int>(), It.IsAny <string>(), It.IsAny <string>())).ThrowsAsync(new IdMismatchException()); SetupControllerRouteData(_controller, "id", 1); // Act var result = await _controller.Edit(alias); // Assert Assert.IsInstanceOfType(result, typeof(NotFoundResult)); }
public async Task Edit_POST_returns_NotFound_when_ConcurrencyException_thrown_and_alias_does_not_exist() { // Arrange var alias = new AliasCrudVm { NavId = 1 }; _mockService.Setup(m => m.UpdateAliasAsync(It.IsAny <int>(), It.IsAny <string>(), It.IsAny <string>())).ThrowsAsync(new ConcurrencyException()); _mockService.Setup(m => m.AliasExists(It.IsAny <int>())).Returns(false); SetupControllerRouteData(_controller, "id", 1); // Act var result = await _controller.Edit(alias); // Assert Assert.IsInstanceOfType(result, typeof(NotFoundResult)); }
public async Task Edit_POST_calls_UpdateAliasAsync_and_redirects_to_index() { // Arrange var alias = new AliasCrudVm { NavId = 1 }; SetupControllerRouteData(_controller, "id", 1); // Act var result = await _controller.Edit(alias); var redirectResult = result as RedirectToActionResult; // Assert _mockService.Verify(m => m.UpdateAliasAsync(1, alias.Name, alias.PayeeName), Times.Once()); Assert.IsNotNull(redirectResult); Assert.AreEqual("Index", redirectResult.ActionName); }
public async Task Create_POST_adds_modelstate_error_when_UniqueConstraintViolationException_thrown() { // Arrange var alias = new AliasCrudVm { NavId = 1 }; _mockService.Setup(m => m.AddAliasAsync(It.IsAny <string>(), It.IsAny <string>())).ThrowsAsync(new ModelValidationException()); // Act var result = await _controller.Create(alias); var viewResult = result as ViewResult; var model = viewResult.Model as AliasCrudVm; // Assert Assert.AreEqual(1, _controller.ModelState.ErrorCount); Assert.IsNotNull(viewResult); Assert.AreEqual("Create", viewResult.ViewName); Assert.AreEqual(alias.NavId, model.NavId); }
public async Task Edit_POST_adds_modelstate_error_when_ModelValidationException_thrown() { // Arrange var alias = new AliasCrudVm { NavId = 3 }; _mockService.Setup(m => m.UpdateAliasAsync(It.IsAny <int>(), It.IsAny <string>(), It.IsAny <string>())).ThrowsAsync(new ModelValidationException()); SetupControllerRouteData(_controller, "id", 3); // Act var result = await _controller.Edit(alias); var viewResult = result as ViewResult; var model = viewResult.Model as AliasCrudVm; // Assert Assert.AreEqual(1, _controller.ModelState.ErrorCount); Assert.IsNotNull(viewResult); Assert.AreEqual("Edit", viewResult.ViewName); Assert.AreEqual(alias.NavId, model.NavId); }
public async Task Edit_POST_returns_to_view_with_correct_model_when_ModelValidationException_thrown() { // Arrange var alias = new AliasCrudVm { NavId = 1 }; SetupControllerRouteData(_controller, "id", alias.NavId); _mockService.Setup(m => m.UpdateAliasAsync(It.IsAny <int>(), It.IsAny <string>(), It.IsAny <string>())) .ThrowsAsync(new ModelValidationException()); // Act var result = await _controller.Edit(alias); var viewResult = result as ViewResult; var model = viewResult.Model as AliasCrudVm; // Assert Assert.IsNotNull(viewResult); Assert.AreEqual("Edit", viewResult.ViewName); Assert.AreSame(alias, model); }