public async Task GetAllProjectPagedAsync_WhenRequestedWithPage_ReturnsAllProjectsPaged() { var pagedRequest = new PagedRequest() { Page = 1, PageSize = 2 }; var calls = 0; var pagedItems = ProjectsDbSet.ProjectBuilder().CreateMany <Project>(); var pagedItemsAfterMap = Fixture.CreateMany <ProjectDetailsDto>().ToList(); var pagedProjects = PagedResult <Project> .Paginate(pagedItems, 1, 2, 4, 8); MockFor <IProjectRepository>().Setup(e => e.GetAllPagedAsync(pagedRequest.Page, pagedRequest.PageSize)) .ReturnsAsync(pagedProjects); MockFor <IModelMapper <Project, ProjectDetailsDto> >().Setup(e => e.MapToModel(It.IsAny <Project>())) .Returns(() => pagedItemsAfterMap[calls]) .Callback(() => calls++); var response = await ClassUnderTest.GetAllProjectPagedAsync(pagedRequest); response.VerifyCorrectPagination(pagedProjects, pagedItemsAfterMap); }