public async Task Index_ShouldReturnFilteredUsersWithSearchTermNotNull() { // Arrange Mock <IAdminService> adminService = new Mock <IAdminService>(); adminService .Setup(service => service.GetAllUsers(1, SearchTerm)) .Returns(new List <UserBaseServiceModel>() { new UserBaseServiceModel() { Id = FirstUserId, Email = FirstUserEmail, Username = FirstUserUsername }, }); UsersController controller = new UsersController(adminService.Object, null, null); // Act IActionResult actionResult = await controller.Index(1, SearchTerm); // Assert actionResult.Should().BeOfType <ViewResult>(); object model = actionResult.As <ViewResult>().Model; model.Should().BeOfType <UsersPaginationModel>(); UsersPaginationModel returnedModel = model.As <UsersPaginationModel>(); returnedModel.Users.Should().Match(u => u.As <List <UserBaseServiceModel> >().Count() == 1); returnedModel.Users.First().Should().Match(u => u.As <UserBaseServiceModel>().Id == FirstUserId); returnedModel.Users.First().Should().Match(u => u.As <UserBaseServiceModel>().Username.ToLower().Contains(SearchTerm.ToLower())); returnedModel.Search.Should().Be(SearchTerm); }
public async Task <IActionResult> Index(int page = 1, string search = null) { var viewModel = new UsersPaginationModel(); viewModel.CurrentPage = page; viewModel.Search = search; int countUsers = await this.adminService.CountUsers(viewModel.Search); viewModel.TotalPages = (int)Math.Ceiling(countUsers / (double)GlobalConstants.PageSize); viewModel.Users = this.adminService.GetAllUsers(viewModel.CurrentPage, viewModel.Search); return(View(viewModel)); }