blob: cbc1d546ac8b9eb56063d4ab655f803b0db7a678 [file] [log] [blame]
/*
* Copyright (C) 2017, 2022 David Pursehouse <david.pursehouse@gmail.com> and others
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Distribution License v. 1.0 which is available at
* https://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
package org.eclipse.jgit.transport;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import org.eclipse.jgit.lib.Config;
import org.eclipse.jgit.transport.PushConfig.PushDefault;
import org.eclipse.jgit.transport.PushConfig.PushRecurseSubmodulesMode;
import org.junit.Test;
public class PushConfigTest {
@Test
public void pushRecurseSubmoduleMatch() throws Exception {
assertTrue(PushRecurseSubmodulesMode.CHECK.matchConfigValue("check"));
assertTrue(PushRecurseSubmodulesMode.CHECK.matchConfigValue("CHECK"));
assertTrue(PushRecurseSubmodulesMode.ON_DEMAND
.matchConfigValue("on-demand"));
assertTrue(PushRecurseSubmodulesMode.ON_DEMAND
.matchConfigValue("ON-DEMAND"));
assertTrue(PushRecurseSubmodulesMode.ON_DEMAND
.matchConfigValue("on_demand"));
assertTrue(PushRecurseSubmodulesMode.ON_DEMAND
.matchConfigValue("ON_DEMAND"));
assertTrue(PushRecurseSubmodulesMode.NO.matchConfigValue("no"));
assertTrue(PushRecurseSubmodulesMode.NO.matchConfigValue("NO"));
assertTrue(PushRecurseSubmodulesMode.NO.matchConfigValue("false"));
assertTrue(PushRecurseSubmodulesMode.NO.matchConfigValue("FALSE"));
}
@Test
public void pushRecurseSubmoduleNoMatch() throws Exception {
assertFalse(PushRecurseSubmodulesMode.NO.matchConfigValue("N"));
assertFalse(PushRecurseSubmodulesMode.ON_DEMAND
.matchConfigValue("ONDEMAND"));
}
@Test
public void pushRecurseSubmoduleToConfigValue() {
assertEquals("on-demand",
PushRecurseSubmodulesMode.ON_DEMAND.toConfigValue());
assertEquals("check", PushRecurseSubmodulesMode.CHECK.toConfigValue());
assertEquals("false", PushRecurseSubmodulesMode.NO.toConfigValue());
}
@Test
public void pushDefaultMatch() throws Exception {
assertTrue(PushDefault.NOTHING.matchConfigValue("nothing"));
assertTrue(PushDefault.NOTHING.matchConfigValue("NOTHING"));
assertTrue(PushDefault.CURRENT.matchConfigValue("current"));
assertTrue(PushDefault.CURRENT.matchConfigValue("CURRENT"));
assertTrue(PushDefault.UPSTREAM.matchConfigValue("upstream"));
assertTrue(PushDefault.UPSTREAM.matchConfigValue("UPSTREAM"));
assertTrue(PushDefault.UPSTREAM.matchConfigValue("tracking"));
assertTrue(PushDefault.UPSTREAM.matchConfigValue("TRACKING"));
assertTrue(PushDefault.SIMPLE.matchConfigValue("simple"));
assertTrue(PushDefault.SIMPLE.matchConfigValue("SIMPLE"));
assertTrue(PushDefault.MATCHING.matchConfigValue("matching"));
assertTrue(PushDefault.MATCHING.matchConfigValue("MATCHING"));
}
@Test
public void pushDefaultNoMatch() throws Exception {
assertFalse(PushDefault.NOTHING.matchConfigValue("n"));
assertFalse(PushDefault.CURRENT.matchConfigValue(""));
assertFalse(PushDefault.UPSTREAM.matchConfigValue("track"));
}
@Test
public void pushDefaultToConfigValue() throws Exception {
assertEquals("nothing", PushDefault.NOTHING.toConfigValue());
assertEquals("current", PushDefault.CURRENT.toConfigValue());
assertEquals("upstream", PushDefault.UPSTREAM.toConfigValue());
assertEquals("simple", PushDefault.SIMPLE.toConfigValue());
assertEquals("matching", PushDefault.MATCHING.toConfigValue());
}
@Test
public void testEmptyConfig() throws Exception {
PushConfig cfg = parse("");
assertEquals(PushRecurseSubmodulesMode.NO, cfg.getRecurseSubmodules());
assertEquals(PushDefault.SIMPLE, cfg.getPushDefault());
}
@Test
public void testConfig() throws Exception {
PushConfig cfg = parse(
"[push]\n\tdefault = tracking\n\trecurseSubmodules = on-demand\n");
assertEquals(PushRecurseSubmodulesMode.ON_DEMAND,
cfg.getRecurseSubmodules());
assertEquals(PushDefault.UPSTREAM, cfg.getPushDefault());
}
private static PushConfig parse(String content) throws Exception {
Config c = new Config();
c.fromText(content);
return c.get(PushConfig::new);
}
}