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(); }
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); }