/* * The MIT License (MIT) * * Copyright (c) 2015 Lachlan Dowding * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ package permafrost.tundra.lang; import static org.junit.Assert.assertEquals; import org.junit.Test; public class BooleanHelperTest { @Test public void testParseWithNullArgument() throws Exception { assertEquals(false, BooleanHelper.parse(null)); assertEquals(false, BooleanHelper.parse(null, false)); assertEquals(true, BooleanHelper.parse(null, true)); assertEquals(false, BooleanHelper.parse(null, "false")); assertEquals(true, BooleanHelper.parse(null, "true")); } @Test public void testParseWithZeroAndOne() throws Exception { assertEquals(false, BooleanHelper.parse("0")); assertEquals(true, BooleanHelper.parse("1")); } @Test public void testParseWithTrueAndFalse() throws Exception { assertEquals(false, BooleanHelper.parse("false")); assertEquals(true, BooleanHelper.parse("true")); } @Test public void testParseIgnoresCase() throws Exception { assertEquals(false, BooleanHelper.parse("FALSE")); assertEquals(true, BooleanHelper.parse("TrUe")); } @Test public void testParseIgnoresLeadingAndTrailingWhitespace() throws Exception { assertEquals(false, BooleanHelper.parse(" false ")); assertEquals(true, BooleanHelper.parse(" TrUe \n")); } @Test(expected = IllegalArgumentException.class) public void testParseWithUnparseableArgument() throws Exception { assertEquals(true, BooleanHelper.parse("this is a test")); } @Test public void testParseWithCustomValues() throws Exception { assertEquals(true, BooleanHelper.parse("abc", "abc", "def")); assertEquals(false, BooleanHelper.parse("def", "abc", "def")); assertEquals(false, BooleanHelper.parse(null, "abc", "def")); assertEquals(true, BooleanHelper.parse(null, "abc", "def", true)); assertEquals(false, BooleanHelper.parse(null, "abc", "def", false)); assertEquals(true, BooleanHelper.parse(null, "abc", "def", "true")); assertEquals(false, BooleanHelper.parse(null, "abc", "def", "false")); } @Test(expected = IllegalArgumentException.class) public void testParseWithUnparseableStringAndCustomValues() throws Exception { BooleanHelper.parse("def", "abc", null); } @Test public void testParseWithCustomTrueValue() throws Exception { assertEquals(true, BooleanHelper.parse("abc", "abc", null)); } @Test public void testNormalize() throws Exception { assertEquals("false", BooleanHelper.normalize(null)); assertEquals("false", BooleanHelper.normalize("0")); assertEquals("false", BooleanHelper.normalize("false")); assertEquals("false", BooleanHelper.normalize("FaLSe")); assertEquals("false", BooleanHelper.normalize(" false ")); assertEquals("true", BooleanHelper.normalize("1")); assertEquals("true", BooleanHelper.normalize("true")); assertEquals("true", BooleanHelper.normalize("TrUe")); assertEquals("true", BooleanHelper.normalize(" true ")); } @Test public void testNormalizeWithDefaultValue() throws Exception { assertEquals("false", BooleanHelper.normalize(null, "0")); assertEquals("false", BooleanHelper.normalize(null, "false")); assertEquals("false", BooleanHelper.normalize(null, "FaLSe")); assertEquals("false", BooleanHelper.normalize(null, " false ")); assertEquals("true", BooleanHelper.normalize(null, "1")); assertEquals("true", BooleanHelper.normalize(null, "true")); assertEquals("true", BooleanHelper.normalize(null, "TrUe")); assertEquals("true", BooleanHelper.normalize(null, " true ")); } @Test public void testEmit() throws Exception { assertEquals("true", BooleanHelper.emit(true)); assertEquals("false", BooleanHelper.emit(false)); } @Test public void testEmitWithCustomValues() throws Exception { assertEquals("Y", BooleanHelper.emit(true, "Y", "N")); assertEquals("N", BooleanHelper.emit(false, "Y", "N")); } @Test public void testNegate() throws Exception { assertEquals(false, BooleanHelper.negate(true)); assertEquals(true, BooleanHelper.negate(false)); } @Test public void testNegateWithCustomValues() throws Exception { assertEquals("N", BooleanHelper.negate("true", "Y", "N")); assertEquals("Y", BooleanHelper.negate("false", "Y", "N")); } @Test public void testNegateWithString() throws Exception { assertEquals("false", BooleanHelper.negate("true")); assertEquals("true", BooleanHelper.negate("false")); } @Test public void testFormat() throws Exception { assertEquals("T", BooleanHelper.format("Y", "Y", "N", "T", "F")); assertEquals("F", BooleanHelper.format("N", "Y", "N", "T", "F")); } }