public async Task Edit_POST_thows_exceptions_not_of_type_IdMismatch() { // Arrange var payee = new PayeeCrudVm { NavId = 1 }; _mockService.Setup(m => m.UpdatePayeeAsync(It.IsAny <PayeeCrudVm>())).ThrowsAsync(new Exception()); SetupControllerRouteData(_controller, "id", 1); // Act & Assert await Assert.ThrowsExceptionAsync <Exception>(() => _controller.Edit(payee)); }
// TODO: Add tests for this method public async Task <int> UpdatePayeeAsync(PayeeCrudVm payeeVm) { try { return(await UpdatePayeeAsync(payeeVm.NavId, payeeVm.Name, payeeVm.EffectiveFrom, payeeVm.CategoryName)); } catch (ModelValidationException ex) { if (ex.PropertyName == nameof(Payee.BudgetCategoryID)) { throw new ModelValidationException(nameof(payeeVm.CategoryName), payeeVm.CategoryName, $"There is no Budget Category named '{payeeVm.CategoryName}'"); } throw; } }
public async Task Create_POST_calls_AddPayeeAsync_and_redirects_to_index() { // Arrange var payee = new PayeeCrudVm(); // Act var result = await _controller.Create(payee); var redirectResult = result as RedirectToActionResult; // Assert _mockService.Verify(m => m.AddPayeeAsync(payee), Times.Once()); Assert.IsNotNull(redirectResult); Assert.AreEqual("Index", redirectResult.ActionName); }
public async Task Edit_POST_returns_NotFound_when_IdMismatchException_thrown() { // Arrange _mockService.Setup(m => m.UpdatePayeeAsync(It.IsAny <PayeeCrudVm>())).ThrowsAsync(new IdMismatchException()); var payee = new PayeeCrudVm { NavId = 1 }; SetupControllerRouteData(_controller, "id", 1); // Act var result = await _controller.Edit(payee); // Assert Assert.IsInstanceOfType(result, typeof(NotFoundResult)); }
public async Task Edit_POST_returns_NotFound_when_ConcurrencyException_thrown_and_payee_does_not_exist() { // Arrange var payee = new PayeeCrudVm { NavId = 1 }; _mockService.Setup(m => m.UpdatePayeeAsync(It.IsAny <PayeeCrudVm>())).ThrowsAsync(new ConcurrencyException()); _mockService.Setup(m => m.PayeeExists(It.IsAny <int>())).Returns(false); SetupControllerRouteData(_controller, "id", 1); // Act var result = await _controller.Edit(payee); // Assert Assert.IsInstanceOfType(result, typeof(NotFoundResult)); }
public async Task Edit_POST_calls_UpdatePayeeAsync_and_redirects_to_index() { // Arrange var payee = new PayeeCrudVm { NavId = 1 }; SetupControllerRouteData(_controller, "id", 1); // Act var result = await _controller.Edit(payee); var redirectResult = result as RedirectToActionResult; // Assert _mockService.Verify(m => m.UpdatePayeeAsync(payee), Times.Once()); Assert.IsNotNull(redirectResult); Assert.AreEqual("Index", redirectResult.ActionName); }
public async Task Create_POST_returns_view_with_payee_when_ModelValidationException_thrown() { // Arrange var payee = new PayeeCrudVm(); _mockService.Setup(m => m.AddPayeeAsync(It.IsAny <PayeeCrudVm>())) .ThrowsAsync(new ModelValidationException()); // Act var result = await _controller.Create(payee); var viewResult = result as ViewResult; var model = viewResult.Model as PayeeCrudVm; // Assert Assert.IsNotNull(viewResult); Assert.AreEqual("Create", viewResult.ViewName); Assert.AreSame(payee, model); }
public async Task Create_POST_adds_modelstate_error_when_ModelValidationException_thrown() { // Arrange var payee = new PayeeCrudVm { Name = "test" }; _mockService.Setup(m => m.AddPayeeAsync(It.IsAny <PayeeCrudVm>())).ThrowsAsync(new ModelValidationException()); // Act var result = await _controller.Create(payee); var viewResult = result as ViewResult; var model = viewResult.Model as PayeeCrudVm; // Assert Assert.AreEqual(1, _controller.ModelState.ErrorCount); Assert.IsNotNull(viewResult); Assert.AreEqual("Create", viewResult.ViewName); Assert.AreSame(payee, model); }
public async Task Edit_POST_returns_payee_to_view_when_ModelValidationException_thrown() { // Arrange var payee = new PayeeCrudVm { NavId = 1 }; _mockService.Setup(m => m.UpdatePayeeAsync(It.IsAny <PayeeCrudVm>())) .ThrowsAsync(new ModelValidationException()); SetupControllerRouteData(_controller, "id", 1); // Act var result = await _controller.Edit(payee); var viewResult = result as ViewResult; var model = viewResult.Model as PayeeCrudVm; // Assert Assert.IsNotNull(viewResult); Assert.AreEqual("Edit", viewResult.ViewName); Assert.AreSame(payee, model); }