@Test public void select_group_permissions_by_group_names_on_project_permissions() { GroupDto group1 = groupDb.insertGroup(newGroupDto().setName("Group-1")); permissionDb.addGlobalPermissionToGroup(PROVISIONING, group1.getId()); GroupDto group2 = groupDb.insertGroup(newGroupDto().setName("Group-2")); ComponentDto project = componentDb.insertComponent(newProjectDto()); permissionDb.addProjectPermissionToGroup(USER, group2.getId(), project.getId()); GroupDto group3 = groupDb.insertGroup(newGroupDto().setName("Group-3")); permissionDb.addProjectPermissionToGroup(USER, group3.getId(), project.getId()); // Anyone group permissionDb.addGlobalPermissionToGroup(SCAN_EXECUTION, null); permissionDb.addProjectPermissionToGroup(PROVISIONING, null, project.getId()); assertThat( underTest.selectGroupPermissionsByGroupNamesAndProject( dbSession, asList("Group-1"), project.getId())) .isEmpty(); assertThat( underTest.selectGroupPermissionsByGroupNamesAndProject( dbSession, asList("Group-2"), project.getId())) .extracting(GroupRoleDto::getGroupId, GroupRoleDto::getRole, GroupRoleDto::getResourceId) .containsOnly(tuple(group2.getId(), USER, project.getId())); assertThat( underTest.selectGroupPermissionsByGroupNamesAndProject( dbSession, asList("Group-3"), project.getId())) .extracting(GroupRoleDto::getGroupId, GroupRoleDto::getRole, GroupRoleDto::getResourceId) .containsOnly(tuple(group3.getId(), USER, project.getId())); assertThat( underTest.selectGroupPermissionsByGroupNamesAndProject( dbSession, asList("Anyone"), project.getId())) .extracting(GroupRoleDto::getGroupId, GroupRoleDto::getRole, GroupRoleDto::getResourceId) .containsOnly(tuple(0L, PROVISIONING, project.getId())); assertThat( underTest.selectGroupPermissionsByGroupNamesAndProject( dbSession, asList("Group-1", "Group-2", "Anyone"), project.getId())) .hasSize(2); assertThat( underTest.selectGroupPermissionsByGroupNamesAndProject( dbSession, asList("Unknown"), project.getId())) .isEmpty(); assertThat( underTest.selectGroupPermissionsByGroupNamesAndProject( dbSession, asList("Group-1"), 123L)) .isEmpty(); assertThat( underTest.selectGroupPermissionsByGroupNamesAndProject( dbSession, Collections.emptyList(), project.getId())) .isEmpty(); }