TestPager.java 6.86 KiB
package org.gitlab4j.api;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assumptions.assumeTrue;
import java.util.List;
import org.gitlab4j.api.models.Branch;
import org.gitlab4j.api.models.Commit;
import org.gitlab4j.api.models.Member;
import org.gitlab4j.api.models.Project;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.MethodOrderer;
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestMethodOrder;
import org.junit.jupiter.api.extension.ExtendWith;
/**
 * In order for these tests to run you must set the following properties in test-gitlab4j.properties
 * TEST_NAMESPACE
 * TEST_PROJECT_NAME
 * TEST_HOST_URL
 * TEST_PRIVATE_TOKEN
 * If any of the above are NULL, all tests in this class will be skipped.
 * NOTE: &FixMethodOrder(MethodSorters.NAME_ASCENDING) is very important to insure that the tests are in the correct order
@Tag("integration")
@ExtendWith(SetupIntegrationTestExtension.class)
@TestMethodOrder(MethodOrderer.MethodName.class)
public class TestPager extends AbstractIntegrationTest {
    private static GitLabApi gitLabApi;
    public TestPager() {
        super();
    @BeforeAll
    public static void setup() {
        // Must setup the connection to the GitLab test server
        gitLabApi = baseTestSetup();
    @BeforeEach
    public void beforeMethod() {
        assumeTrue(gitLabApi != null);
    @Test
    public void testProjectPager() throws GitLabApiException {
        Pager<Project> pager = gitLabApi.getProjectApi().getProjects(10);
        assertNotNull(pager);
        assertEquals(10, pager.getItemsPerPage());
        assertTrue(0 < pager.getTotalPages());
        assertTrue(0 < pager.getTotalItems());
        int itemNumber = 0;
        int pageIndex = 0;
        while (pager.hasNext() && pageIndex < 4) {
            List<Project> projects = pager.next();
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
pageIndex++; assertEquals(pageIndex, pager.getCurrentPage()); if (pageIndex < pager.getTotalPages()) assertEquals(10, projects.size()); for (Project project : projects) { itemNumber++; System.out.format("page=%d, item=%d, projectId=%d, projectName=%s%n", pageIndex, itemNumber, project.getId(), project.getName()); } } } @Test public void testMemberProjectPager() throws GitLabApiException { Pager<Project> pager = gitLabApi.getProjectApi().getMemberProjects(2); assertNotNull(pager); assertEquals(2, pager.getItemsPerPage()); assertTrue(0 < pager.getTotalPages()); assertTrue(0 < pager.getTotalItems()); int itemNumber = 0; int pageIndex = 0; while (pager.hasNext() && pageIndex < 10) { List<Project> projects = pager.next(); pageIndex++; assertEquals(pageIndex, pager.getCurrentPage()); if (pageIndex < pager.getTotalPages()) assertEquals(2, projects.size()); for (Project project : projects) { itemNumber++; System.out.format("page=%d, item=%d, projectId=%d, projectName=%s%n", pageIndex, itemNumber, project.getId(), project.getName()); } } } @Test public void testBranchesPager() throws GitLabApiException { Project project = gitLabApi.getProjectApi().getProject(TEST_NAMESPACE, TEST_PROJECT_NAME); assertNotNull(project); Pager<Branch> pager = gitLabApi.getRepositoryApi().getBranches(project.getId(), 2); assertNotNull(pager); assertEquals(2, pager.getItemsPerPage()); assertTrue(0 < pager.getTotalPages()); assertTrue(0 < pager.getTotalItems()); int itemNumber = 0; int pageIndex = 0; while (pager.hasNext() && pageIndex < 10) { List<Branch> branches = pager.next(); pageIndex++; assertEquals(pageIndex, pager.getCurrentPage()); if (pageIndex < pager.getTotalPages()) assertEquals(2, branches.size()); for (Branch branch : branches) { itemNumber++; System.out.format("page=%d, item=%d, branchName=%s, isMerged=%b%n", pageIndex, itemNumber, branch.getName(), branch.getMerged()); } }
141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
} @Test public void testMembersPager() throws GitLabApiException { Project project = gitLabApi.getProjectApi().getProject(TEST_NAMESPACE, TEST_PROJECT_NAME); assertNotNull(project); Pager<Member> pager = gitLabApi.getProjectApi().getMembers(project.getId(), 2); assertNotNull(pager); assertEquals(2, pager.getItemsPerPage()); assertTrue(0 < pager.getTotalPages()); assertTrue(0 < pager.getTotalItems()); int itemNumber = 0; int pageIndex = 0; while (pager.hasNext() && pageIndex < 10) { List<Member> members = pager.next(); pageIndex++; assertEquals(pageIndex, pager.getCurrentPage()); if (pageIndex < pager.getTotalPages()) assertEquals(2, members.size()); for (Member member : members) { itemNumber++; System.out.format("page=%d, item=%d, name=%s, username=%s%n", pageIndex, itemNumber, member.getName(), member.getUsername()); } } } @Test public void testAll() throws GitLabApiException { Project project = gitLabApi.getProjectApi().getProject(TEST_NAMESPACE, TEST_PROJECT_NAME); assertNotNull(project); Pager<Commit> pager = gitLabApi.getCommitsApi().getCommits(project, 1); assertNotNull(pager); assertEquals(1, pager.getItemsPerPage()); assertTrue(0 < pager.getTotalPages()); int numCommits = pager.getTotalItems(); assertTrue(0 < numCommits); List<Commit> allCommits = pager.all(); System.out.println("All commits:"); allCommits.stream().map(Commit::getId).forEach(System.out::println); assertEquals(numCommits, allCommits.size()); } @Test public void testStream() throws GitLabApiException { Project project = gitLabApi.getProjectApi().getProject(TEST_NAMESPACE, TEST_PROJECT_NAME); assertNotNull(project); Pager<Commit> pager = gitLabApi.getCommitsApi().getCommits(project, 1); assertNotNull(pager); assertEquals(1, pager.getItemsPerPage()); assertTrue(0 < pager.getTotalPages()); int numCommits = pager.getTotalItems(); assertTrue(0 < numCommits); System.out.println("Streamed commits:"); assertEquals(numCommits, pager.stream().map(Commit::getId).peek(System.out::println).count());
211212213
} }