コード例 #1
0
        public async Task AddEditCategoryPost_ReturnsARedirectAndAddBrand_WhenCategoryIsValid()
        {
            // Arrange
            var category = new CategoryViewModel {
                Name = "Apple"
            };

            mockCategoryRepo.Setup(x => x.InsertAsync(It.IsAny <Category>())).Returns(Task.FromResult <Category>(new Category())).Verifiable();

            mockUOW.Setup(x => x.Repository <Category>()).Returns(mockCategoryRepo.Object);

            var controller = new CategoryController(mockUOW.Object);

            // Act
            var result = await controller.AddEditCategory(0, category);

            // Assert
            var redirectResult = Assert.IsType <RedirectToActionResult>(result);

            Assert.Null(redirectResult.ControllerName);
            Assert.Equal("Index", redirectResult.ActionName);
            mockCategoryRepo.Verify();
        }
コード例 #2
0
        public async Task AddEditCategoryPOST_ReturnsEmptyModelWithError_WhenModelStateInvalid()
        {
            // Arrange
            var category = new CategoryViewModel {
            };

            //mockBrandRepo.Setup(x => x.GetByIdAsync(It.IsAny<int?>())).ReturnsAsync(brand);

            mockUOW.Setup(x => x.Repository <Category>()).Returns(mockCategoryRepo.Object);

            var controller = new CategoryController(mockUOW.Object);

            controller.ModelState.AddModelError("Name", "Required");
            // Act
            var result = await controller.AddEditCategory(0, category);

            // Assert
            var viewResult = Assert.IsType <ViewResult>(result);
            var model      = Assert.IsAssignableFrom <CategoryViewModel>(viewResult.ViewData.Model);

            Assert.Null(model.Name);
            Assert.False(viewResult.ViewData.ModelState.IsValid);
        }