@Override public CompletableFuture<Map<String, RepositoryInfo>> listRepositories(String projectName) { final CompletableFuture<List<Repository>> future = run( callback -> client.listRepositories(projectName, callback)); return future.thenApply(list -> convertToMap( list, Function.identity(), Repository::getName, r -> new RepositoryInfo(r.getName(), CommitConverter.TO_MODEL.convert(r.getHead())))); }
@Test public void testListRepositories() throws Exception { final Map<String, RepositoryInfo> repos = rule.client().listRepositories(rule.project()).join(); // Should contain 2 "rNNN"s assertThat(repos.keySet()).containsExactlyInAnyOrder(Project.REPO_DOGMA, Project.REPO_META, rule.repo1(), rule.repo2()); for (RepositoryInfo r : repos.values()) { final Commit headCommit = r.lastCommit(); assertThat(headCommit).isNotNull(); } } }
@Override public CompletableFuture<Map<String, RepositoryInfo>> listRepositories(String projectName) { final CompletableFuture<List<Repository>> future = run( callback -> client.listRepositories(projectName, callback)); return future.thenApply(list -> convertToMap( list, Function.identity(), Repository::getName, r -> new RepositoryInfo(r.getName(), CommitConverter.TO_MODEL.convert(r.getHead())))); }
@Override public CompletableFuture<Map<String, RepositoryInfo>> listRepositories(String projectName) { final CompletableFuture<List<Repository>> future = run( callback -> client.listRepositories(projectName, callback)); return future.thenApply(list -> convertToMap( list, Function.identity(), Repository::getName, r -> new RepositoryInfo(r.getName(), CommitConverter.TO_MODEL.convert(r.getHead())))); }
@Test public void listRepositories() throws Exception { doAnswer(invocation -> { final AsyncMethodCallback<List<Repository>> callback = invocation.getArgument(1); final Repository repository = new Repository("repo").setHead( new TCommit(new TRevision(42), new TAuthor("hitchhiker", "arthur@dent.com"), "1978-03-08T00:00:00Z", "The primary phrase", new Comment(""), null)); callback.onComplete(ImmutableList.of(repository)); return null; }).when(iface).listRepositories(any(), any()); assertThat(client.listRepositories("project").get()).isEqualTo(ImmutableMap.of( "repo", new RepositoryInfo( "repo", new Commit(new Revision(42), new Author("hitchhiker", "arthur@dent.com"), Instant.parse("1978-03-08T00:00:00Z").toEpochMilli(), "The primary phrase", "", Markup.PLAINTEXT)))); verify(iface).listRepositories(eq("project"), any()); }