MultipleRepository extends MergeableRepository { @Override public RepositoryDTO fetchInstallableApplications() { LOGGER.info(String.format("Fetching applications for: %s", this.toString())); final Map<Repository, RepositoryDTO> repositoriesMap = this.repositories.stream().parallel() .collect(Collectors.toConcurrentMap(source -> source, Repository::fetchInstallableApplications)); return mergeRepositories(repositoriesMap, repositories); } MultipleRepository(Repository... repositories);  MultipleRepository(List<Repository> repositories); @Override RepositoryDTO fetchInstallableApplications(); @Override void onDelete(); int size(); void moveRepository(Repository repository, int toIndex); void addRepository(Repository repository); void addRepository(int index, Repository repository); void removeRepository(Repository repository); @Override String toString(); @Override boolean equals(Object o); @Override int hashCode();  }
@Test public void testWithEmptyListEmptySetIsReturned() { final MultipleRepository multipleRepository = new MultipleRepository(); assertEquals(null, multipleRepository.fetchInstallableApplications()); }