private GroupMembershipQuery parseQuery(Map<String, Object> params) { GroupMembershipQuery.Builder builder = GroupMembershipQuery.builder(); builder.membership(membership(params)); builder.groupSearch((String) params.get("query")); builder.pageIndex(RubyUtils.toInteger(params.get("page"))); builder.pageSize(RubyUtils.toInteger(params.get("pageSize"))); builder.login((String) params.get("user")); return builder.build(); }
@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(); }