/* * Copyright (C) 2022, Matthias Sohn 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.lib; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertThrows; import java.io.IOException; import org.eclipse.jgit.api.errors.InvalidConfigurationException; import org.eclipse.jgit.junit.RepositoryTestCase; import org.eclipse.jgit.storage.file.FileBasedConfig; import org.junit.Test; public class AbbrevConfigTest extends RepositoryTestCase { @Test public void testDefault() throws Exception { assertEquals(7, testCoreAbbrev(null)); } @Test public void testAuto() throws Exception { assertEquals(7, testCoreAbbrev("auto")); } @Test public void testNo() throws Exception { assertEquals(40, testCoreAbbrev("no")); } @Test public void testValidMin() throws Exception { assertEquals(4, testCoreAbbrev("4")); } @Test public void testValid() throws Exception { assertEquals(22, testCoreAbbrev("22")); } @Test public void testValidMax() throws Exception { assertEquals(40, testCoreAbbrev("40")); } @Test public void testInvalid() { assertThrows(InvalidConfigurationException.class, () -> testCoreAbbrev("foo")); } @Test public void testInvalid2() { assertThrows(InvalidConfigurationException.class, () -> testCoreAbbrev("2k")); } @Test public void testInvalidNegative() { assertThrows(InvalidConfigurationException.class, () -> testCoreAbbrev("-1000")); } @Test public void testInvalidBelowRange() { assertThrows(InvalidConfigurationException.class, () -> testCoreAbbrev("3")); } @Test public void testInvalidBelowRange2() { assertThrows(InvalidConfigurationException.class, () -> testCoreAbbrev("-1")); } @Test public void testInvalidAboveRange() { assertThrows(InvalidConfigurationException.class, () -> testCoreAbbrev("41")); } @Test public void testInvalidAboveRange2() { assertThrows(InvalidConfigurationException.class, () -> testCoreAbbrev("100000")); } @Test public void testToStringNo() throws InvalidConfigurationException, IOException { assertEquals("40", setCoreAbbrev("no").toString()); } @Test public void testToString() throws InvalidConfigurationException, IOException { assertEquals("7", setCoreAbbrev("auto").toString()); } @Test public void testToString12() throws InvalidConfigurationException, IOException { assertEquals("12", setCoreAbbrev("12").toString()); } private int testCoreAbbrev(String value) throws InvalidConfigurationException, IOException { return setCoreAbbrev(value).get(); } private AbbrevConfig setCoreAbbrev(String value) throws IOException, InvalidConfigurationException { FileBasedConfig config = db.getConfig(); config.setString(ConfigConstants.CONFIG_CORE_SECTION, null, ConfigConstants.CONFIG_KEY_ABBREV, value); config.save(); return AbbrevConfig.parseFromConfig(db); } }