@Test public void select_groups_not_affected_to_a_user_by_query() throws Exception { setupData("shared"); // 200 is member of 3 groups assertThat( dao.selectGroups( GroupMembershipQuery.builder() .login("arthur") .membership(GroupMembershipQuery.OUT) .build(), 200L)) .isEmpty(); // 201 is member of 1 group on 3 assertThat( dao.selectGroups( GroupMembershipQuery.builder() .login("arthur") .membership(GroupMembershipQuery.OUT) .build(), 201L)) .hasSize(2); // 999 is member of 0 group assertThat( dao.selectGroups( GroupMembershipQuery.builder() .login("arthur") .membership(GroupMembershipQuery.OUT) .build(), 2999L)) .hasSize(3); }
@Test public void search_by_group_name_with_capitalization() throws Exception { setupData("shared"); List<GroupMembershipDto> result = dao.selectGroups( GroupMembershipQuery.builder().login("arthur").groupSearch("UsER").build(), 200L); assertThat(result).hasSize(1); assertThat(result.get(0).getName()).isEqualTo("sonar-users"); result = dao.selectGroups( GroupMembershipQuery.builder().login("arthur").groupSearch("sonar").build(), 200L); assertThat(result).hasSize(3); }
@Test public void select_all_groups_by_query() throws Exception { setupData("shared"); GroupMembershipQuery query = GroupMembershipQuery.builder().login("arthur").build(); List<GroupMembershipDto> result = dao.selectGroups(query, 200L); assertThat(result).hasSize(3); }
@Test public void should_be_paginated() throws Exception { setupData("shared"); List<GroupMembershipDto> result = dao.selectGroups(GroupMembershipQuery.builder().login("arthur").build(), 200L, 0, 2); assertThat(result).hasSize(2); assertThat(result.get(0).getName()).isEqualTo("sonar-administrators"); assertThat(result.get(1).getName()).isEqualTo("sonar-reviewers"); result = dao.selectGroups(GroupMembershipQuery.builder().login("arthur").build(), 200L, 1, 2); assertThat(result).hasSize(2); assertThat(result.get(0).getName()).isEqualTo("sonar-reviewers"); assertThat(result.get(1).getName()).isEqualTo("sonar-users"); result = dao.selectGroups(GroupMembershipQuery.builder().login("arthur").build(), 200L, 2, 1); assertThat(result).hasSize(1); assertThat(result.get(0).getName()).isEqualTo("sonar-users"); }
@Test public void select_user_group() throws Exception { setupData("select_user_group"); GroupMembershipQuery query = GroupMembershipQuery.builder().login("arthur").build(); List<GroupMembershipDto> result = dao.selectGroups(query, 201L); assertThat(result).hasSize(1); GroupMembershipDto dto = result.get(0); assertThat(dto.getId()).isEqualTo(101L); assertThat(dto.getName()).isEqualTo("sonar-users"); assertThat(dto.getUserId()).isEqualTo(201L); }
@Test public void find_with_paging() { GroupMembershipQuery query = GroupMembershipQuery.builder().login("arthur").pageIndex(3).pageSize(10).build(); finder.find(query); ArgumentCaptor<Integer> argumentOffset = ArgumentCaptor.forClass(Integer.class); ArgumentCaptor<Integer> argumentLimit = ArgumentCaptor.forClass(Integer.class); verify(groupMembershipDao) .selectGroups(eq(query), anyLong(), argumentOffset.capture(), argumentLimit.capture()); assertThat(argumentOffset.getValue()).isEqualTo(20); assertThat(argumentLimit.getValue()).isEqualTo(11); }
@Test public void find_with_paging_having_more_results() { GroupMembershipQuery query = GroupMembershipQuery.builder().login("arthur").pageIndex(1).pageSize(2).build(); when(groupMembershipDao.selectGroups(eq(query), anyLong(), anyInt(), anyInt())) .thenReturn( newArrayList( new GroupMembershipDto().setId(1L).setName("group1"), new GroupMembershipDto().setId(2L).setName("group2"), new GroupMembershipDto().setId(3L).setName("group3"))); GroupMembershipFinder.Membership result = finder.find(query); ArgumentCaptor<Integer> argumentOffset = ArgumentCaptor.forClass(Integer.class); ArgumentCaptor<Integer> argumentLimit = ArgumentCaptor.forClass(Integer.class); verify(groupMembershipDao) .selectGroups(eq(query), anyLong(), argumentOffset.capture(), argumentLimit.capture()); assertThat(argumentOffset.getValue()).isEqualTo(0); assertThat(argumentLimit.getValue()).isEqualTo(3); assertThat(result.hasMoreResults()).isTrue(); }
@Test public void find() { GroupMembershipQuery query = GroupMembershipQuery.builder().login("arthur").build(); when(groupMembershipDao.selectGroups(eq(query), anyLong(), anyInt(), anyInt())) .thenReturn( newArrayList( new GroupMembershipDto() .setId(1L) .setName("users") .setDescription("Users group") .setUserId(100L))); GroupMembershipFinder.Membership result = finder.find(query); assertThat(result.groups()).hasSize(1); assertThat(result.hasMoreResults()).isFalse(); GroupMembership group = result.groups().get(0); assertThat(group.id()).isEqualTo(1); assertThat(group.name()).isEqualTo("users"); assertThat(group.description()).isEqualTo("Users group"); assertThat(group.isMember()).isTrue(); }