import static org.testng.AssertJUnit.assertNull;
import static org.testng.AssertJUnit.assertTrue;
+import jalview.gui.JvOptionPane;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import java.util.Map;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class StringUtilsTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" })
public void testInsertCharAt()
{
{ "a", "b*c", "cde" }, "*"));
}
- /**
- * Test the method that parses lines like <br>
- * 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<String, List<String>> 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(0,
StringUtils.parseInt(String.valueOf(Integer.MAX_VALUE) + "1"));
}
+
+ @Test(groups = { "Functional" })
+ public void testCompareVersions()
+ {
+ assertEquals(0, StringUtils.compareVersions(null, null));
+ assertEquals(0, StringUtils.compareVersions("2.8.3", null));
+
+ /*
+ * same version returns 0
+ */
+ assertEquals(0, StringUtils.compareVersions("2.8", "2.8"));
+ assertEquals(0, StringUtils.compareVersions("2.8.3", "2.8.3"));
+ assertEquals(0, StringUtils.compareVersions("2.8.3b1", "2.8.3b1", "b"));
+ assertEquals(0, StringUtils.compareVersions("2.8.3B1", "2.8.3b1", "b"));
+ assertEquals(0, StringUtils.compareVersions("2.8.3b1", "2.8.3B1", "b"));
+
+ /*
+ * v1 < v2 returns -1
+ */
+ assertEquals(-1, StringUtils.compareVersions("2.8.3", "2.8.4"));
+ assertEquals(-1, StringUtils.compareVersions("2.8.3", "2.9"));
+ assertEquals(-1, StringUtils.compareVersions("2.8.3", "2.9.2"));
+ assertEquals(-1, StringUtils.compareVersions("2.8", "2.8.3"));
+ assertEquals(-1, StringUtils.compareVersions("2.8.3", "2.8.3b1", "b"));
+ assertEquals(-1, StringUtils.compareVersions("2.8.3b1", "2.8.3b2", "b"));
+ assertEquals(-1, StringUtils.compareVersions("2.8", "2.8.0", "b"));
+ assertEquals(-1, StringUtils.compareVersions("2", "12"));
+ assertEquals(-1, StringUtils.compareVersions("3.2.4", "3.12.11"));
+
+ /*
+ * v1 > v2 returns +1
+ */
+ assertEquals(1, StringUtils.compareVersions("2.8.3", "2.8"));
+ assertEquals(1, StringUtils.compareVersions("2.8.0", "2.8"));
+ assertEquals(1, StringUtils.compareVersions("2.8.4", "2.8.3"));
+ assertEquals(1, StringUtils.compareVersions("2.8.3b1", "2.8.3", "b"));
+ assertEquals(1, StringUtils.compareVersions("2.8.3", "2.8.2b1", "b"));
+ assertEquals(1, StringUtils.compareVersions("2.8.0b2", "2.8.0b1", "b"));
+ assertEquals(1, StringUtils.compareVersions("12", "2"));
+ assertEquals(1, StringUtils.compareVersions("3.12.11", "3.2.4"));
+ }
+
+ @Test(groups = { "Functional" })
+ public void testToSentenceCase()
+ {
+ assertEquals("John", StringUtils.toSentenceCase("john"));
+ assertEquals("John", StringUtils.toSentenceCase("JOHN"));
+ assertEquals("John and james",
+ StringUtils.toSentenceCase("JOHN and JAMES"));
+ assertEquals("J", StringUtils.toSentenceCase("j"));
+ assertEquals("", StringUtils.toSentenceCase(""));
+ assertNull(StringUtils.toSentenceCase(null));
+ }
}