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.pgm;
44
45
46 import static org.junit.Assert.assertArrayEquals;
47 import static org.junit.Assert.assertEquals;
48 import static org.junit.Assert.assertTrue;
49
50 import java.util.List;
51
52 import org.eclipse.jgit.api.Git;
53 import org.eclipse.jgit.lib.CLIRepositoryTestCase;
54 import org.eclipse.jgit.lib.Repository;
55 import org.eclipse.jgit.lib.StoredConfig;
56 import org.eclipse.jgit.transport.RefSpec;
57 import org.eclipse.jgit.transport.RemoteConfig;
58 import org.eclipse.jgit.transport.URIish;
59 import org.junit.Before;
60 import org.junit.Test;
61
62 public class RemoteTest extends CLIRepositoryTestCase {
63
64 private StoredConfig config;
65
66 private RemoteConfig remote;
67
68 @Before
69 @Override
70 public void setUp() throws Exception {
71 super.setUp();
72
73
74 Repository remoteRepository = createWorkRepository();
75
76
77 config = db.getConfig();
78 remote = new RemoteConfig(config, "test");
79 remote.addFetchRefSpec(
80 new RefSpec("+refs/heads/*:refs/remotes/test/*"));
81 URIish uri = new URIish(
82 remoteRepository.getDirectory().toURI().toURL());
83 remote.addURI(uri);
84 remote.update(config);
85 config.save();
86
87 Git.wrap(remoteRepository).commit().setMessage("initial commit").call();
88 }
89
90 @Test
91 public void testList() throws Exception {
92 assertArrayEquals(new String[] { remote.getName(), "" },
93 execute("git remote"));
94 }
95
96 @Test
97 public void testVerboseList() throws Exception {
98 assertArrayEquals(
99 new String[] {
100 String.format("%s\t%s (fetch)", remote.getName(),
101 remote.getURIs().get(0)),
102 String.format("%s\t%s (push)", remote.getName(),
103 remote.getURIs().get(0)),
104 "" },
105 execute("git remote -v"));
106 }
107
108 @Test
109 public void testAdd() throws Exception {
110 assertArrayEquals(new String[] { "" },
111 execute("git remote add second git://test.com/second"));
112
113 List<RemoteConfig> remotes = RemoteConfig.getAllRemoteConfigs(config);
114 assertEquals(2, remotes.size());
115 assertEquals("second", remotes.get(0).getName());
116 assertEquals("test", remotes.get(1).getName());
117 }
118
119 @Test
120 public void testRemove() throws Exception {
121 assertArrayEquals(new String[] { "" },
122 execute("git remote remove test"));
123
124 assertTrue(RemoteConfig.getAllRemoteConfigs(config).isEmpty());
125 }
126
127 @Test
128 public void testSetUrl() throws Exception {
129 assertArrayEquals(new String[] { "" },
130 execute("git remote set-url test git://test.com/test"));
131
132 RemoteConfig result = new RemoteConfig(config, "test");
133 assertEquals("test", result.getName());
134 assertArrayEquals(new URIish[] { new URIish("git://test.com/test") },
135 result.getURIs().toArray());
136 assertTrue(result.getPushURIs().isEmpty());
137 }
138
139 @Test
140 public void testSetUrlPush() throws Exception {
141 assertArrayEquals(new String[] { "" },
142 execute("git remote set-url --push test git://test.com/test"));
143
144 RemoteConfig result = new RemoteConfig(config, "test");
145 assertEquals("test", result.getName());
146 assertEquals(remote.getURIs(), result.getURIs());
147 assertArrayEquals(new URIish[] { new URIish("git://test.com/test") },
148 result.getPushURIs().toArray());
149 }
150
151 @Test
152 public void testUpdate() throws Exception {
153 assertArrayEquals(new String[] {
154 "From " + remote.getURIs().get(0).toString(),
155 " * [new branch] master -> test/master", "", "" },
156 execute("git remote update test"));
157 }
158
159 }