示例#1
0
        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);
        }