FetchCommandTest: test add/update/delete fetch

Change-Id: I2442394fb7eae5b3715779555477dd27b274ee83
Signed-off-by: Marc Strapetz <marc.strapetz@syntevo.com>
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
This commit is contained in:
Marc Strapetz 2017-12-30 11:12:14 +01:00 committed by Thomas Wolf
parent ce84d0dfc6
commit 109c07ac8e
1 changed files with 85 additions and 0 deletions

View File

@ -101,6 +101,91 @@ public void testFetch() throws Exception {
db.resolve(tagRef.getObjectId().getName()));
}
@Test
public void fetchAddsBranches() throws Exception {
final String branch1 = "b1";
final String branch2 = "b2";
final String remoteBranch1 = "test/" + branch1;
final String remoteBranch2 = "test/" + branch2;
remoteGit.commit().setMessage("commit").call();
Ref branchRef1 = remoteGit.branchCreate().setName(branch1).call();
remoteGit.commit().setMessage("commit").call();
Ref branchRef2 = remoteGit.branchCreate().setName(branch2).call();
String spec = "refs/heads/*:refs/remotes/test/*";
git.fetch().setRemote("test").setRefSpecs(spec).call();
assertEquals(branchRef1.getObjectId(), db.resolve(remoteBranch1));
assertEquals(branchRef2.getObjectId(), db.resolve(remoteBranch2));
}
@Test
public void fetchDoesntDeleteBranches() throws Exception {
final String branch1 = "b1";
final String branch2 = "b2";
final String remoteBranch1 = "test/" + branch1;
final String remoteBranch2 = "test/" + branch2;
remoteGit.commit().setMessage("commit").call();
Ref branchRef1 = remoteGit.branchCreate().setName(branch1).call();
remoteGit.commit().setMessage("commit").call();
Ref branchRef2 = remoteGit.branchCreate().setName(branch2).call();
String spec = "refs/heads/*:refs/remotes/test/*";
git.fetch().setRemote("test").setRefSpecs(spec).call();
assertEquals(branchRef1.getObjectId(), db.resolve(remoteBranch1));
assertEquals(branchRef2.getObjectId(), db.resolve(remoteBranch2));
remoteGit.branchDelete().setBranchNames(branch1).call();
git.fetch().setRemote("test").setRefSpecs(spec).call();
assertEquals(branchRef1.getObjectId(), db.resolve(remoteBranch1));
assertEquals(branchRef2.getObjectId(), db.resolve(remoteBranch2));
}
@Test
public void fetchUpdatesBranches() throws Exception {
final String branch1 = "b1";
final String branch2 = "b2";
final String remoteBranch1 = "test/" + branch1;
final String remoteBranch2 = "test/" + branch2;
remoteGit.commit().setMessage("commit").call();
Ref branchRef1 = remoteGit.branchCreate().setName(branch1).call();
remoteGit.commit().setMessage("commit").call();
Ref branchRef2 = remoteGit.branchCreate().setName(branch2).call();
String spec = "refs/heads/*:refs/remotes/test/*";
git.fetch().setRemote("test").setRefSpecs(spec).call();
assertEquals(branchRef1.getObjectId(), db.resolve(remoteBranch1));
assertEquals(branchRef2.getObjectId(), db.resolve(remoteBranch2));
remoteGit.commit().setMessage("commit").call();
branchRef2 = remoteGit.branchCreate().setName(branch2).setForce(true).call();
git.fetch().setRemote("test").setRefSpecs(spec).call();
assertEquals(branchRef1.getObjectId(), db.resolve(remoteBranch1));
assertEquals(branchRef2.getObjectId(), db.resolve(remoteBranch2));
}
@Test
public void fetchPrunesBranches() throws Exception {
final String branch1 = "b1";
final String branch2 = "b2";
final String remoteBranch1 = "test/" + branch1;
final String remoteBranch2 = "test/" + branch2;
remoteGit.commit().setMessage("commit").call();
Ref branchRef1 = remoteGit.branchCreate().setName(branch1).call();
remoteGit.commit().setMessage("commit").call();
Ref branchRef2 = remoteGit.branchCreate().setName(branch2).call();
String spec = "refs/heads/*:refs/remotes/test/*";
git.fetch().setRemote("test").setRefSpecs(spec).call();
assertEquals(branchRef1.getObjectId(), db.resolve(remoteBranch1));
assertEquals(branchRef2.getObjectId(), db.resolve(remoteBranch2));
remoteGit.branchDelete().setBranchNames(branch1).call();
git.fetch().setRemote("test").setRefSpecs(spec)
.setRemoveDeletedRefs(true).call();
assertNull(db.resolve(remoteBranch1));
assertEquals(branchRef2.getObjectId(), db.resolve(remoteBranch2));
}
@Test
public void fetchShouldAutoFollowTag() throws Exception {
remoteGit.commit().setMessage("commit").call();