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.util;
44
45 import static org.junit.Assert.assertEquals;
46 import static org.mockito.Mockito.when;
47
48 import java.nio.charset.StandardCharsets;
49 import java.nio.file.Files;
50 import java.nio.file.Path;
51
52 import org.eclipse.jgit.storage.file.FileBasedConfig;
53 import org.junit.After;
54 import org.junit.Before;
55 import org.junit.Test;
56 import org.junit.runner.RunWith;
57 import org.mockito.Mock;
58 import org.mockito.junit.MockitoJUnitRunner;
59
60 @RunWith(MockitoJUnitRunner.class)
61 public class SystemReaderTest {
62 private Path trash;
63
64 private Path mockSystemConfig;
65
66 private Path mockUserConfig;
67
68 @Mock
69 private FS fs;
70
71 @Before
72 public void setup() throws Exception {
73 trash = Files.createTempDirectory("jgit_test");
74 mockSystemConfig = trash.resolve("systemgitconfig");
75 Files.write(mockSystemConfig, "[core]\n trustFolderStat = false\n"
76 .getBytes(StandardCharsets.UTF_8));
77 mockUserConfig = trash.resolve(".gitconfig");
78 Files.write(mockUserConfig,
79 "[core]\n bare = false\n".getBytes(StandardCharsets.UTF_8));
80 when(fs.getGitSystemConfig()).thenReturn(mockSystemConfig.toFile());
81 when(fs.userHome()).thenReturn(trash.toFile());
82 SystemReader.setInstance(null);
83 }
84
85 @After
86 public void teardown() throws Exception {
87 FileUtils.delete(trash.toFile(), FileUtils.RECURSIVE | FileUtils.RETRY);
88 }
89
90 @Test
91 public void openSystemConfigReturnsDifferentInstances() throws Exception {
92 FileBasedConfig system1 = SystemReader.getInstance()
93 .openSystemConfig(null, fs);
94 system1.load();
95 assertEquals("false",
96 system1.getString("core", null, "trustFolderStat"));
97
98 FileBasedConfig system2 = SystemReader.getInstance()
99 .openSystemConfig(null, fs);
100 system2.load();
101 assertEquals("false",
102 system2.getString("core", null, "trustFolderStat"));
103
104 system1.setString("core", null, "trustFolderStat", "true");
105 assertEquals("true",
106 system1.getString("core", null, "trustFolderStat"));
107 assertEquals("false",
108 system2.getString("core", null, "trustFolderStat"));
109 }
110
111 @Test
112 public void openUserConfigReturnsDifferentInstances() throws Exception {
113 FileBasedConfig user1 = SystemReader.getInstance().openUserConfig(null,
114 fs);
115 user1.load();
116 assertEquals("false", user1.getString("core", null, "bare"));
117
118 FileBasedConfig user2 = SystemReader.getInstance().openUserConfig(null,
119 fs);
120 user2.load();
121 assertEquals("false", user2.getString("core", null, "bare"));
122
123 user1.setString("core", null, "bare", "true");
124 assertEquals("true", user1.getString("core", null, "bare"));
125 assertEquals("false", user2.getString("core", null, "bare"));
126 }
127 }