Implement Projects.list() method
Change-Id: I9d4d0b746e5b8cdfe7dfa289411742d2bcf9f4a4
This commit is contained in:
parent
eeca707cc7
commit
c646a8c5ed
@ -15,11 +15,14 @@
|
|||||||
package com.google.gerrit.acceptance.api.project;
|
package com.google.gerrit.acceptance.api.project;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.junit.Assert.assertNotNull;
|
||||||
|
import static org.junit.Assert.assertNull;
|
||||||
|
|
||||||
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
||||||
import com.google.gerrit.acceptance.NoHttpd;
|
import com.google.gerrit.acceptance.NoHttpd;
|
||||||
import com.google.gerrit.extensions.api.projects.BranchInput;
|
import com.google.gerrit.extensions.api.projects.BranchInput;
|
||||||
import com.google.gerrit.extensions.api.projects.ProjectInput;
|
import com.google.gerrit.extensions.api.projects.ProjectInput;
|
||||||
|
import com.google.gerrit.extensions.common.ProjectInfo;
|
||||||
import com.google.gerrit.extensions.restapi.ResourceConflictException;
|
import com.google.gerrit.extensions.restapi.ResourceConflictException;
|
||||||
import com.google.gerrit.extensions.restapi.RestApiException;
|
import com.google.gerrit.extensions.restapi.RestApiException;
|
||||||
|
|
||||||
@ -27,6 +30,7 @@ import org.eclipse.jgit.api.errors.GitAPIException;
|
|||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@NoHttpd
|
@NoHttpd
|
||||||
public class ProjectIT extends AbstractDaemonTest {
|
public class ProjectIT extends AbstractDaemonTest {
|
||||||
@ -71,4 +75,45 @@ public class ProjectIT extends AbstractDaemonTest {
|
|||||||
.branch("foo")
|
.branch("foo")
|
||||||
.create(new BranchInput());
|
.create(new BranchInput());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void listProjects() throws Exception {
|
||||||
|
List<ProjectInfo> initialProjects = gApi.projects().list().get();
|
||||||
|
|
||||||
|
gApi.projects().name("foo").create();
|
||||||
|
gApi.projects().name("bar").create();
|
||||||
|
|
||||||
|
List<ProjectInfo> allProjects = gApi.projects().list().get();
|
||||||
|
assertEquals(initialProjects.size() + 2, allProjects.size());
|
||||||
|
|
||||||
|
List<ProjectInfo> projectsWithDescription = gApi.projects().list()
|
||||||
|
.withDescription(true)
|
||||||
|
.get();
|
||||||
|
assertNotNull(projectsWithDescription.get(0).description);
|
||||||
|
|
||||||
|
List<ProjectInfo> projectsWithoutDescription = gApi.projects().list()
|
||||||
|
.withDescription(false)
|
||||||
|
.get();
|
||||||
|
assertNull(projectsWithoutDescription.get(0).description);
|
||||||
|
|
||||||
|
List<ProjectInfo> noMatchingProjects = gApi.projects().list()
|
||||||
|
.withPrefix("fox")
|
||||||
|
.get();
|
||||||
|
assertEquals(0, noMatchingProjects.size());
|
||||||
|
|
||||||
|
List<ProjectInfo> matchingProject = gApi.projects().list()
|
||||||
|
.withPrefix("fo")
|
||||||
|
.get();
|
||||||
|
assertEquals(1, matchingProject.size());
|
||||||
|
|
||||||
|
List<ProjectInfo> limitOneProject = gApi.projects().list()
|
||||||
|
.withLimit(1)
|
||||||
|
.get();
|
||||||
|
assertEquals(1, limitOneProject.size());
|
||||||
|
|
||||||
|
List<ProjectInfo> startAtOneProjects = gApi.projects().list()
|
||||||
|
.withStart(1)
|
||||||
|
.get();
|
||||||
|
assertEquals(allProjects.size() - 1, startAtOneProjects.size());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,23 +14,32 @@
|
|||||||
|
|
||||||
package com.google.gerrit.server.api.projects;
|
package com.google.gerrit.server.api.projects;
|
||||||
|
|
||||||
|
import com.google.common.collect.ImmutableList;
|
||||||
import com.google.gerrit.extensions.api.projects.ProjectApi;
|
import com.google.gerrit.extensions.api.projects.ProjectApi;
|
||||||
import com.google.gerrit.extensions.api.projects.Projects;
|
import com.google.gerrit.extensions.api.projects.Projects;
|
||||||
|
import com.google.gerrit.extensions.common.ProjectInfo;
|
||||||
import com.google.gerrit.extensions.restapi.RestApiException;
|
import com.google.gerrit.extensions.restapi.RestApiException;
|
||||||
import com.google.gerrit.extensions.restapi.UnprocessableEntityException;
|
import com.google.gerrit.extensions.restapi.UnprocessableEntityException;
|
||||||
|
import com.google.gerrit.server.project.ListProjects;
|
||||||
import com.google.gerrit.server.project.ProjectsCollection;
|
import com.google.gerrit.server.project.ProjectsCollection;
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
|
import com.google.inject.Provider;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
class ProjectsImpl extends Projects.NotImplemented implements Projects {
|
class ProjectsImpl extends Projects.NotImplemented implements Projects {
|
||||||
private final ProjectsCollection projects;
|
private final ProjectsCollection projects;
|
||||||
private final ProjectApiImpl.Factory api;
|
private final ProjectApiImpl.Factory api;
|
||||||
|
private final Provider<ListProjects> listProvider;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
ProjectsImpl(ProjectsCollection projects, ProjectApiImpl.Factory api) {
|
ProjectsImpl(ProjectsCollection projects,
|
||||||
|
ProjectApiImpl.Factory api,
|
||||||
|
Provider<ListProjects> listProvider) {
|
||||||
this.projects = projects;
|
this.projects = projects;
|
||||||
this.api = api;
|
this.api = api;
|
||||||
|
this.listProvider = listProvider;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -43,4 +52,24 @@ class ProjectsImpl extends Projects.NotImplemented implements Projects {
|
|||||||
throw new RestApiException("Cannot retrieve project");
|
throw new RestApiException("Cannot retrieve project");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ListRequest list() {
|
||||||
|
return new ListRequest() {
|
||||||
|
@Override
|
||||||
|
public List<ProjectInfo> get() throws RestApiException {
|
||||||
|
return list(this);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<ProjectInfo> list(ListRequest request) throws RestApiException {
|
||||||
|
ListProjects lp = listProvider.get();
|
||||||
|
lp.setShowDescription(request.getDescription());
|
||||||
|
lp.setLimit(request.getLimit());
|
||||||
|
lp.setStart(request.getStart());
|
||||||
|
lp.setMatchPrefix(request.getPrefix());
|
||||||
|
|
||||||
|
return ImmutableList.copyOf(lp.apply().values());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user