+++ /dev/null
-/*\r
- * To change this template, choose Tools | Templates\r
- * and open the template in the editor.\r
- */\r
-\r
-package jp.sourceforge.jindolf.json;\r
-\r
-import java.io.StringReader;\r
-import java.util.SortedSet;\r
-import java.util.TreeSet;\r
-import org.junit.After;\r
-import org.junit.AfterClass;\r
-import org.junit.Before;\r
-import org.junit.BeforeClass;\r
-import org.junit.Test;\r
-import static org.junit.Assert.*;\r
-\r
-/**\r
- *\r
- */\r
-public class JsStringTest {\r
-\r
- public JsStringTest() {\r
- }\r
-\r
- @BeforeClass\r
- public static void setUpClass() throws Exception{\r
- }\r
-\r
- @AfterClass\r
- public static void tearDownClass() throws Exception{\r
- }\r
-\r
- @Before\r
- public void setUp() {\r
- }\r
-\r
- @After\r
- public void tearDown() {\r
- }\r
-\r
- /**\r
- * Test of parseHexChar method, of class JsString.\r
- */\r
- @Test\r
- public void testParseHexChar() throws Exception{\r
- System.out.println("parseHexChar");\r
-\r
- JsonReader reader;\r
- char ch;\r
-\r
- reader = new JsonReader(new StringReader("0000"));\r
- ch = JsString.parseHexChar(reader);\r
- assertEquals('\u0000', ch);\r
-\r
- reader = new JsonReader(new StringReader("ffff"));\r
- ch = JsString.parseHexChar(reader);\r
- assertEquals('\uffff', ch);\r
-\r
- reader = new JsonReader(new StringReader("FFFF"));\r
- ch = JsString.parseHexChar(reader);\r
- assertEquals('\uffff', ch);\r
-\r
- reader = new JsonReader(new StringReader("dead"));\r
- ch = JsString.parseHexChar(reader);\r
- assertEquals('\udead', ch);\r
-\r
- reader = new JsonReader(new StringReader("abcde"));\r
- ch = JsString.parseHexChar(reader);\r
- assertEquals('\uabcd', ch);\r
-\r
- try{\r
- reader = new JsonReader(new StringReader("000,"));\r
- ch = JsString.parseHexChar(reader);\r
- fail();\r
- }catch(JsParseException e){\r
- // NOTHING\r
- }\r
-\r
- return;\r
- }\r
-\r
- /**\r
- * Test of parseString method, of class JsString.\r
- */\r
- @Test\r
- public void testParseString() throws Exception{\r
- System.out.println("parseString");\r
-\r
- JsonReader reader;\r
- JsString string;\r
-\r
- reader = new JsonReader(new StringReader("\"abc\""));\r
- string = JsString.parseString(reader);\r
- assertEquals("abc", string.toRawString());\r
-\r
- reader = new JsonReader(new StringReader("\"あいう\""));\r
- string = JsString.parseString(reader);\r
- assertEquals("あいう", string.toRawString());\r
-\r
- reader = new JsonReader(new StringReader("\"\\\"\\\\\\/\""));\r
- string = JsString.parseString(reader);\r
- assertEquals("\"\\/", string.toRawString());\r
-\r
- reader = new JsonReader(new StringReader("\"\\b\\f\\n\\r\\t\""));\r
- string = JsString.parseString(reader);\r
- assertEquals("\b\f\n\r\t", string.toRawString());\r
-\r
- reader = new JsonReader(new StringReader("\"\\uabcd\\uCDEF\""));\r
- string = JsString.parseString(reader);\r
- assertEquals("\uabcd\ucdef", string.toRawString());\r
-\r
- try{\r
- reader = new JsonReader(new StringReader("abc\""));\r
- string = JsString.parseString(reader);\r
- fail();\r
- }catch(JsParseException e){\r
- // NOTHING\r
- }\r
-\r
- try{\r
- reader = new JsonReader(new StringReader("\"abc"));\r
- string = JsString.parseString(reader);\r
- fail();\r
- }catch(JsParseException e){\r
- // NOTHING\r
- }\r
-\r
- return;\r
- }\r
-\r
- /**\r
- * Test of writeText method, of class JsString.\r
- */\r
- @Test\r
- public void testWriteText() throws Exception{\r
- System.out.println("writeText");\r
-\r
- Appendable appout;\r
- JsString string;\r
-\r
- appout = new StringBuilder();\r
- string = new JsString();\r
- JsString.writeText(appout, string);\r
- assertEquals("\"\"", appout.toString());\r
-\r
- appout = new StringBuilder();\r
- string = new JsString("abc");\r
- JsString.writeText(appout, string);\r
- assertEquals("\"abc\"", appout.toString());\r
-\r
- appout = new StringBuilder();\r
- string = new JsString("\"");\r
- JsString.writeText(appout, string);\r
- assertEquals("\"\\\"\"", appout.toString());\r
-\r
- appout = new StringBuilder();\r
- string = new JsString("\\");\r
- JsString.writeText(appout, string);\r
- assertEquals("\"\\\\\"", appout.toString());\r
-\r
- appout = new StringBuilder();\r
- string = new JsString("/");\r
- JsString.writeText(appout, string);\r
- assertEquals("\"\\/\"", appout.toString());\r
-\r
- appout = new StringBuilder();\r
- string = new JsString("\b");\r
- JsString.writeText(appout, string);\r
- assertEquals("\"\\b\"", appout.toString());\r
-\r
- appout = new StringBuilder();\r
- string = new JsString("\f");\r
- JsString.writeText(appout, string);\r
- assertEquals("\"\\f\"", appout.toString());\r
-\r
- appout = new StringBuilder();\r
- string = new JsString("\n");\r
- JsString.writeText(appout, string);\r
- assertEquals("\"\\n\"", appout.toString());\r
-\r
- appout = new StringBuilder();\r
- string = new JsString("\r");\r
- JsString.writeText(appout, string);\r
- assertEquals("\"\\r\"", appout.toString());\r
-\r
- appout = new StringBuilder();\r
- string = new JsString("\t");\r
- JsString.writeText(appout, string);\r
- assertEquals("\"\\t\"", appout.toString());\r
-\r
- appout = new StringBuilder();\r
- string = new JsString("\u0001");\r
- JsString.writeText(appout, string);\r
- assertEquals("\"\\u0001\"", appout.toString());\r
-\r
- appout = new StringBuilder();\r
- string = new JsString("あ");\r
- JsString.writeText(appout, string);\r
- assertEquals("\"あ\"", appout.toString());\r
-\r
- return;\r
- }\r
-\r
- /**\r
- * Test of traverse method, of class JsString.\r
- */\r
- @Test\r
- public void testTraverse(){\r
- System.out.println("traverse");\r
-\r
- JsString string = new JsString("A");\r
-\r
- try{\r
- string.traverse(new ValueVisitor(){\r
- int ct = 0;\r
-\r
- public void visitValue(JsValue value)\r
- throws JsVisitException{\r
- assertEquals(new JsString("A"), value);\r
- assertTrue(this.ct++ <= 0);\r
- }\r
-\r
- public void visitPairName(String name)\r
- throws JsVisitException{\r
- throw new JsVisitException();\r
- }\r
-\r
- public void visitCollectionClose(JsValue composite)\r
- throws JsVisitException{\r
- throw new JsVisitException();\r
- }\r
- });\r
- }catch(JsVisitException e){\r
- fail();\r
- }\r
-\r
- return;\r
- }\r
-\r
- /**\r
- * Test of hasChanged method, of class JsString.\r
- */\r
- @Test\r
- public void testHasChanged(){\r
- System.out.println("hasChanged");\r
-\r
- JsString string = new JsString("A");\r
-\r
- assertFalse(string.hasChanged());\r
- string.setUnchanged();\r
- assertFalse(string.hasChanged());\r
-\r
- return;\r
- }\r
-\r
- /**\r
- * Test of setUnchanged method, of class JsString.\r
- */\r
- @Test\r
- public void testSetUnchanged(){\r
- System.out.println("setUnchanged");\r
-\r
- JsString string = new JsString("A");\r
-\r
- string.setUnchanged();\r
- assertFalse(string.hasChanged());\r
-\r
- return;\r
- }\r
-\r
- /**\r
- * Test of charAt method, of class JsString.\r
- */\r
- @Test\r
- public void testCharAt(){\r
- System.out.println("charAt");\r
-\r
- JsString string;\r
-\r
- string = new JsString("abcde");\r
- assertEquals('b', string.charAt(1));\r
-\r
- try{\r
- string.charAt(999);\r
- fail();\r
- }catch(IndexOutOfBoundsException e){\r
- // NOTHING\r
- }\r
-\r
- return;\r
- }\r
-\r
- /**\r
- * Test of length method, of class JsString.\r
- */\r
- @Test\r
- public void testLength(){\r
- System.out.println("length");\r
-\r
- assertEquals(0, new JsString().length());\r
- assertEquals(0, new JsString("").length());\r
- assertEquals(1, new JsString("A").length());\r
- assertEquals(2, new JsString("AB").length());\r
- assertEquals(3, new JsString("A\"B").length());\r
-\r
- return;\r
- }\r
-\r
- /**\r
- * Test of subSequence method, of class JsString.\r
- */\r
- @Test\r
- public void testSubSequence(){\r
- System.out.println("subSequence");\r
-\r
- JsString string;\r
-\r
- string = new JsString("abcde");\r
- assertEquals("bcd", string.subSequence(1, 4).toString());\r
- assertEquals("", string.subSequence(1, 1).toString());\r
-\r
- try{\r
- string.subSequence(1,999);\r
- fail();\r
- }catch(IndexOutOfBoundsException e){\r
- // NOTHING\r
- }\r
-\r
- return;\r
- }\r
-\r
- /**\r
- * Test of hashCode method, of class JsString.\r
- */\r
- @Test\r
- public void testHashCode(){\r
- System.out.println("hashCode");\r
- assertEquals(new JsString("A").hashCode(), new JsString("A").hashCode());\r
- return;\r
- }\r
-\r
- /**\r
- * Test of equals method, of class JsString.\r
- */\r
- @Test\r
- public void testEquals(){\r
- System.out.println("equals");\r
-\r
- assertTrue(new JsString("A").equals(new JsString("A")));\r
- assertFalse(new JsString("A").equals(new JsString("a")));\r
- assertFalse(new JsString("A").equals(null));\r
-\r
- return;\r
- }\r
-\r
- /**\r
- * Test of compareTo method, of class JsString.\r
- */\r
- @Test\r
- public void testCompareTo(){\r
- System.out.println("compareTo");\r
-\r
- assertTrue(0 == new JsString("A").compareTo(new JsString("A")));\r
- assertTrue(0 > new JsString("A").compareTo(new JsString("a")));\r
- assertTrue(0 < new JsString("a").compareTo(new JsString("A")));\r
- assertTrue(0 < new JsString("A").compareTo(null));\r
-\r
- SortedSet<JsString> set = new TreeSet<JsString>();\r
-\r
- set.clear();\r
- set.add(new JsString("A"));\r
- set.add(new JsString("a"));\r
- assertEquals(new JsString("A"), set.first());\r
- assertEquals(new JsString("a"), set.last());\r
-\r
- set.clear();\r
- set.add(new JsString("a"));\r
- set.add(new JsString("A"));\r
- assertEquals(new JsString("A"), set.first());\r
- assertEquals(new JsString("a"), set.last());\r
-\r
- return;\r
- }\r
-\r
- /**\r
- * Test of toString method, of class JsString.\r
- */\r
- @Test\r
- public void testToString(){\r
- System.out.println("toString");\r
-\r
- assertEquals("\"\"", new JsString("").toString());\r
- assertEquals("\"abc\"", new JsString("abc").toString());\r
- assertEquals("\"\\\"\"", new JsString("\"").toString());\r
- assertEquals("\"\\\\\"", new JsString("\\").toString());\r
- assertEquals("\"\\/\"", new JsString("/").toString());\r
- assertEquals("\"\\b\"", new JsString("\b").toString());\r
- assertEquals("\"\\f\"", new JsString("\f").toString());\r
- assertEquals("\"\\n\"", new JsString("\n").toString());\r
- assertEquals("\"\\r\"", new JsString("\r").toString());\r
- assertEquals("\"\\t\"", new JsString("\t").toString());\r
- assertEquals("\"\\u0001\"", new JsString("\u0001").toString());\r
- assertEquals("\"あ\"", new JsString("あ").toString());\r
-\r
- return;\r
- }\r
-\r
- /**\r
- * Test of toRawString method, of class JsString.\r
- */\r
- @Test\r
- public void testToRawString(){\r
- System.out.println("toRawString");\r
-\r
- assertEquals("", new JsString("").toRawString());\r
- assertEquals("abc", new JsString("abc").toRawString());\r
- assertEquals("\"", new JsString("\"").toRawString());\r
- assertEquals("\\", new JsString("\\").toRawString());\r
- assertEquals("/", new JsString("/").toRawString());\r
- assertEquals("\b", new JsString("\b").toRawString());\r
- assertEquals("\f", new JsString("\f").toRawString());\r
- assertEquals("\n", new JsString("\n").toRawString());\r
- assertEquals("\r", new JsString("\r").toRawString());\r
- assertEquals("\t", new JsString("\t").toRawString());\r
- assertEquals("\u0001", new JsString("\u0001").toRawString());\r
- assertEquals("あ", new JsString("あ").toRawString());\r
-\r
- return;\r
- }\r
-\r
-}\r