@Override public Page search(QueryCriteria criteria, Pageable pageable) { CriteriaBuilder builder = this.entityManager.getCriteriaBuilder(); CriteriaQuery<Long> countCriteria = builder.createQuery(Long.class); Root<T> countRoot = countCriteria.from(this.domainClass); long total = this.entityManager.createQuery( countCriteria.select(builder.count(countRoot)) .where(toPredicates(criteria, countRoot, builder)) ).getSingleResult(); CriteriaQuery<T> pageCriteria = builder.createQuery(this.domainClass); Root<T> pageRoot = pageCriteria.from(this.domainClass); List<T> list = this.entityManager.createQuery( pageCriteria.select(pageRoot) .where(toPredicates(criteria, pageRoot, builder)) .orderBy(toOrders(pageable.getSort(), pageRoot, builder)) ).setFirstResult(pageable.getOffset()) .setMaxResults(pageable.getPageSize()) .getResultList(); return new PageImpl<>(new ArrayList<>(list), pageable, total); }
@Test public void generatePaginationHttpHeadersTest() { String baseUrl = "/api/_search/example"; List<String> content = new ArrayList<>(); Page<String> page = new PageImpl<>(content,new PageRequest(6, 50),400L); HttpHeaders headers = PaginationUtil.generatePaginationHttpHeaders(page, baseUrl); List<String> strHeaders = headers.get(HttpHeaders.LINK); assertNotNull(strHeaders); assertTrue(strHeaders.size() == 1); String headerData = strHeaders.get(0); assertTrue(headerData.split(",").length == 4); String expectedData = "</api/_search/example?page=7&size=50>; rel=\"next\"," + "</api/_search/example?page=5&size=50>; rel=\"prev\"," + "</api/_search/example?page=7&size=50>; rel=\"last\"," + "</api/_search/example?page=0&size=50>; rel=\"first\""; assertEquals(expectedData, headerData); List<String> xTotalCountHeaders = headers.get("X-Total-Count"); assertTrue(xTotalCountHeaders.size() == 1); assertTrue(Long.valueOf(xTotalCountHeaders.get(0)).equals(400L)); }
@Test public void findAllNotSecureByCompany() { final Map<String, UserOrg> users = new HashMap<>(); final UserOrg user1 = newUser(); users.put("wuser", user1); final UserOrg user2 = new UserOrg(); user2.setCompany("ing"); user2.setGroups(Collections.singletonList("any")); users.put("user2", user2); final GroupOrg groupOrg1 = new GroupOrg("cn=DIG,ou=fonction,ou=groups,dc=sample,dc=com", "DIG", Collections.singleton("wuser")); final Map<String, GroupOrg> groupsMap = new HashMap<>(); groupsMap.put("dig", groupOrg1); resource.groupResource = Mockito.mock(GroupResource.class); final CompanyOrg company = new CompanyOrg("ou=ing,ou=france,ou=people,dc=sample,dc=com", "ing"); Mockito.when(companyRepository.findByIdExpected(DEFAULT_USER, "ing")).thenReturn(company); groupFindById(DEFAULT_USER, "dig", groupOrg1); Mockito.when(userRepository.findAll(ArgumentMatchers.any(), ArgumentMatchers.any(), ArgumentMatchers.any(), ArgumentMatchers.any())) .thenReturn(new PageImpl<>(new ArrayList<>(users.values()))); Mockito.when(resource.groupResource.getContainers()).thenReturn(new HashSet<>(groupsMap.values())); Mockito.when(resource.groupResource.getContainersForWrite()).thenReturn(new HashSet<>(groupsMap.values())); final List<UserOrg> data = resource.findAllNotSecure("ing", null); // Check the users checkUser(data.get(0)); }
@Test @WithMockUser("user123") public void testFindClients() throws Exception { final OAuth2ClientEntity client = new OAuth2ClientEntity() .setId("client123") .setName("client") .setDescription("description") .setClientSecret("123456secret") .setSecretRequired(true) .setAutoApprove(false) .setAuthorizedGrantTypes(new HashSet<>(Arrays.asList(AUTHORIZATION_CODE, IMPLICIT))); Page<OAuth2ClientEntity> clients = new PageImpl<>(Arrays.asList(client)); when(oAuth2ClientService.findClients(anyString(), any())).thenReturn(clients); MockHttpServletRequestBuilder request = get("/api/clients") .contentType(MediaType.APPLICATION_JSON); MockHttpServletResponse response = mockMvc.perform(request) .andExpect(status().isOk()) .andDo(document("client-read-all")) .andReturn() .getResponse(); assertThat(response.getContentAsByteArray()) .isEqualTo(objectMapper.writeValueAsBytes( clients.map(c -> OAuth2ClientRestData.builder().fromOAuth2ClientEntity(c).build()))); verify(oAuth2ClientService).findClients(anyString(), any()); }
@Test public void testFindPrivileges() throws Exception { PrivilegeEntity dbResult = new PrivilegeEntity() .setId("123") .setName("12345") .setDescription("Description 12345"); Page<PrivilegeEntity> pageResponseBody = new PageImpl<>(Arrays.asList(dbResult)); Page<PrivilegeRestData> expectedResponseBody = new PageImpl<>(Arrays.asList(PrivilegeRestData.builder() .fromPrivilegeEntity(dbResult).build())); when(privilegeService.findPrivileges(anyString(), any())).thenReturn(pageResponseBody); ResultActions resultActions = mockMvc.perform(get("/api/privileges").contentType(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()) .andDo(document("privilege-read-all")); MockHttpServletResponse response = resultActions .andReturn() .getResponse(); verify(privilegeService).findPrivileges(anyString(), any()); assertThat(response.getContentAsByteArray()).isEqualTo(objectMapper.writeValueAsBytes(expectedResponseBody)); }
@Test public void testGetInstancesCountByNamespace() throws Exception { String someAppId = "someAppId"; String someClusterName = "someClusterName"; String someNamespaceName = "someNamespaceName"; Page<Instance> instances = new PageImpl<>(Collections.emptyList(), pageable, 2); when(instanceService.findInstancesByNamespace(eq(someAppId), eq(someClusterName), eq(someNamespaceName), any(Pageable.class))).thenReturn(instances); long result = instanceConfigController.getInstancesCountByNamespace(someAppId, someClusterName, someNamespaceName); assertEquals(2, result); }
@Test public void fromPage(){ // Given: A Page Page<String> myPage = new PageImpl<>( Arrays.asList("a", "b", "c"), PageRequest.of(1, 3), // page == 1 => 2nd page (zero index) 9 ); ContinuableListing<String> listing = ContinuationSupport.fromPage(myPage); Assert.assertEquals(3, listing.getChunkSize()); Assert.assertEquals(3, listing.getContent().size()); Assert.assertEquals(true, listing.hasMore()); Assert.assertEquals("1-3", listing.getContinuationToken()); Assert.assertEquals("2-3", listing.getNextContinuationToken()); }
@Test public void commaTest() { String baseUrl = "/api/_search/example"; List<String> content = new ArrayList<>(); Page<String> page = new PageImpl<>(content); String query = "Test1, test2"; HttpHeaders headers = PaginationUtil.generateSearchPaginationHttpHeaders(query, page, baseUrl); List<String> strHeaders = headers.get(HttpHeaders.LINK); assertNotNull(strHeaders); assertTrue(strHeaders.size() == 1); String headerData = strHeaders.get(0); assertTrue(headerData.split(",").length == 2); String expectedData = "</api/_search/example?page=0&size=0&query=Test1%2C+test2>; rel=\"last\"," + "</api/_search/example?page=0&size=0&query=Test1%2C+test2>; rel=\"first\""; assertEquals(expectedData, headerData); List<String> xTotalCountHeaders = headers.get("X-Total-Count"); assertTrue(xTotalCountHeaders.size() == 1); assertTrue(Long.valueOf(xTotalCountHeaders.get(0)).equals(0L)); }
@Test public void greaterSemicolonTest() { String baseUrl = "/api/_search/example"; List<String> content = new ArrayList<>(); Page<String> page = new PageImpl<>(content); String query = "Test>;test"; HttpHeaders headers = PaginationUtil.generateSearchPaginationHttpHeaders(query, page, baseUrl); List<String> strHeaders = headers.get(HttpHeaders.LINK); assertNotNull(strHeaders); assertTrue(strHeaders.size() == 1); String headerData = strHeaders.get(0); assertTrue(headerData.split(",").length == 2); String[] linksData = headerData.split(","); assertTrue(linksData.length == 2); assertTrue(linksData[0].split(">;").length == 2); assertTrue(linksData[1].split(">;").length == 2); String expectedData = "</api/_search/example?page=0&size=0&query=Test%3E%3Btest>; rel=\"last\"," + "</api/_search/example?page=0&size=0&query=Test%3E%3Btest>; rel=\"first\""; assertEquals(expectedData, headerData); List<String> xTotalCountHeaders = headers.get("X-Total-Count"); assertTrue(xTotalCountHeaders.size() == 1); assertTrue(Long.valueOf(xTotalCountHeaders.get(0)).equals(0L)); }
@Override public Page<User> queryPage(UsernameQueryRequest queryRequest) { int start = queryRequest.getStart(); int limit = queryRequest.getLimit(); Query query = new Query(); if (!StringUtils.isEmpty(queryRequest.getUsername())) { query.addCriteria(Criteria.where("username").regex(queryRequest.getUsername())); } query.addCriteria(Criteria.where("deleted").ne(true)); PageRequest pageable = new PageRequest(start, limit, new Sort(Sort.Direction.ASC, "rank", "username")); query.with(pageable); long count = mongoTemplate.count(query, User.class); List<User> list = mongoTemplate.find(query, User.class); return new PageImpl<>(list, pageable, count); }
@Override public Page<User> queryPage(SysRole role, UserQueryRequest queryRequest) { int start = queryRequest.getStart(); int limit = queryRequest.getLimit(); Query query = new Query(); query.addCriteria(Criteria.where("roles").in(role)); if (!StringUtils.isEmpty(queryRequest.getUsername())) { query.addCriteria(Criteria.where("username").regex(queryRequest.getUsername())); } query.addCriteria(Criteria.where("deleted").ne(true)); PageRequest pageable = new PageRequest(start, limit, new Sort(Sort.Direction.DESC, "username")); query.with(pageable); long count = mongoTemplate.count(query, User.class); List<User> list = mongoTemplate.find(query, User.class); return new PageImpl<>(list, pageable, count); }
/** * Retrieves hot medium elements from the cache and retrieves the object information from the database * * @param pageable pagination settings * @return list of medium elements */ @ApiOperation("Retrieves all Media elements by how \"hot\" they are") @RequestMapping(value = "/Hot", method = RequestMethod.GET) Page<Medium> listHot(final Pageable pageable) { final int page = pageable.getPageNumber(); final int count = pageable.getPageSize(); final RScoredSortedSet<String> set = redissonClient.getScoredSortedSet("HotMediaByScore"); if (set.size() == 0) { retrieveHotToCache(); } final Collection<ScoredEntry<String>> mediaCollection = set.entryRange(page * count, ((page + 1) * count) - 1); final List<Medium> mediaList = mediaCollection.stream() .map(entry -> mediumService.findOne(entry.getValue())) .filter(Optional::isPresent) .map(Optional::get) .filter(AuditedEntity::getActive) .collect(Collectors.toList()); return new PageImpl<>(mediaList, pageable, set.size()); }
@Test public void findAllNotSecureByGroup() { final Map<String, UserOrg> users = new HashMap<>(); final UserOrg user1 = newUser(); users.put("wuser", user1); final UserOrg user2 = new UserOrg(); user2.setCompany("ing"); user2.setGroups(Collections.singletonList("any")); users.put("user2", user2); final GroupOrg groupOrg1 = new GroupOrg("cn=DIG,ou=fonction,ou=groups,dc=sample,dc=com", "DIG", Collections.singleton("wuser")); final Map<String, GroupOrg> groupsMap = new HashMap<>(); groupsMap.put("dig", groupOrg1); resource.groupResource = Mockito.mock(GroupResource.class); final CompanyOrg company = new CompanyOrg("ou=ing,ou=france,ou=people,dc=sample,dc=com", "ing"); Mockito.when(companyRepository.findByIdExpected(DEFAULT_USER, "ing")).thenReturn(company); groupFindById(DEFAULT_USER, "dig", groupOrg1); Mockito.when(userRepository.findAll(ArgumentMatchers.any(), ArgumentMatchers.any(), ArgumentMatchers.any(), ArgumentMatchers.any())) .thenReturn(new PageImpl<>(new ArrayList<>(users.values()))); Mockito.when(resource.groupResource.getContainers()).thenReturn(new HashSet<>(groupsMap.values())); Mockito.when(resource.groupResource.getContainersForWrite()).thenReturn(new HashSet<>(groupsMap.values())); final List<UserOrg> data = resource.findAllNotSecure(null, "dig"); // Check the users checkUser(data.get(0)); }
@RequestMapping("/center/fans") @Menu(type = "apps" , subtype = "user" , name="fans" , access = false) public ModelAndView centerfans(HttpServletRequest request , HttpServletResponse response, @Valid String orgi, @Valid String q) { ModelAndView view = request(super.createAppsTempletResponse("/apps/user/centerfans")) ; String userid = super.getUser(request).getId() ; Pageable page = new PageRequest(super.getP(request), super.getPs(request), new Sort(Direction.DESC, "createtime")) ; Page<Fans> fansList = fansRes.findByUser(userid, page) ; List<String> userids = new ArrayList<String>(); for(Fans fan : fansList){ userids.add(fan.getCreater()) ; } if(userids.size()>0){ view.addObject("fansList",new PageImpl<User>(userRes.findAll(userids), page, fansList.getTotalElements()) ) ; } return view; }
@RequestMapping("/center/follows") @Menu(type = "apps" , subtype = "user" , name="follows" , access = false) public ModelAndView centerfollows(HttpServletRequest request , HttpServletResponse response, @Valid String orgi, @Valid String q) { ModelAndView view = request(super.createAppsTempletResponse("/apps/user/centerfollows")) ; String userid = super.getUser(request).getId() ; Pageable page = new PageRequest(super.getP(request), super.getPs(request), new Sort(Direction.DESC, "createtime")) ; Page<Fans> fansList = fansRes.findByCreater(userid, page) ; List<String> userids = new ArrayList<String>(); for(Fans fan : fansList){ userids.add(fan.getUser()) ; } if(userids.size()>0){ view.addObject("fansList",new PageImpl<User>(userRes.findAll(userids), page, fansList.getTotalElements()) ) ; } return view; }
@Test public void findAllNotSecure() { final Map<String, UserOrg> users = new HashMap<>(); final UserOrg user1 = newUser(); users.put("wuser", user1); final UserOrg user2 = new UserOrg(); user2.setCompany("ing"); user2.setGroups(Collections.singletonList("any")); users.put("user2", user2); final GroupOrg groupOrg1 = new GroupOrg("cn=DIG,ou=fonction,ou=groups,dc=sample,dc=com", "DIG", Collections.singleton("wuser")); final Map<String, GroupOrg> groupsMap = new HashMap<>(); groupsMap.put("dig", groupOrg1); resource.groupResource = Mockito.mock(GroupResource.class); final CompanyOrg company = new CompanyOrg("ou=ing,ou=france,ou=people,dc=sample,dc=com", "ing"); Mockito.when(companyRepository.findByIdExpected(DEFAULT_USER, "ing")).thenReturn(company); groupFindById(DEFAULT_USER, "dig", groupOrg1); Mockito.when(userRepository.findAll(ArgumentMatchers.any(), ArgumentMatchers.any(), ArgumentMatchers.any(), ArgumentMatchers.any())) .thenReturn(new PageImpl<>(new ArrayList<>(users.values()))); Mockito.when(resource.groupResource.getContainers()).thenReturn(new HashSet<>(groupsMap.values())); Mockito.when(resource.groupResource.getContainersForWrite()).thenReturn(new HashSet<>(groupsMap.values())); final List<UserOrg> data = resource.findAllNotSecure(null, null); // Check the users checkUser(data.get(0)); }
public Page<Instance> findInstancesByNamespaceAndInstanceAppId(String instanceAppId, String appId, String clusterName, String namespaceName, Pageable pageable) { Page<Object[]> instanceIdResult = instanceConfigRepository .findInstanceIdsByNamespaceAndInstanceAppId(instanceAppId, appId, clusterName, namespaceName, getValidInstanceConfigDate(), pageable); List<Instance> instances = Collections.emptyList(); if (instanceIdResult.hasContent()) { Set<Long> instanceIds = instanceIdResult.getContent().stream().map((Object o) -> { if (o == null) { return null; } if (o instanceof Integer) { return ((Integer)o).longValue(); } if (o instanceof Long) { return (Long) o; } //for h2 test if (o instanceof BigInteger) { return ((BigInteger) o).longValue(); } return null; }).filter((Long value) -> value != null).collect(Collectors.toSet()); instances = findInstancesByIds(instanceIds); } return new PageImpl<>(instances, pageable, instanceIdResult.getTotalElements()); }
@Override @Transactional(propagation = Propagation.NOT_SUPPORTED, readOnly = true) public <DTO extends IGenericDTO<PK>> Page<DTO> findAll(Class<DTO> dtoClass, Specification<E> spec, Pageable pageable) throws Exception { Page<E> sp = findAll(spec, pageable); Page<DTO> dp = new PageImpl<DTO>(BeanMapper.map(sp.getContent(), dtoClass), pageable, sp.getTotalElements()); return dp; }
@Test public void testValidCommandAndSearchReturn3Documents() throws Exception { MetadataSearchCommand searchCommand = new MetadataSearchCommand("name", "thename"); List<StoredDocument> documents = Arrays.asList( new StoredDocument(), new StoredDocument(), new StoredDocument()); PageRequest pageRequest = new PageRequest(0, 2); when( this.searchService .findStoredDocumentsByMetadata(eq(searchCommand), any(Pageable.class))) .thenReturn(new PageImpl<>(documents, pageRequest, 3)); restActions .withAuthorizedUser("userId") .withAuthorizedService("divorce") .post("/documents/filter", searchCommand) .andExpect(status().isOk()) .andExpect(jsonPath("$.page.size", is(2))) .andExpect(jsonPath("$.page.totalElements", is(3))) .andExpect(jsonPath("$.page.totalPages", is(2))) .andExpect(jsonPath("$.page.number", is(0))) .andExpect(jsonPath("$._links.first.href", is("http://localhost/documents/filter?page=0&size=2"))) .andExpect(jsonPath("$._links.self.href", is("http://localhost/documents/filter?page=0&size=2"))) .andExpect(jsonPath("$._links.next.href", is("http://localhost/documents/filter?page=1&size=2"))) .andExpect(jsonPath("$._links.last.href", is("http://localhost/documents/filter?page=1&size=2"))); }
@Test //@Ignore public void testGetAllPosts() throws Exception { given(this.posts .findAll(PostSpecifications.filterByKeywordAndStatus("my", null), PageRequest.of(0, 10))) .willReturn( new PageImpl( Arrays.asList( Post.builder().title("my first post1").content("my content of my post1").build(), Post.builder().title("my first post2").content("my content of my post2").build(), Post.builder().title("my first post3").content("my content of my post3").build() ), PageRequest.of(0, 10), 3L ) ); MvcResult result = this.mockMvc .perform( get("/posts?q=my") .accept(MediaType.APPLICATION_JSON) ) .andExpect(status().isOk()) .andExpect(jsonPath("$.content[*].title", hasItem("my first post1"))) .andReturn(); log.debug("mvc result:::" + result.getResponse().getContentAsString()); verify(this.posts, times(1)).findAll(any(Specification.class), any(Pageable.class)); verifyNoMoreInteractions(this.posts); }
/** * Haal de lijst van vrij bericht partijen behorend bij de opgegeven partij op. * @param id id van vrij bericht * @param pageable pagable instantie * @return pagina vrijberichtpartij pagina * @throws ErrorHandler.NotFoundException wanneer het item niet gevonden kan worden */ @RequestMapping(value = "/{id}/vrijberichtpartij", method = RequestMethod.GET) @ResponseStatus(HttpStatus.OK) public final Page<VrijBerichtPartij> getVrijBerichtPartijen(@PathVariable("id") final Integer id, @PageableDefault(size = Short.MAX_VALUE) final Pageable pageable) throws ErrorHandler.NotFoundException { final List<VrijBerichtPartij> vrijBerichtPartijen = get(id).getVrijBerichtPartijen(); return new PageImpl<>(vrijBerichtPartijen, pageable, vrijBerichtPartijen.size()); }
private Page<PostProperty> convertPost(Page<Post> posts, int page, int size, String... ignores) { List<PostProperty> postProperties = posts.getContent().stream().map(post -> { //TODO ignores impl return convertSinglePost(post); }).collect(Collectors.toList()); PageImpl pi = new PageImpl(postProperties, new PageRequest(page, size), posts.getTotalPages()); return pi; }
@Test @SuppressWarnings("serial") public void testFindRoles() { RoleEntity result = new RoleEntity() {{ setId("123"); }}.setCode("user"); Page<RoleEntity> page = new PageImpl<>(Arrays.asList(result)); when(roleRepository.findAll(any(Pageable.class))).thenReturn(page); assertThat(roleService.findRoles(new PageRequest(1, 10))).isEqualTo(page); verify(roleRepository).findAll(any(Pageable.class)); }
/** * Slaat een gewijzigd item op. * @param leveringsautorisatieId Id van de leveringsautorisatie * @param dienstbundelGroepId groep ID * @param item item * @return item * @throws NotFoundException wanneer het item niet gevonden kan worden om te updaten */ @RequestMapping(value = "/{id2}/dienstbundels/{did8}/dienstbundelgroepen/{gid2}/attributen", method = RequestMethod.POST) @ResponseStatus(HttpStatus.OK) public final Page<DienstbundelGroepAttribuutView> saveDienstbundelGroepAttribuut( @PathVariable("id2") final Integer leveringsautorisatieId, @PathVariable("gid2") final Integer dienstbundelGroepId, @RequestBody final DienstbundelGroepAttribuutView item) throws NotFoundException { return new SaveTransaction<Page<DienstbundelGroepAttribuutView>>(getTransactionTemplate()).execute(() -> { final Leveringsautorisatie leveringsautorisatie = get(leveringsautorisatieId); if (!Stelsel.BRP.equals(leveringsautorisatie.getStelsel())) { throw new IllegalArgumentException("Groepen kunnen niet worden toegevoegd op een GBA autorisatie."); } final DienstbundelGroep dienstbundelGroep = dienstbundelGroepController.get(dienstbundelGroepId); if (item.getId() != null && !item.isActief()) { // Verwijderen attribuut uit dienstbundelgroep. dienstbundelGroep.getDienstbundelGroepAttribuutSet().removeIf(attribuut -> attribuut.getId().equals(item.getId())); } else if (item.isActief()) { // Toevoegen attribuut aan dienstbundelgroep. dienstbundelGroep.getDienstbundelGroepAttribuutSet().add(new DienstbundelGroepAttribuut(dienstbundelGroep, item.getAttribuut())); } dienstbundelGroepController.save(dienstbundelGroep); return new PageImpl<>(bepaalActiefStatusAttributenVoorGroep(dienstbundelGroep)); }); }
@Test public void testFindPostByPoster() throws Exception { final Page<PostEntity> post = new PageImpl<>(Collections.singletonList(PostServiceTest.DUMMY_POST)); when(postService.findPostByPoster(contains("user"), any())).thenReturn(post); MockHttpServletResponse response = mockMvc.perform(get("/api/posts?username=user") .contentType(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()) .andDo(document("post-read-all-by-user")) .andReturn() .getResponse(); assertThat(response.getContentAsByteArray()) .isEqualTo(objectMapper.writeValueAsBytes(post.map(a -> PostRestData.builder().fromPostEntity(a).build()))); verify(postService).findPostByPoster(eq("user"), any()); }
@Test public void testFindPostByTitleContaining() throws Exception { final Page<PostEntity> post = new PageImpl<>(Collections.singletonList(PostServiceTest.DUMMY_POST)); when(postService.findPostByTitleContaining(contains("disastah"), any())).thenReturn(post); MockHttpServletResponse response = mockMvc.perform(get("/api/posts?title=disastah") .contentType(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()) .andDo(document("post-read-all")) .andReturn() .getResponse(); assertThat(response.getContentAsByteArray()) .isEqualTo(objectMapper.writeValueAsBytes(post.map(a -> PostRestData.builder().fromPostEntity(a).build()))); verify(postService).findPostByTitleContaining(eq("disastah"), any()); }
@Test public void testFindPostReplies() throws Exception { final Page<PostEntity> post = new PageImpl<>(Collections.singletonList(PostServiceTest.DUMMY_POST)); when(postService.findPostReplies(contains("123"), any())).thenReturn(post); MockHttpServletResponse response = mockMvc.perform(get("/api/posts/123/responses") .contentType(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()) .andDo(document("post-read-all-responses")) .andReturn() .getResponse(); assertThat(response.getContentAsByteArray()) .isEqualTo(objectMapper.writeValueAsBytes(post.map(a -> PostRestData.builder().fromPostEntity(a).build()))); verify(postService).findPostReplies(eq("123"), any()); }
@Test public void testFindPostByPoster() { Page<PostEntity> dbResult = new PageImpl<>(Collections.singletonList(DUMMY_POST)); when(postRepository.findByPosterUsername(eq("user"), any())).thenReturn(dbResult); assertThat(postService.findPostByPoster("user", null)).isEqualTo(dbResult); verify(postRepository).findByPosterUsername(eq("user"), any()); }
@Test public void testFindPostByTitleContaining() { Page<PostEntity> dbResult = new PageImpl<>(Collections.singletonList(DUMMY_POST)); when(postRepository.findByTitleContaining(eq("disastah"), any())) .thenReturn(dbResult); Page<PostEntity> result = postService.findPostByTitleContaining("disastah", null); assertThat(result.getNumberOfElements()).isEqualTo(1); assertThat(result).isEqualTo(dbResult); verify(postRepository).findByTitleContaining(eq("disastah"), any()); }
@Test public void testGetInstancesByNamespaceAndInstanceAppId() throws Exception { String someInstanceAppId = "someInstanceAppId"; String someAppId = "someAppId"; String someClusterName = "someClusterName"; String someNamespaceName = "someNamespaceName"; String someIp = "someIp"; long someInstanceId = 1; long anotherInstanceId = 2; Pageable pageable = mock(Pageable.class); Instance someInstance = assembleInstance(someInstanceId, someAppId, someClusterName, someNamespaceName, someIp); Instance anotherInstance = assembleInstance(anotherInstanceId, someAppId, someClusterName, someNamespaceName, someIp); Page<Instance> instances = new PageImpl<>(Lists.newArrayList(someInstance, anotherInstance), pageable, 2); when(instanceService.findInstancesByNamespaceAndInstanceAppId(someInstanceAppId, someAppId, someClusterName, someNamespaceName, pageable)).thenReturn(instances); PageDTO<InstanceDTO> result = instanceConfigController.getInstancesByNamespace(someAppId, someClusterName, someNamespaceName, someInstanceAppId, pageable); assertEquals(2, result.getContent().size()); InstanceDTO someInstanceDto = null; InstanceDTO anotherInstanceDto = null; for (InstanceDTO instanceDTO : result.getContent()) { if (instanceDTO.getId() == someInstanceId) { someInstanceDto = instanceDTO; } else if (instanceDTO.getId() == anotherInstanceId) { anotherInstanceDto = instanceDTO; } } verifyInstance(someInstance, someInstanceDto); verifyInstance(anotherInstance, anotherInstanceDto); }
@Test @SuppressWarnings("serial") public void testFindPrivileges() { PrivilegeEntity result = new PrivilegeEntity() {{ setId("123"); }}.setName("user_list_read"); Page<PrivilegeEntity> page = new PageImpl<>(Arrays.asList(result)); when(privilegeRepository.findAll(any(Pageable.class))).thenReturn(page); assertThat(privilegeService.findPrivileges(new PageRequest(1, 10))).isEqualTo(page); verify(privilegeRepository).findAll(any(Pageable.class)); }
public Page<Instance> findInstancesByNamespace(String appId, String clusterName, String namespaceName, Pageable pageable) { Page<InstanceConfig> instanceConfigs = instanceConfigRepository. findByConfigAppIdAndConfigClusterNameAndConfigNamespaceNameAndDataChangeLastModifiedTimeAfter(appId, clusterName, namespaceName, getValidInstanceConfigDate(), pageable); List<Instance> instances = Collections.emptyList(); if (instanceConfigs.hasContent()) { Set<Long> instanceIds = instanceConfigs.getContent().stream().map (InstanceConfig::getInstanceId).collect(Collectors.toSet()); instances = findInstancesByIds(instanceIds); } return new PageImpl<>(instances, pageable, instanceConfigs.getTotalElements()); }
@Test public void findAllReadOnly() { initSpringSecurityContext("fdaugan"); final Map<String, UserOrg> users = new HashMap<>(); final UserOrg user1 = newUser(); user1.setCompany("gfi"); users.put("wuser", user1); final UserOrg user2 = new UserOrg(); user2.setCompany("ing"); user2.setGroups(Collections.singletonList("any")); users.put("user2", user2); final GroupOrg groupOrg1 = new GroupOrg("cn=dig,ou=fonction,ou=groups,dc=sample,dc=com", "DIG", Collections.singleton("wuser")); final GroupOrg groupOrg2 = new GroupOrg("cn=dig rha,cn=dig,ou=fonction,ou=groups,dc=sample,dc=com", "DIG RHA", Collections.singleton("wuser")); final Map<String, GroupOrg> groupsMap = new HashMap<>(); groupsMap.put("dig", groupOrg1); groupsMap.put("dig rha", groupOrg2); resource.groupResource = Mockito.mock(GroupResource.class); resource.companyResource = Mockito.mock(CompanyResource.class); final CompanyOrg company1 = new CompanyOrg("ou=ing,ou=france,ou=people,dc=sample,dc=com", "ing"); final CompanyOrg company2 = new CompanyOrg("ou=gfi,ou=france,ou=people,dc=sample,dc=com", "ing"); Mockito.when(companyRepository.findByIdExpected(DEFAULT_USER, "ing")).thenReturn(company1); Mockito.when(companyRepository.findByIdExpected(DEFAULT_USER, "gfi")).thenReturn(company2); groupFindById(DEFAULT_USER, "dig", groupOrg1); Mockito.when(groupRepository.findAll()).thenReturn(groupsMap); Mockito.when(userRepository.findAll(ArgumentMatchers.any(), ArgumentMatchers.any(), ArgumentMatchers.any(), ArgumentMatchers.any())) .thenReturn(new PageImpl<>(new ArrayList<>(users.values()))); Mockito.when(resource.groupResource.getContainers()).thenReturn(new HashSet<>(groupsMap.values())); Mockito.when(resource.groupResource.getContainersForWrite()).thenReturn(Collections.emptySet()); Mockito.when(resource.companyResource.getContainers()).thenReturn(new HashSet<>(Arrays.asList(company1, company2))); Mockito.when(resource.companyResource.getContainersForWrite()).thenReturn(Collections.emptySet()); final TableItem<UserOrgVo> tableItem = resource.findAll("ing", "not exist group", "iRsT", newUriInfoAsc("id")); Assert.assertEquals(2, tableItem.getRecordsTotal()); Assert.assertEquals(2, tableItem.getRecordsFiltered()); // Check the users Assert.assertEquals("gfi", tableItem.getData().get(0).getCompany()); Assert.assertFalse(tableItem.getData().get(0).getGroups().get(0).isManaged()); }
@GetMapping("{id}/attendees") public Page<UserDto> attendees(@AuthenticationPrincipal OSoonUserDetails userDetails, @PathVariable long id) { Page<User> users = service.listAttendees(id, userDetails.getId(), PageRequest.of(0, 10)); List<UserDto> userDtos = users.getContent().stream().map(user -> modelMapper.map(user, UserDto.class)).collect(Collectors.toList()); return new PageImpl(userDtos, users.getPageable(), users.getTotalElements()); }