@@ -75,6 +75,7 @@ public class TestProjectApi extends AbstractIntegrationTest {
7575 private static final String TEST_GROUP = HelperUtils .getProperty (GROUP_KEY );
7676 private static final String TEST_GROUP_PROJECT = HelperUtils .getProperty (GROUP_PROJECT_KEY );
7777 private static final String TEST_XFER_NAMESPACE = HelperUtils .getProperty (XFER_NAMESPACE_KEY );
78+ private static final String TEST_SUDO_AS_USERNAME = HelperUtils .getProperty (SUDO_AS_USERNAME_KEY );
7879
7980 private static final String TEST_PROJECT_NAME_1 = "test-gitlab4j-create-project" ;
8081 private static final String TEST_PROJECT_NAME_2 = "test-gitlab4j-create-project-2" ;
@@ -451,6 +452,28 @@ public void testProjectsWithFilterAndStatistics() throws GitLabApiException {
451452 assertNotNull (projects .get (0 ).getStatistics ());
452453 }
453454
455+ @ Test
456+ public void testProjectsWithAccessLevelFilter () throws GitLabApiException {
457+
458+ ProjectFilter filter = new ProjectFilter ().withMinAccessLevel (AccessLevel .GUEST );
459+ List <Project > guestProjects = gitLabApi .getProjectApi ().getProjects (filter );
460+ assertTrue (guestProjects != null );
461+ assertTrue (guestProjects .size () > 0 );
462+
463+ // Use sudo to impersonate a non-admin user
464+ try {
465+
466+ gitLabApi .sudo (TEST_SUDO_AS_USERNAME );
467+ filter = new ProjectFilter ().withMinAccessLevel (AccessLevel .OWNER );
468+ List <Project > ownedProjects = gitLabApi .getProjectApi ().getProjects (filter );
469+ assertTrue (ownedProjects != null );
470+ assertTrue (guestProjects .size () > ownedProjects .size ());
471+
472+ } finally {
473+ gitLabApi .unsudo ();
474+ }
475+ }
476+
454477 @ Test
455478 public void testProjectPerPage () throws GitLabApiException {
456479 List <Project > projects = gitLabApi .getProjectApi ().getProjects (1 , 10 );
0 commit comments