1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 package org.eclipse.jgit.api;
44
45 import static org.junit.Assert.assertEquals;
46 import static org.junit.Assert.assertNotNull;
47
48 import java.io.File;
49 import java.util.Collection;
50
51 import org.eclipse.jgit.junit.RepositoryTestCase;
52 import org.eclipse.jgit.lib.Constants;
53 import org.eclipse.jgit.lib.Ref;
54 import org.eclipse.jgit.lib.RefUpdate;
55 import org.junit.Test;
56
57 public class LsRemoteCommandTest extends RepositoryTestCase {
58
59 private Git git;
60
61 @Override
62 public void setUp() throws Exception {
63 super.setUp();
64 git = new Git(db);
65
66 writeTrashFile("Test.txt", "Hello world");
67 git.add().addFilepattern("Test.txt").call();
68 git.commit().setMessage("Initial commit").call();
69
70
71 git.branchCreate().setName("test").call();
72 RefUpdate rup = db.updateRef(Constants.HEAD);
73 rup.link("refs/heads/test");
74
75
76 git.tag().setName("tag1").call();
77 git.tag().setName("tag2").call();
78 git.tag().setName("tag3").call();
79 }
80
81 @Test
82 public void testLsRemote() throws Exception {
83 File directory = createTempDirectory("testRepository");
84 CloneCommand command = Git.cloneRepository();
85 command.setDirectory(directory);
86 command.setURI(fileUri());
87 command.setCloneAllBranches(true);
88 Git git2 = command.call();
89 addRepoToClose(git2.getRepository());
90
91
92 LsRemoteCommand lsRemoteCommand = git2.lsRemote();
93 Collection<Ref> refs = lsRemoteCommand.call();
94 assertNotNull(refs);
95 assertEquals(6, refs.size());
96 }
97
98 @Test
99 public void testLsRemoteWithTags() throws Exception {
100 File directory = createTempDirectory("testRepository");
101 CloneCommand command = Git.cloneRepository();
102 command.setDirectory(directory);
103 command.setURI(fileUri());
104 command.setCloneAllBranches(true);
105 Git git2 = command.call();
106 addRepoToClose(git2.getRepository());
107
108 LsRemoteCommand lsRemoteCommand = git2.lsRemote();
109 lsRemoteCommand.setTags(true);
110 Collection<Ref> refs = lsRemoteCommand.call();
111 assertNotNull(refs);
112 assertEquals(3, refs.size());
113 }
114
115 @Test
116 public void testLsRemoteWithHeads() throws Exception {
117 File directory = createTempDirectory("testRepository");
118 CloneCommand command = Git.cloneRepository();
119 command.setDirectory(directory);
120 command.setURI(fileUri());
121 command.setCloneAllBranches(true);
122 Git git2 = command.call();
123 addRepoToClose(git2.getRepository());
124
125 LsRemoteCommand lsRemoteCommand = git2.lsRemote();
126 lsRemoteCommand.setHeads(true);
127 Collection<Ref> refs = lsRemoteCommand.call();
128 assertNotNull(refs);
129 assertEquals(2, refs.size());
130 }
131
132 @Test
133 public void testLsRemoteWithoutLocalRepository() throws Exception {
134 String uri = fileUri();
135 Collection<Ref> refs = Git.lsRemoteRepository().setRemote(uri).setHeads(true).call();
136 assertNotNull(refs);
137 assertEquals(2, refs.size());
138 }
139
140 private String fileUri() {
141 return "file://" + git.getRepository().getWorkTree().getAbsolutePath();
142 }
143
144 }