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);
        }
Beispiel #2
0
        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));
        }