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