/* * Copyright 2012 Axel Winkler, Daniel Dunér * * This file is part of Daxplore Presenter. * * Daxplore Presenter is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 2.1 of the License, or * (at your option) any later version. * * Daxplore Presenter is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with Daxplore Presenter. If not, see <http://www.gnu.org/licenses/>. */ package org.daxplore.presenter.shared; import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; import org.junit.Test; public class SharedToolsTest { @Test public void testJoinIntArray() { int[] join1 = {1, 2, 3}; assertEquals("1~2~3", SharedTools.join(join1, "~")); int[] join2 = {Integer.MAX_VALUE, 42, 0, -1, -41, Integer.MIN_VALUE}; assertEquals(Integer.MAX_VALUE+"\t42\t0\t-1\t-41\t"+Integer.MIN_VALUE, SharedTools.join(join2, "\t")); } @Test public void testJoinGenericArray() { Object[] join = {Integer.valueOf(3), Double.valueOf(1.1), "foo", new Object() { @Override public String toString() { return "bar"; } }}; assertEquals(3+" "+1.1+" foo bar", SharedTools.join(join, " ")); } @Test public void testJoinGenericIterable() { List<Object> join = new LinkedList<>(); join.add(3); join.add(1.1); join.add("foo"); join.add(new Object() { @Override public String toString() { return "BAR!"; } }); assertEquals(3+" ! "+1.1+" ! foo ! BAR!", SharedTools.join(join, " ! ")); } @Test public void testEqualsAny() { // test equalsAny String[] compareTo = {"foo", "BAR", "", "Test", " ", "\n"}; assertTrue(SharedTools.equalsAny("foo", compareTo)); assertTrue(SharedTools.equalsAny("BAR", compareTo)); assertTrue(SharedTools.equalsAny("", compareTo)); assertTrue(SharedTools.equalsAny("Test", compareTo)); assertTrue(SharedTools.equalsAny(" ", compareTo)); assertTrue(SharedTools.equalsAny("\n", compareTo)); assertFalse(SharedTools.equalsAny("Foo", compareTo)); assertFalse(SharedTools.equalsAny("bAr", compareTo)); assertFalse(SharedTools.equalsAny("tesT", compareTo)); assertFalse(SharedTools.equalsAny("something", compareTo)); assertFalse(SharedTools.equalsAny(" \n", compareTo)); assertFalse(SharedTools.equalsAny(" \r", compareTo)); assertFalse(SharedTools.equalsAny("Other", compareTo)); // test equalsAnyIgnoreCase assertTrue(SharedTools.equalsAnyIgnoreCase("foo", compareTo)); assertTrue(SharedTools.equalsAnyIgnoreCase("BAR", compareTo)); assertTrue(SharedTools.equalsAnyIgnoreCase("", compareTo)); assertTrue(SharedTools.equalsAnyIgnoreCase("Test", compareTo)); assertTrue(SharedTools.equalsAnyIgnoreCase(" ", compareTo)); assertTrue(SharedTools.equalsAnyIgnoreCase("\n", compareTo)); assertTrue(SharedTools.equalsAnyIgnoreCase("Foo", compareTo)); assertTrue(SharedTools.equalsAnyIgnoreCase("bAr", compareTo)); assertTrue(SharedTools.equalsAnyIgnoreCase("tesT", compareTo)); assertFalse(SharedTools.equalsAnyIgnoreCase("something", compareTo)); assertFalse(SharedTools.equalsAnyIgnoreCase(" \n", compareTo)); assertFalse(SharedTools.equalsAnyIgnoreCase(" \r", compareTo)); assertFalse(SharedTools.equalsAnyIgnoreCase("Other", compareTo)); } @Test public void testParseTokens() { LinkedHashMap<String, String > map = SharedTools.parseTokens("foo=bar&answer=42& =\n&\n= "); assertEquals(4, map.size()); assertEquals("bar", map.get("foo")); assertEquals("42", map.get("answer")); assertEquals("\n", map.get(" ")); assertEquals(" ", map.get("\n")); assertNull(map.get(" ")); assertNull(map.get("something")); String[] orderedKeys = {"foo", "answer", " ", "\n"}; assertArrayEquals(orderedKeys, map.keySet().toArray()); try { SharedTools.parseTokens("foo="); fail(); } catch (IllegalArgumentException e) { assertEquals("Bad key-value definition: 'foo='", e.getMessage()); } try { SharedTools.parseTokens("=bar"); fail(); } catch (IllegalArgumentException e) { assertEquals("Bad key-value definition: '=bar'", e.getMessage()); } try { SharedTools.parseTokens("key=value=value"); fail(); } catch (IllegalArgumentException e) { assertEquals("Bad key-value definition: 'key=value=value'", e.getMessage()); } try { SharedTools.parseTokens("key=value1&key=value2"); fail(); } catch (IllegalArgumentException e) { assertEquals("Duplicate key: 'key'", e.getMessage()); } } @Test public void testJustifyLeft() { assertEquals("ab\nc", SharedTools.justifyLeft("abc", 2)); assertEquals("a\nbc\nde", SharedTools.justifyLeft("a\nbcde", 2)); assertEquals("a\nbcd", SharedTools.justifyLeft("a bcd", 3)); } @Test public void testJustifyHTML() { assertEquals("ab<br>c", SharedTools.justifyHTML("abc", 2)); assertEquals("a<br>bc<br>de", SharedTools.justifyHTML("a<br>bcde", 2)); assertEquals("a<br>bcd", SharedTools.justifyHTML("a bcd", 3)); } @Test public void testSplitInTwoHTML() { assertEquals("abc<br>def", SharedTools.splitInTwoHTML("abc def")); assertEquals("a<br>bcdefg", SharedTools.splitInTwoHTML("a bcdefg")); assertEquals("a b<br>cdefg", SharedTools.splitInTwoHTML("a b cdefg")); assertEquals(" abcdefg", SharedTools.splitInTwoHTML(" abcdefg")); assertEquals("abcdefg ", SharedTools.splitInTwoHTML("abcdefg ")); assertEquals(" a<br>bcdefg ", SharedTools.splitInTwoHTML(" a bcdefg ")); } }