Implement proceed from for git

This commit is contained in:
Rene Pfeuffer
2020-02-18 09:57:57 +01:00
parent f68423a5d8
commit 67e58209cf
4 changed files with 51 additions and 2 deletions

View File

@@ -253,7 +253,7 @@ public class GitBrowseCommand extends AbstractGitCommand
private FileObject findChildren(FileObject parent, org.eclipse.jgit.lib.Repository repo, BrowseCommandRequest request, ObjectId revId, TreeWalk treeWalk) throws IOException {
List<FileObject> files = Lists.newArrayList();
while (treeWalk.next() && resultCount < request.getLimit())
while (treeWalk.next() && resultCount < request.getLimit() + request.getProceedFrom())
{
FileObject fileObject = createFileObject(repo, request, revId, treeWalk);
@@ -262,7 +262,9 @@ public class GitBrowseCommand extends AbstractGitCommand
return fileObject;
}
files.add(fileObject);
if (resultCount >= request.getProceedFrom()) {
files.add(fileObject);
}
++resultCount;

View File

@@ -249,6 +249,20 @@ public class GitBrowseCommandTest extends AbstractGitCommandTestBase {
assertThat(foList).hasSize(2);
}
@Test
public void testBrowseProceedFrom() throws IOException {
BrowseCommandRequest request = new BrowseCommandRequest();
request.setLimit(2);
request.setProceedFrom(2);
FileObject root = createCommand()
.getBrowserResult(request).getFile();
assertNotNull(root);
Collection<FileObject> foList = root.getChildren();
assertThat(foList).extracting("name").contains("c", "f.txt");
}
private FileObject findFile(Collection<FileObject> foList, String name) {
return foList.stream()
.filter(f -> name.equals(f.getName()))