X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Futil%2FStringUtilsTest.java;h=0b776d1272861f523ed98f142de5c83db412edd0;hb=26ba864a6c290121fe6cf616794d2d0bea65fb7d;hp=2342afe0b4f4ae66e8093e71497fddbf9086c49f;hpb=2a76c758f4fa73532801c1aeadf4360a531c66b3;p=jalview.git diff --git a/test/jalview/util/StringUtilsTest.java b/test/jalview/util/StringUtilsTest.java index 2342afe..0b776d1 100644 --- a/test/jalview/util/StringUtilsTest.java +++ b/test/jalview/util/StringUtilsTest.java @@ -24,7 +24,10 @@ import static org.testng.AssertJUnit.assertEquals; import static org.testng.AssertJUnit.assertNull; import static org.testng.AssertJUnit.assertTrue; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; +import java.util.Map; import org.testng.annotations.Test; @@ -128,4 +131,79 @@ public class StringUtilsTest assertEquals("a*b*c*cde", StringUtils.arrayToSeparatorList(new String[] { "a", "b*c", "cde" }, "*")); } + + /** + * Test the method that parses lines like
+ * ID=2345;Name=Something; + */ + @Test(groups = { "Functional" }) + public void testParseNameValuePairs() + { + char[] separators = new char[] { ' ' }; + assertTrue(StringUtils.parseNameValuePairs(null, ";", separators) + .isEmpty()); + assertTrue(StringUtils.parseNameValuePairs("", ";", separators) + .isEmpty()); + assertTrue(StringUtils.parseNameValuePairs("hello=world", ";", + separators).isEmpty()); + + Map> map = StringUtils.parseNameValuePairs( + "hello world", ";", separators); + assertEquals(1, map.size()); + assertEquals(1, map.get("hello").size()); + assertEquals("world", map.get("hello").get(0)); + + separators = new char[] { ' ', '=' }; + map = StringUtils + .parseNameValuePairs( + "Method= manual curation ;nothing; Notes F2=S ; Notes=Metal; Type=", + ";", separators); + + // Type is ignored as no value was supplied + assertEquals(2, map.size()); + + // equals separator used ahead of space separator: + assertEquals(1, map.get("Method").size()); + assertEquals("manual curation", map.get("Method").get(0)); // trimmed + + assertEquals(2, map.get("Notes").size()); + // space separator used ahead of equals separator + assertEquals("F2=S", map.get("Notes").get(0)); + assertEquals("Metal", map.get("Notes").get(1)); + } + + @Test(groups = { "Functional" }) + public void testListToDelimitedString() + { + assertEquals("", StringUtils.listToDelimitedString(null, ";")); + List list = new ArrayList(); + assertEquals("", StringUtils.listToDelimitedString(list, ";")); + list.add("now"); + assertEquals("now", StringUtils.listToDelimitedString(list, ";")); + list.add("is"); + assertEquals("now;is", StringUtils.listToDelimitedString(list, ";")); + assertEquals("now ; is", StringUtils.listToDelimitedString(list, " ; ")); + list.add("the"); + list.add("winter"); + list.add("of"); + list.add("our"); + list.add("discontent"); + assertEquals("now is the winter of our discontent", + StringUtils.listToDelimitedString(list, " ")); + } + + @Test(groups = { "Functional" }) + public void testParseInt() + { + assertEquals(0, StringUtils.parseInt(null)); + assertEquals(0, StringUtils.parseInt("")); + assertEquals(0, StringUtils.parseInt("x")); + assertEquals(0, StringUtils.parseInt("1.2")); + assertEquals(33, StringUtils.parseInt("33")); + assertEquals(33, StringUtils.parseInt("+33")); + assertEquals(-123, StringUtils.parseInt("-123")); + // too big for an int: + assertEquals(0, + StringUtils.parseInt(String.valueOf(Integer.MAX_VALUE) + "1")); + } }