/* * Copyright (C) 2017, 2022 David Pursehouse 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); } }