Run local git-upload-pack directly in the source repository
[egit/zawir.git] / org.spearce.jgit.test / tst / org / spearce / jgit / fetch / FetchTest.java
blobc57af9c58de6be488a35d6bb97691278375e919d
1 package org.spearce.jgit.fetch;
3 import java.io.IOException;
5 import org.spearce.jgit.lib.Commit;
6 import org.spearce.jgit.lib.LockFile;
7 import org.spearce.jgit.lib.ObjectWriter;
8 import org.spearce.jgit.lib.PersonIdent;
9 import org.spearce.jgit.lib.Repository;
10 import org.spearce.jgit.lib.RepositoryTestCase;
11 import org.spearce.jgit.lib.TextProgressMonitor;
13 public class FetchTest extends RepositoryTestCase {
15 public void testSimpleFullLocalClone() throws IOException {
16 final Repository newRepo = createNewEmptyRepo();
17 FetchClient client = LocalGitProtocolFetchClient.create(newRepo, "origintest", trash_git);
18 client.run(new TextProgressMonitor());
20 assertEquals("6db9c2ebf75590eef973081736730a9ea169a0c4", newRepo.mapCommit("remotes/origintest/a").getCommitId().toString());
21 assertEquals("17768080a2318cd89bba4c8b87834401e2095703", newRepo.mapTag("refs/tags/B").getTagId().toString());
22 assertEquals("d86a2aada2f5e7ccf6f11880bfb9ab404e8a8864", newRepo.mapTag("refs/tags/B").getObjId().toString());
23 assertEquals("6db9c2ebf75590eef973081736730a9ea169a0c4", newRepo.mapTag("refs/tags/A").getObjId().toString());
24 assertNull(newRepo.mapTag("refs/tags/A").getTagId());
26 // Now do an incremental update test too, a non-fast-forward
27 Commit commit = new Commit(db);
28 commit.setAuthor(new PersonIdent(jauthor, 100, 1));
29 commit.setCommitter(new PersonIdent(jcommitter, 101,2));
30 commit.setMessage("Update");
31 commit.setTree(db.mapTree("refs/heads/a"));
32 ObjectWriter ow = new ObjectWriter(db);
33 commit.setCommitId(ow.writeCommit(commit));
34 LockFile lockRef = db.lockRef("refs/heads/a");
35 lockRef.write(commit.getCommitId());
36 if (!lockRef.commit())
37 throw new IllegalStateException("Could not update refs/heafs/a in test");
39 FetchClient client2 = LocalGitProtocolFetchClient.create(newRepo, "origintest", trash_git);
40 client2.run(new TextProgressMonitor());
42 assertEquals("9bac73222088373f5a41ed64994adc881a0a27b6", newRepo.mapCommit("remotes/origintest/a").getCommitId().toString());
43 // the rest is unchanged
44 assertEquals("17768080a2318cd89bba4c8b87834401e2095703", newRepo.mapTag("refs/tags/B").getTagId().toString());
45 assertEquals("d86a2aada2f5e7ccf6f11880bfb9ab404e8a8864", newRepo.mapTag("refs/tags/B").getObjId().toString());
46 assertEquals("6db9c2ebf75590eef973081736730a9ea169a0c4", newRepo.mapTag("refs/tags/A").getObjId().toString());
47 assertNull(newRepo.mapTag("refs/tags/A").getTagId());