RepositoryUserService implements UserService { @Override public List<UserData> searchStaffMemberDataOfUser(User user, String query, Sort sort) { var staff = getHierarchyForUser(user).getStaff().stream() .map(HierarchyTreeNode::getUser) .collect(Collectors.toList()); var dataMatchingQuery = hibernateSearchService.searchUserData(staff, query); return initializeThumbnailPhotos(dataMatchingQuery); } RepositoryUserService(UserRepository userRepo,
                                 UserDataRepository dataRepo,
                                 LdapAdapter ldapAdapter,
                                 HierarchyTreeNodeRepository hierarchyTreeNodeRepo,
                                 HibernateSearchService hibernateSearchService); @Override boolean userExists(@NonNull String userId); @Override boolean userIsManager(@NonNull User user); @Override HierarchyTreeNode getHierarchyForUser(@NonNull User user); @Override UserData getUserData(@NonNull User user); @Override User getUserById(@NonNull String userId); @Override boolean userHasStaffMember(@NonNull User user, @NonNull User staffMember); @Override User getManagerOfUser(@NonNull User user); @Override List<UserData> getStaffMemberUserDataOfUser(@NonNull User user, @NonNull Sort sort); @Override List<UserData> searchStaffMemberDataOfUser(User user, String query, Sort sort); @Override List<User> getStaffMembersOfUser(@NonNull User user); @Override User save(@NonNull User user); @Override void delete(User user); @Override void deleteUserById(String userId); @Override Map<User, Boolean> usersAreManagers(@NonNull Set<User> users); User getOrCreateUserById(@NonNull String userId); @Override void removeAllApplicationsOfUser(User user);  }
@Test public void searchStaffMemberDataOfUserSearchesAndIntitializesThumbnailPhotos() { var givenSimpleQuery = "query"; given(hierarchyTreeNodeRepoMock.findByUser(userMock)).willReturn(Optional.of(hierarchyTreeNodeMock)); given(hierarchyTreeNodeMock.getStaff()).willReturn(List.of(otherHierarchyTreeNodeMock)); given(otherHierarchyTreeNodeMock.getUser()).willReturn(userMock); given(userDataMock.getUser()).willReturn(userMock); given(userDataMock.isPictureInitialized()).willReturn(true); given(hibernateSearchServiceMock.searchUserData(List.of(userMock), givenSimpleQuery)).willReturn(List.of(userDataMock)); given(ldapAdapterMock.getThumbnailPhotos(List.of())).willReturn(Map.of()); var actualUserData = repoUserService.searchStaffMemberDataOfUser(userMock, givenSimpleQuery, Sort.unsorted()); assertThat(actualUserData).containsExactly(userDataMock); }