1
2
3
4
5
6
7
8
9
10
11 package org.eclipse.jgit.transport;
12
13 import static org.hamcrest.MatcherAssert.assertThat;
14 import static org.hamcrest.Matchers.contains;
15
16 import java.util.List;
17 import java.util.stream.Collectors;
18 import java.util.stream.Stream;
19
20 import org.eclipse.jgit.lib.ObjectId;
21 import org.eclipse.jgit.lib.ObjectIdRef.Unpeeled;
22 import org.eclipse.jgit.lib.Ref;
23 import org.eclipse.jgit.lib.Ref.Storage;
24 import org.junit.Test;
25
26 public class UploadPackRefSortingForReachabilityTest {
27
28 @Test
29 public void sortReferences() {
30 List<Ref> refs = Stream.of("refs/changes/12/12", "refs/changes/12/1",
31 "refs/heads/master", "refs/heads/something",
32 "refs/changes/55/1", "refs/tags/v1.1")
33 .map(s -> new Unpeeled(Storage.LOOSE, s, ObjectId.zeroId()))
34 .collect(Collectors.toList());
35 Stream<Ref> sorted = UploadPack.importantRefsFirst(refs);
36 List<String> collected = sorted.map(Ref::getName)
37 .collect(Collectors.toList());
38 assertThat(collected,
39 contains("refs/heads/master", "refs/heads/something",
40 "refs/tags/v1.1", "refs/changes/12/12",
41 "refs/changes/12/1", "refs/changes/55/1"));
42 }
43 }