Example #1
0
        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));
        }
Example #2
0
 // 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;
     }
 }
Example #3
0
        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);
        }
Example #4
0
        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));
        }
Example #5
0
        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));
        }
Example #6
0
        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);
        }
Example #7
0
        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);
        }
Example #8
0
        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);
        }
Example #9
0
        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);
        }