public async Task TestGetManagersAsync()
        {
            var dbContext          = DbContextMocker.GetContext(nameof(this.TestGetManagersAsync));
            var managersRepository = new ManagersRepository(dbContext, AutoMapperConfiguration.ConfigureForWeb().CreateMapper());
            var managersService    = new ManagersService(managersRepository, null);
            var controller         = new ManagersController(managersService, AutoMapperConfiguration.ConfigureForWeb().CreateMapper())
            {
                ControllerContext = new ControllerContext
                {
                    HttpContext = new DefaultHttpContext(),
                },
            };
            var parameters = new ManagersPagingParameters()
            {
                PageNumber = 1,
                PageSize   = 1,
                MinId      = 0,
            };
            var response = await controller.GetManagers(parameters);

            var value = response.Value;

            Assert.Single(value);

            controller.ControllerContext = new ControllerContext
            {
                HttpContext = new DefaultHttpContext(),
            };
            parameters = new ManagersPagingParameters()
            {
                PageNumber = 1,
                PageSize   = 2,
                MinId      = 0,
            };
            response = await controller.GetManagers(parameters);

            value = response.Value;
            Assert.Equal(2, value.Count());
            controller.ControllerContext = new ControllerContext
            {
                HttpContext = new DefaultHttpContext(),
            };
            parameters = new ManagersPagingParameters()
            {
                PageNumber = 1,
                PageSize   = 2,
                MinId      = 2,
            };
            response = await controller.GetManagers(parameters);

            value = response.Value;
            Assert.Single(value);

            dbContext.Dispose();
        }
        public async Task GetManagers_WhenCalled_ReturnManagersFromDb()
        {
            var managerQuery = new ManagerQuery
            {
                PageNumber      = 1,
                PageSize        = 10,
                SortBy          = "name",
                IsSortAscending = true
            };

            var expectedManagers = new PaginatedList <Manager>
            {
                Pagination = new Pagination
                {
                    PageNumber = 1,
                    PageSize   = 10
                },
                Items = new List <Manager>()
                {
                    new Manager {
                        Id = 1
                    },
                    new Manager {
                        Id = 2
                    },
                    new Manager {
                        Id = 3
                    },
                }
            };

            _managerService.Setup(m => m.GetAsync(managerQuery)).ReturnsAsync(expectedManagers);

            var result = await _managersController.GetManagers(managerQuery);

            var okObjectResult      = result as OkObjectResult;
            var okObjectResultValue = okObjectResult.Value as PaginatedList <ManagerListDto>;

            Assert.That(result, Is.TypeOf <OkObjectResult>());

            Assert.That(okObjectResultValue, Is.Not.Null);
            Assert.That(okObjectResultValue.Pagination.PageNumber, Is.EqualTo(1));
            Assert.That(okObjectResultValue.Pagination.PageSize, Is.EqualTo(10));
            Assert.That(okObjectResultValue.Items.Count(), Is.EqualTo(3));
        }