/* * Copyright (c) 2002-2016, the original author or authors. * * This software is distributable under the BSD license. See the terms of the * BSD license in the documentation provided with this software. * * http://www.opensource.org/licenses/bsd-license.php */ package jline.internal; import org.junit.Test; import static org.junit.Assert.*; /** * Tests for {@link Configuration}. */ public class ConfigurationTest { @Test public void initFromSystemProperty() { System.setProperty(Configuration.JLINE_CONFIGURATION, getClass().getResource("jlinerc1").toExternalForm()); Configuration.reset(); String value = Configuration.getString("a"); assertEquals("b", value); } @Test public void getBooleanFromSystemProperty() { System.setProperty("test", "false"); boolean value = Configuration.getBoolean("test", true); assertEquals(false, value); } @Test public void getIntegerFromSystemProperty() { System.setProperty("test", "1234"); int value = Configuration.getInteger("test", 5678); assertEquals(1234, value); } @Test public void getIntegerUsingDefault() { System.getProperties().remove("test"); int value = Configuration.getInteger("test", 1234); assertEquals(1234, value); } @Test public void resetReconfigures() { System.setProperty(Configuration.JLINE_CONFIGURATION, getClass().getResource("jlinerc1").toExternalForm()); Configuration.reset(); String value1 = Configuration.getString("a"); assertEquals("b", value1); System.setProperty(Configuration.JLINE_CONFIGURATION, getClass().getResource("jlinerc2").toExternalForm()); Configuration.reset(); String value2 = Configuration.getString("c"); assertEquals("d", value2); } @Test public void parseCtypeNull() { assertNull(Configuration.extractEncodingFromCtype(null)); } @Test public void parseCtypeBlank() { assertNull(Configuration.extractEncodingFromCtype("")); } @Test public void parseCtypeNoEncoding() { assertNull(Configuration.extractEncodingFromCtype("fr_FR")); } @Test public void parseCtypeNoEncodingWithModifier() { assertNull(Configuration.extractEncodingFromCtype("fr_FR@euro")); } @Test public void parseCtypeWithEncoding() { assertEquals("UTF-8", Configuration.extractEncodingFromCtype("fr_FR.UTF-8")); } @Test public void parseCtypeWithEncodingAndModifier() { assertEquals("UTF-8", Configuration.extractEncodingFromCtype("fr_FR.UTF-8@euro")); } }