@Test public void select_groups_for_project_permission() { db.prepareDbUnit(getClass(), "groups_with_permissions.xml"); OldPermissionQuery query = OldPermissionQuery.builder().permission("user").build(); List<GroupWithPermissionDto> result = underTest.selectGroups(dbSession, query, COMPONENT_ID); assertThat(result).hasSize(4); GroupWithPermissionDto anyone = result.get(0); assertThat(anyone.getName()).isEqualTo("Anyone"); assertThat(anyone.getDescription()).isNull(); assertThat(anyone.getPermission()).isNotNull(); GroupWithPermissionDto group1 = result.get(1); assertThat(group1.getName()).isEqualTo("sonar-administrators"); assertThat(group1.getDescription()).isEqualTo("System administrators"); assertThat(group1.getPermission()).isNotNull(); GroupWithPermissionDto group2 = result.get(2); assertThat(group2.getName()).isEqualTo("sonar-reviewers"); assertThat(group2.getDescription()).isEqualTo("Reviewers"); assertThat(group2.getPermission()).isNull(); GroupWithPermissionDto group3 = result.get(3); assertThat(group3.getName()).isEqualTo("sonar-users"); assertThat(group3.getDescription()) .isEqualTo("Any new users created will automatically join this group"); assertThat(group3.getPermission()).isNotNull(); }
@Test public void search_by_groups_name() { db.prepareDbUnit(getClass(), "groups_with_permissions.xml"); List<GroupWithPermissionDto> result = underTest.selectGroups( dbSession, OldPermissionQuery.builder().permission("user").search("aDMini").build(), COMPONENT_ID); assertThat(result).hasSize(1); assertThat(result.get(0).getName()).isEqualTo("sonar-administrators"); result = underTest.selectGroups( dbSession, OldPermissionQuery.builder().permission("user").search("sonar").build(), COMPONENT_ID); assertThat(result).hasSize(3); }
@Test public void search_groups_should_be_sorted_by_group_name() { db.prepareDbUnit(getClass(), "groups_with_permissions_should_be_sorted_by_group_name.xml"); List<GroupWithPermissionDto> result = underTest.selectGroups( dbSession, OldPermissionQuery.builder().permission("user").build(), COMPONENT_ID); int count = underTest.countGroups(dbSession, "user", COMPONENT_ID); assertThat(result).hasSize(4); assertThat(count).isEqualTo(2); assertThat(result.get(0).getName()).isEqualTo("Anyone"); assertThat(result.get(1).getName()).isEqualTo("sonar-administrators"); assertThat(result.get(2).getName()).isEqualTo("sonar-reviewers"); assertThat(result.get(3).getName()).isEqualTo("sonar-users"); }
@Test public void select_groups_for_global_permission() { db.prepareDbUnit(getClass(), "groups_with_permissions.xml"); OldPermissionQuery query = OldPermissionQuery.builder().permission("admin").build(); List<GroupWithPermissionDto> result = underTest.selectGroups(dbSession, query, null); assertThat(result).hasSize(3); GroupWithPermissionDto group1 = result.get(0); assertThat(group1.getName()).isEqualTo("sonar-administrators"); assertThat(group1.getPermission()).isNotNull(); GroupWithPermissionDto group2 = result.get(1); assertThat(group2.getName()).isEqualTo("sonar-reviewers"); assertThat(group2.getPermission()).isNull(); GroupWithPermissionDto group3 = result.get(2); assertThat(group3.getName()).isEqualTo("sonar-users"); assertThat(group3.getPermission()).isNull(); }
@Test public void anyone_group_is_not_returned_when_it_has_no_permission() { db.prepareDbUnit(getClass(), "groups_with_permissions.xml"); // Anyone group has not the permission 'admin', so it's not returned OldPermissionQuery query = OldPermissionQuery.builder().permission("admin").build(); List<GroupWithPermissionDto> result = underTest.selectGroups(dbSession, query, COMPONENT_ID); assertThat(result).hasSize(3); GroupWithPermissionDto group1 = result.get(0); assertThat(group1.getName()).isEqualTo("sonar-administrators"); assertThat(group1.getPermission()).isNotNull(); GroupWithPermissionDto group2 = result.get(1); assertThat(group2.getName()).isEqualTo("sonar-reviewers"); assertThat(group2.getPermission()).isNull(); GroupWithPermissionDto group3 = result.get(2); assertThat(group3.getName()).isEqualTo("sonar-users"); assertThat(group3.getPermission()).isNull(); }