aboutsummaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit.pgm.test
diff options
context:
space:
mode:
authorMatthias Sohn <matthias.sohn@sap.com>2019-08-10 23:44:39 +0200
committerMatthias Sohn <matthias.sohn@sap.com>2019-08-11 00:06:03 +0200
commitc28167e1036fe132f8a66db7943d54ee8d869d34 (patch)
tree15c3aca320f4104e486f2ac1b8a8bb2fd6aee3e7 /org.eclipse.jgit.pgm.test
parent12d03a97d8c2796a0728afb4e00d4d1c32b93f8b (diff)
downloadjgit-c28167e1036fe132f8a66db7943d54ee8d869d34.tar.gz
jgit-c28167e1036fe132f8a66db7943d54ee8d869d34.zip
Ensure LocalDiskRepositoryTestCase#setup fully uses MockSystemReader
FS#getFileStoreAttributes used the real userConfig and not the mocked one. This led to test errors when running tests with Bazel since it sandboxes tests which prevents they can write to ~/.gitconfig. Fix this by first preparing the MockedSystemReader and the mocked config before calling FS#getFileStoreAttributes. Also fix ConfigTest which broke due to this change since it inherits from LocalDiskRepositoryTestCase and calls its setup method which was changed here. We can no longer assert by comparing plain text since FS adds FileStoreAttributes to the mocked userConfig. Also the default options seen by this test changed since we now use a mocked config. Change-Id: I76bc7c94953fe979266147d3b309a68dda9d4dfe Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
Diffstat (limited to 'org.eclipse.jgit.pgm.test')
-rw-r--r--org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/ConfigTest.java45
1 files changed, 29 insertions, 16 deletions
diff --git a/org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/ConfigTest.java b/org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/ConfigTest.java
index 0ce645139d..1ce86d15ed 100644
--- a/org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/ConfigTest.java
+++ b/org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/ConfigTest.java
@@ -43,14 +43,14 @@
package org.eclipse.jgit.pgm;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
-import java.util.ArrayList;
import java.util.Arrays;
-import java.util.List;
+import java.util.HashMap;
+import java.util.Map;
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.lib.CLIRepositoryTestCase;
-import org.eclipse.jgit.util.FS;
import org.eclipse.jgit.util.SystemReader;
import org.junit.Before;
import org.junit.Test;
@@ -65,6 +65,7 @@ public class ConfigTest extends CLIRepositoryTestCase {
}
}
+ @SuppressWarnings("boxing")
@Test
public void testListConfig() throws Exception {
boolean isWindows = SystemReader.getInstance().getProperty("os.name")
@@ -73,19 +74,31 @@ public class ConfigTest extends CLIRepositoryTestCase {
.equals("Mac OS X");
String[] output = execute("git config --list");
- List<String> expect = new ArrayList<>();
- expect.add("gc.autoDetach=false");
- expect.add("core.filemode=" + !isWindows);
- expect.add("core.logallrefupdates=true");
- if (isMac)
- expect.add("core.precomposeunicode=true");
- expect.add("core.repositoryformatversion=0");
- if (!FS.DETECTED.supportsSymlinks())
- expect.add("core.symlinks=false");
- expect.add(""); // ends with LF (last line empty)
- assertEquals("expected default configuration",
- Arrays.asList(expect.toArray()).toString(),
- Arrays.asList(output).toString());
+
+ Map<String, String> options = parseOptions(output);
+
+ assertEquals(!isWindows, Boolean.valueOf(options.get("core.filemode")));
+ assertTrue((Boolean.valueOf(options.get("core.logallrefupdates"))));
+ if (isMac) {
+ assertTrue(
+ (Boolean.valueOf(options.get("core.precomposeunicode"))));
+ }
+ assertEquals(Integer.valueOf(0),
+ Integer.valueOf(options.get("core.repositoryformatversion")));
+ }
+
+ private Map<String, String> parseOptions(String[] output) {
+ Map<String, String> options = new HashMap<>();
+ Arrays.stream(output).forEachOrdered(s -> {
+ int p = s.indexOf('=');
+ if (p == -1) {
+ return;
+ }
+ String key = s.substring(0, p);
+ String value = s.substring(p + 1);
+ options.put(key, value);
+ });
+ return options;
}
}