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"));
+ }
}