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.fail;
47
48 import java.io.File;
49 import java.io.IOException;
50
51 import org.eclipse.jgit.api.ListBranchCommand.ListMode;
52 import org.eclipse.jgit.api.errors.GitAPIException;
53 import org.eclipse.jgit.api.errors.JGitInternalException;
54 import org.eclipse.jgit.errors.RepositoryNotFoundException;
55 import org.eclipse.jgit.junit.RepositoryTestCase;
56 import org.eclipse.jgit.lib.Repository;
57 import org.eclipse.jgit.util.FileUtils;
58 import org.junit.Before;
59 import org.junit.Test;
60
61 public class GitConstructionTest extends RepositoryTestCase {
62 private Repository bareRepo;
63
64 @Override
65 @Before
66 public void setUp() throws Exception {
67 super.setUp();
68 try (Git git = new Git(db)) {
69 git.commit().setMessage("initial commit").call();
70 writeTrashFile("Test.txt", "Hello world");
71 git.add().addFilepattern("Test.txt").call();
72 git.commit().setMessage("Initial commit").call();
73 }
74
75 bareRepo = Git.cloneRepository().setBare(true)
76 .setURI(db.getDirectory().toURI().toString())
77 .setDirectory(createUniqueTestGitDir(true)).call()
78 .getRepository();
79 addRepoToClose(bareRepo);
80 }
81
82 @Test
83 public void testWrap() throws JGitInternalException, GitAPIException {
84 Git git = Git.wrap(db);
85 assertEquals(1, git.branchList().call().size());
86
87 git = Git.wrap(bareRepo);
88 assertEquals(1, git.branchList().setListMode(ListMode.ALL).call()
89 .size());
90
91 try {
92 Git.wrap(null);
93 fail("Expected exception has not been thrown");
94 } catch (NullPointerException e) {
95
96 }
97 }
98
99 @Test
100 public void testOpen() throws IOException, JGitInternalException,
101 GitAPIException {
102 Git git = Git.open(db.getDirectory());
103 assertEquals(1, git.branchList().call().size());
104
105 git = Git.open(bareRepo.getDirectory());
106 assertEquals(1, git.branchList().setListMode(ListMode.ALL).call()
107 .size());
108
109 git = Git.open(db.getWorkTree());
110 assertEquals(1, git.branchList().setListMode(ListMode.ALL).call()
111 .size());
112
113 try {
114 Git.open(db.getObjectsDirectory());
115 fail("Expected exception has not been thrown");
116 } catch (RepositoryNotFoundException e) {
117
118 }
119 }
120
121 @Test
122
123
124
125
126
127
128
129
130
131
132 public void testClose() throws IOException, JGitInternalException,
133 GitAPIException {
134 File workTree = db.getWorkTree();
135 Git git = Git.open(workTree);
136 git.gc().setExpire(null).call();
137 git.checkout().setName(git.getRepository().resolve("HEAD^").getName())
138 .call();
139 try {
140 FileUtils.delete(workTree, FileUtils.RECURSIVE);
141 } catch (IOException e) {
142 git.close();
143 FileUtils.delete(workTree, FileUtils.RECURSIVE);
144 }
145 }
146 }