--- /dev/null
+/*\r
+ * Avatar Test\r
+ *\r
+ * $Id: AvatarTest.java 970 2009-12-24 16:13:09Z olyutorskii $\r
+ */\r
+\r
+package jp.sourceforge.jindolf;\r
+\r
+import java.util.List;\r
+import java.util.regex.Matcher;\r
+import java.util.regex.Pattern;\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 AvatarTest {\r
+\r
+ public AvatarTest() {\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 getPredefinedAvatarList method, of class Avatar.\r
+ */\r
+ @Test\r
+ public void testGetPredefinedAvatarList(){\r
+ System.out.println("getPredefinedAvatarList");\r
+ List<Avatar> result = Avatar.getPredefinedAvatarList();\r
+ assertNotNull(result);\r
+ assertEquals(20, result.size());\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of getPredefinedAvatar method, of class Avatar.\r
+ */\r
+ @Test\r
+ public void testGetPredefinedAvatar(){\r
+ System.out.println("getPredefinedAvatar");\r
+ Avatar result;\r
+ result = Avatar.getPredefinedAvatar("農夫 ヤコブ");\r
+ assertNotNull(result);\r
+ assertTrue(result.equals(result));\r
+ result = Avatar.getPredefinedAvatar((CharSequence)"農夫 ヤコブ");\r
+ assertNotNull(result);\r
+ assertTrue(result.equals(result));\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of lookingAtAvatar method, of class Avatar.\r
+ */\r
+ @Test\r
+ public void testMatchAvatar(){\r
+ System.out.println("matchAvatar");\r
+ Matcher matcher;\r
+ Avatar avatar;\r
+\r
+ Pattern pattern = Pattern.compile(".+");\r
+\r
+ matcher = pattern.matcher("農夫 ヤコブ");\r
+ avatar = Avatar.lookingAtAvatar(matcher);\r
+ assertNotNull(avatar);\r
+ assertEquals("農夫 ヤコブ", avatar.getFullName());\r
+\r
+ matcher = pattern.matcher("農夫 ヤコブXYZ");\r
+ avatar = Avatar.lookingAtAvatar(matcher);\r
+ assertNotNull(avatar);\r
+ assertEquals("農夫 ヤコブ", avatar.getFullName());\r
+\r
+ matcher = pattern.matcher("ABC農夫 ヤコブ");\r
+ avatar = Avatar.lookingAtAvatar(matcher);\r
+ assertNull(avatar);\r
+\r
+ matcher = pattern.matcher("農夫 ヤコブならず者 ディーター");\r
+ avatar = Avatar.lookingAtAvatar(matcher);\r
+ assertNotNull(avatar);\r
+ assertEquals("農夫 ヤコブ", avatar.getFullName());\r
+ int regionStart;\r
+ int regionEnd;\r
+ regionStart = matcher.end();\r
+ regionEnd = matcher.regionEnd();\r
+ matcher.region(regionStart, regionEnd);\r
+ avatar = Avatar.lookingAtAvatar(matcher);\r
+ assertNotNull(avatar);\r
+ assertEquals("ならず者 ディーター", avatar.getFullName());\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of getFullName method, of class Avatar.\r
+ */\r
+ @Test\r
+ public void testGetFullName(){\r
+ System.out.println("getFullName");\r
+ Avatar result = Avatar.getPredefinedAvatar("農夫 ヤコブ");\r
+ assertNotNull(result);\r
+ assertEquals("農夫 ヤコブ", result.getFullName());\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of getJobTitle method, of class Avatar.\r
+ */\r
+ @Test\r
+ public void testGetJobTitle(){\r
+ System.out.println("getJobTitle");\r
+ Avatar result = Avatar.getPredefinedAvatar("農夫 ヤコブ");\r
+ assertNotNull(result);\r
+ assertEquals("農夫", result.getJobTitle());\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of getName method, of class Avatar.\r
+ */\r
+ @Test\r
+ public void testGetName(){\r
+ System.out.println("getName");\r
+ Avatar result = Avatar.getPredefinedAvatar("農夫 ヤコブ");\r
+ assertNotNull(result);\r
+ assertEquals("ヤコブ", result.getName());\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of getIdNum method, of class Avatar.\r
+ */\r
+ @Test\r
+ public void testGetIdNum(){\r
+ System.out.println("getIdNum");\r
+ Avatar result = Avatar.getPredefinedAvatar("農夫 ヤコブ");\r
+ assertNotNull(result);\r
+ assertEquals(15, result.getIdNum());\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of equals method, of class Avatar.\r
+ */\r
+ @Test\r
+ public void testEquals(){\r
+ System.out.println("equals");\r
+ Avatar result = Avatar.getPredefinedAvatar("農夫 ヤコブ");\r
+ assertTrue(result.equals(result));\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of compareTo method, of class Avatar.\r
+ */\r
+ @Test\r
+ public void testCompareTo(){\r
+ System.out.println("compareTo");\r
+ Avatar avatar1 = Avatar.getPredefinedAvatar("農夫 ヤコブ");\r
+ Avatar avatar2 = Avatar.getPredefinedAvatar("シスター フリーデル");\r
+ Avatar avatar3 = Avatar.getPredefinedAvatar("羊飼い カタリナ");\r
+ assertTrue(avatar1.compareTo(avatar2) < 0);\r
+ assertTrue(avatar2.compareTo(avatar3) > 0);\r
+ assertTrue(avatar2.compareTo(avatar2) == 0);\r
+ return;\r
+ }\r
+}\r
--- /dev/null
+/*\r
+ * CodeX0208 Test\r
+ *\r
+ * $Id: CodeX0208Test.java 818 2009-09-01 15:18:42Z olyutorskii $\r
+ */\r
+\r
+package jp.sourceforge.jindolf;\r
+\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 CodeX0208Test {\r
+\r
+ public CodeX0208Test() {\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 isValid method, of class CodeX0208.\r
+ */\r
+ @Test\r
+ public void testIsValid(){\r
+ System.out.println("isValid");\r
+\r
+ assertTrue (CodeX0208.isValid('A'));\r
+ assertTrue (CodeX0208.isValid('狼'));\r
+ assertFalse(CodeX0208.isValid('㍻'));\r
+\r
+ return;\r
+ }\r
+\r
+}\r
--- /dev/null
+/*\r
+ * HttpUtils Test\r
+ *\r
+ * $Id: HttpUtilsTest.java 687 2009-08-19 05:29:22Z olyutorskii $\r
+ */\r
+\r
+package jp.sourceforge.jindolf;\r
+\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
+ */\r
+public class HttpUtilsTest {\r
+\r
+ public HttpUtilsTest() {\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 getHTMLCharset method, of class HttpUtils.\r
+ */\r
+ @Test\r
+ public void getHTMLCharset() {\r
+ System.out.println("getHTMLCharset");\r
+ String contentType;\r
+\r
+ contentType = "text/html;charset = Shift_JIS";\r
+ String result = HttpUtils.getHTMLCharset(contentType);\r
+ assertEquals("Shift_JIS", result);\r
+\r
+ contentType = "text/html ; charset=Shift_JIS ; a = b ; d=\"xyz\" ";\r
+ result = HttpUtils.getHTMLCharset(contentType);\r
+ assertEquals("Shift_JIS", result);\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of escapeHttpComment method, of class HttpUtils.\r
+ */\r
+ @Test\r
+ public void testEscapeHttpComment(){\r
+ System.out.println("escapeHttpComment");\r
+\r
+ CharSequence comment;\r
+ String expResult;\r
+ String result;\r
+\r
+ comment = "abc";\r
+ expResult = "(abc)";\r
+ result = HttpUtils.escapeHttpComment(comment);\r
+ assertEquals(expResult, result);\r
+\r
+ comment = "abc(pqr)xyz";\r
+ expResult = "(abc\\(pqr\\)xyz)";\r
+ result = HttpUtils.escapeHttpComment(comment);\r
+ assertEquals(expResult, result);\r
+\r
+ comment = "a\nb";\r
+ expResult = "(a?b)";\r
+ result = HttpUtils.escapeHttpComment(comment);\r
+ assertEquals(expResult, result);\r
+\r
+ comment = "a狼b";\r
+ expResult = "(a?b)";\r
+ result = HttpUtils.escapeHttpComment(comment);\r
+ assertEquals(expResult, result);\r
+\r
+ return;\r
+ }\r
+}\r
--- /dev/null
+/*\r
+ * StringUtils Test\r
+ *\r
+ * $Id: StringUtilsTest.java 802 2009-08-31 10:28:35Z olyutorskii $\r
+ */\r
+\r
+package jp.sourceforge.jindolf;\r
+\r
+import java.util.regex.Matcher;\r
+import java.util.regex.Pattern;\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 StringUtilsTest {\r
+\r
+ public StringUtilsTest() {\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 parseInt method, of class StringUtils.\r
+ */\r
+ @Test\r
+ public void testParseInt_3args_1(){\r
+ System.out.println("parseInt");\r
+\r
+ int result;\r
+ Matcher matcher;\r
+ Pattern pattern;\r
+ String input = "ABC123PQR456XYZ";\r
+\r
+ pattern = Pattern.compile("([0-9]+)[A-Z]*([0-9]+)");\r
+ matcher = pattern.matcher(input);\r
+\r
+ assertTrue(matcher.find());\r
+\r
+ result = StringUtils.parseInt(input, matcher, 1);\r
+ assertEquals(123, result);\r
+\r
+ result = StringUtils.parseInt(input, matcher, 2);\r
+ assertEquals(456, result);\r
+\r
+ try{\r
+ result = StringUtils.parseInt(null, matcher, 1);\r
+ fail();\r
+ }catch(NullPointerException e){\r
+ }\r
+\r
+ try{\r
+ result = StringUtils.parseInt(input, null, 1);\r
+ fail();\r
+ }catch(NullPointerException e){\r
+ }\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of parseInt method, of class StringUtils.\r
+ */\r
+ @Test\r
+ public void testParseInt_CharSequence(){\r
+ System.out.println("parseInt");\r
+\r
+ int result;\r
+\r
+ try{\r
+ result = StringUtils.parseInt(null);\r
+ fail();\r
+ }catch(NullPointerException e){\r
+ }\r
+\r
+ result = StringUtils.parseInt("");\r
+ assertEquals(0, result);\r
+\r
+ result = StringUtils.parseInt("0");\r
+ assertEquals(0, result);\r
+\r
+ result = StringUtils.parseInt("999");\r
+ assertEquals(999, result);\r
+\r
+ result = StringUtils.parseInt("X");\r
+ assertEquals(0, result);\r
+\r
+ result = StringUtils.parseInt("-1");\r
+ assertEquals(0, result);\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of parseInt method, of class StringUtils.\r
+ */\r
+ @Test\r
+ public void testParseInt_3args_2(){\r
+ System.out.println("parseInt");\r
+\r
+ int result;\r
+\r
+ try{\r
+ result = StringUtils.parseInt(null, 1, 3);\r
+ fail();\r
+ }catch(NullPointerException e){\r
+ }\r
+\r
+ result = StringUtils.parseInt("1234567", 2, 5);\r
+ assertEquals(345, result);\r
+\r
+ result = StringUtils.parseInt("1234567", 2, 3);\r
+ assertEquals(3, result);\r
+\r
+ result = StringUtils.parseInt("1234567", 2, 2);\r
+ assertEquals(0, result);\r
+\r
+ result = StringUtils.parseInt("1234567", 2, 1);\r
+ assertEquals(0, result);\r
+\r
+ result = StringUtils.parseInt("1234567", 0, 0);\r
+ assertEquals(0, result);\r
+\r
+ try{\r
+ result = StringUtils.parseInt("1234567", 2, 999);\r
+ fail();\r
+ }catch(StringIndexOutOfBoundsException e){\r
+ }\r
+\r
+ try{\r
+ result = StringUtils.parseInt("1234567", -1, 5);\r
+ fail();\r
+ }catch(StringIndexOutOfBoundsException e){\r
+ }\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of suppressString method, of class StringUtils.\r
+ */\r
+ @Test\r
+ public void testSuppressString(){\r
+ System.out.println("suppressString");\r
+\r
+ CharSequence result;\r
+\r
+ try{\r
+ result = StringUtils.suppressString(null);\r
+ fail();\r
+ }catch(NullPointerException e){\r
+ }\r
+\r
+ result = StringUtils.suppressString("");\r
+ assertEquals("", result);\r
+\r
+ result = StringUtils.suppressString("ABCDE12345");\r
+ assertEquals("ABCDE12345", result);\r
+\r
+ result = StringUtils.suppressString("ABCDEF123456");\r
+ assertEquals("ABCDE…23456", result);\r
+\r
+ result = StringUtils.suppressString(" A\tBCDEF123 4\n5\r6");\r
+ assertEquals("ABCDE…23456", result);\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of isTerminated method, of class StringUtils.\r
+ */\r
+ @Test\r
+ public void testIsTerminated(){\r
+ System.out.println("isTerminated");\r
+\r
+ try{\r
+ StringUtils.isTerminated(null, null);\r
+ fail();\r
+ }catch(NullPointerException e){\r
+ }\r
+\r
+ try{\r
+ StringUtils.isTerminated("A", null);\r
+ fail();\r
+ }catch(NullPointerException e){\r
+ }\r
+\r
+ try{\r
+ StringUtils.isTerminated(null, "X");\r
+ fail();\r
+ }catch(NullPointerException e){\r
+ }\r
+\r
+ assertTrue(StringUtils.isTerminated("ABCXYZ", "XYZ"));\r
+ assertTrue(StringUtils.isTerminated("ABCXYZ", ""));\r
+ assertTrue(StringUtils.isTerminated("", ""));\r
+\r
+ assertFalse(StringUtils.isTerminated("ABCXYZ", "PQR"));\r
+ assertFalse(StringUtils.isTerminated("ABC", "ABCXYZ"));\r
+ assertFalse(StringUtils.isTerminated("", "XYZ"));\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of compareSubSequence method, of class StringUtils.\r
+ */\r
+ @Test\r
+ public void testCompareSubSequence_6args(){\r
+ System.out.println("compareSubSequence");\r
+\r
+ int result;\r
+\r
+ result = StringUtils.compareSubSequence("ABCDE",1,3,"ABCDE",1,3);\r
+ assertTrue(result == 0);\r
+\r
+ result = StringUtils.compareSubSequence("ABCDE",1,3,"ABXDE",1,3);\r
+ assertTrue(result < 0);\r
+\r
+ result = StringUtils.compareSubSequence("ABXDE",1,3,"ABCDE",1,3);\r
+ assertTrue(result > 0);\r
+\r
+ result = StringUtils.compareSubSequence("ABCDE",1,3,"ABCDE",2,4);\r
+ assertTrue(result < 0);\r
+\r
+ result = StringUtils.compareSubSequence("ABCDE",1,3,"#ABCDE",2,4);\r
+ assertTrue(result == 0);\r
+\r
+ result = StringUtils.compareSubSequence("ABCDE",1,3,"ABCDE",1,4);\r
+ assertTrue(result < 0);\r
+\r
+ result = StringUtils.compareSubSequence("ABCDE",1,4,"ABCDE",1,3);\r
+ assertTrue(result > 0);\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of compareSubSequence method, of class StringUtils.\r
+ */\r
+ @Test\r
+ public void testCompareSubSequence_4args(){\r
+ System.out.println("compareSubSequence");\r
+\r
+ int result;\r
+\r
+ result = StringUtils.compareSubSequence("BCD","ABCDE",1,4);\r
+ assertTrue(result == 0);\r
+\r
+ result = StringUtils.compareSubSequence("BXD","ABCDE",1,4);\r
+ assertTrue(result > 0);\r
+\r
+ result = StringUtils.compareSubSequence("BCD","ABXDE",1,4);\r
+ assertTrue(result < 0);\r
+\r
+ return;\r
+ }\r
+}\r
--- /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.Iterator;\r
+import java.util.LinkedList;\r
+import java.util.List;\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 JsArrayTest {\r
+\r
+ public JsArrayTest() {\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 parseArray method, of class JsArray.\r
+ */\r
+ @Test\r
+ public void testParseArray() throws Exception{\r
+ System.out.println("parseArray");\r
+\r
+ JsonReader reader;\r
+ JsArray array;\r
+\r
+ reader = new JsonReader(new StringReader("[]"));\r
+ array = JsArray.parseArray(reader);\r
+ assertEquals(0, array.size());\r
+\r
+ reader = new JsonReader(new StringReader("[true]"));\r
+ array = JsArray.parseArray(reader);\r
+ assertEquals(1, array.size());\r
+ assertEquals(JsBoolean.TRUE, array.get(0));\r
+\r
+ reader = new JsonReader(new StringReader("[true,false]"));\r
+ array = JsArray.parseArray(reader);\r
+ assertEquals(2, array.size());\r
+ assertEquals(JsBoolean.TRUE, array.get(0));\r
+ assertEquals(JsBoolean.FALSE, array.get(1));\r
+\r
+ reader = new JsonReader(new StringReader("\n[\rtrue\t, false\n]\r"));\r
+ array = JsArray.parseArray(reader);\r
+ assertEquals(2, array.size());\r
+ assertEquals(JsBoolean.TRUE, array.get(0));\r
+ assertEquals(JsBoolean.FALSE, array.get(1));\r
+\r
+ try{\r
+ reader = new JsonReader(new StringReader("[,]"));\r
+ array = JsArray.parseArray(reader);\r
+ fail();\r
+ }catch(JsParseException e){\r
+ // NOTHING\r
+ }\r
+\r
+ try{\r
+ reader = new JsonReader(new StringReader("[true,]"));\r
+ array = JsArray.parseArray(reader);\r
+ fail();\r
+ }catch(JsParseException e){\r
+ // NOTHING\r
+ }\r
+\r
+ try{\r
+ reader = new JsonReader(new StringReader("[true"));\r
+ array = JsArray.parseArray(reader);\r
+ fail();\r
+ }catch(JsParseException e){\r
+ // NOTHING\r
+ }\r
+\r
+ try{\r
+ reader = new JsonReader(new StringReader("true]"));\r
+ array = JsArray.parseArray(reader);\r
+ fail();\r
+ }catch(JsParseException e){\r
+ // NOTHING\r
+ }\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of add method, of class JsArray.\r
+ */\r
+ @Test\r
+ public void testAdd(){\r
+ System.out.println("add");\r
+\r
+ JsArray array = new JsArray();\r
+\r
+ JsNumber number = new JsNumber("1.23");\r
+ assertEquals(0, array.size());\r
+ array.add(number);\r
+ assertEquals(1, array.size());\r
+ array.add(number);\r
+ assertEquals(2, array.size());\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of get method, of class JsArray.\r
+ */\r
+ @Test\r
+ public void testGet(){\r
+ System.out.println("get");\r
+\r
+ JsArray array = new JsArray();\r
+\r
+ JsValue val1 = new JsNumber("1.23");\r
+ JsValue val2 = new JsString("abc");\r
+\r
+ array.add(val1);\r
+ array.add(val2);\r
+\r
+ assertEquals(val1, array.get(0));\r
+ assertEquals(val2, array.get(1));\r
+\r
+ try{\r
+ array.get(2);\r
+ fail();\r
+ }catch(IndexOutOfBoundsException e){\r
+ // NOTHING\r
+ }\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of clear method, of class JsArray.\r
+ */\r
+ @Test\r
+ public void testClear(){\r
+ System.out.println("clear");\r
+\r
+ JsArray array = new JsArray();\r
+\r
+ JsValue val1 = new JsNumber("1.23");\r
+ JsValue val2 = new JsString("abc");\r
+\r
+ array.add(val1);\r
+ array.add(val2);\r
+ assertEquals(2, array.size());\r
+\r
+ array.clear();\r
+ assertEquals(0, array.size());\r
+\r
+ try{\r
+ array.get(0);\r
+ fail();\r
+ }catch(IndexOutOfBoundsException e){\r
+ // NOTHING\r
+ }\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of remove method, of class JsArray.\r
+ */\r
+ @Test\r
+ public void testRemove(){\r
+ System.out.println("remove");\r
+\r
+ JsArray array = new JsArray();\r
+\r
+ JsValue val1 = new JsNumber("1.23");\r
+ JsValue val2 = new JsString("abc");\r
+ JsValue val3 = JsBoolean.TRUE;\r
+\r
+ array.add(val1);\r
+ array.add(val2);\r
+ assertEquals(2, array.size());\r
+\r
+ assertTrue(array.remove(val1));\r
+ assertEquals(1, array.size());\r
+ assertEquals(val2, array.get(0));\r
+\r
+ assertFalse(array.remove(val3));\r
+ assertEquals(1, array.size());\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of size method, of class JsArray.\r
+ */\r
+ @Test\r
+ public void testSize(){\r
+ System.out.println("size");\r
+\r
+ JsArray array = new JsArray();\r
+ assertEquals(0, array.size());\r
+\r
+ JsValue val1 = new JsNumber("1.23");\r
+\r
+ array.add(val1);\r
+ assertEquals(1, array.size());\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of iterator method, of class JsArray.\r
+ */\r
+ @Test\r
+ public void testIterator(){\r
+ System.out.println("iterator");\r
+\r
+ JsArray array = new JsArray();\r
+\r
+ JsValue val1 = new JsNumber("1.23");\r
+ JsValue val2 = new JsString("abc");\r
+\r
+ array.add(val1);\r
+ array.add(val2);\r
+\r
+ Iterator<JsValue> it = array.iterator();\r
+\r
+ assertTrue(it.hasNext());\r
+ assertEquals(val1, it.next());\r
+\r
+ assertTrue(it.hasNext());\r
+ assertEquals(val2, it.next());\r
+\r
+ assertFalse(it.hasNext());\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of hashCode method, of class JsArray.\r
+ */\r
+ @Test\r
+ public void testHashCode(){\r
+ System.out.println("hashCode");\r
+\r
+ JsArray array1 = new JsArray();\r
+ JsArray array2 = new JsArray();\r
+\r
+ assertEquals(array1.hashCode(), array2.hashCode());\r
+\r
+ array1.add(new JsString("abc"));\r
+ array2.add(new JsString("abc"));\r
+\r
+ assertEquals(array1.hashCode(), array2.hashCode());\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of equals method, of class JsArray.\r
+ */\r
+ @Test\r
+ public void testEquals(){\r
+ System.out.println("equals");\r
+\r
+ JsArray array1 = new JsArray();\r
+ JsArray array2 = new JsArray();\r
+\r
+ assertTrue(array1.equals(array2));\r
+\r
+ array1.add(new JsString("abc"));\r
+ array2.add(new JsString("abc"));\r
+\r
+ assertTrue(array1.equals(array2));\r
+\r
+ array1.add(new JsString("xyz"));\r
+ array2.add(new JsString("XYZ"));\r
+\r
+ assertFalse(array1.equals(array2));\r
+\r
+ assertFalse(array1.equals(null));\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of toString method, of class JsArray.\r
+ */\r
+ @Test\r
+ public void testToString(){\r
+ System.out.println("toString");\r
+\r
+ JsArray array = new JsArray();\r
+\r
+ assertEquals("[]", array.toString());\r
+\r
+ array.add(JsBoolean.TRUE);\r
+ assertEquals("[true]", array.toString());\r
+\r
+ array.add(JsBoolean.FALSE);\r
+ assertEquals("[true,false]", array.toString());\r
+\r
+ array.add(new JsArray());\r
+ assertEquals("[true,false,[]]", array.toString());\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of traverse method, of class JsArray.\r
+ */\r
+ @Test\r
+ public void testTraverse() throws Exception{\r
+ System.out.println("traverse");\r
+\r
+ JsArray array = new JsArray();\r
+ JsValue val1 = new JsNumber("12");\r
+ JsValue val2 = new JsString("AB");\r
+ array.add(val1);\r
+ array.add(val2);\r
+\r
+ final List<Object> visited = new LinkedList<Object>();\r
+\r
+ try{\r
+ array.traverse(new ValueVisitor(){\r
+ public void visitValue(JsValue value)\r
+ throws JsVisitException{\r
+ visited.add(value);\r
+ return;\r
+ }\r
+\r
+ public void visitPairName(String name)\r
+ throws JsVisitException{\r
+ visited.add(name);\r
+ return;\r
+ }\r
+\r
+ public void visitCollectionClose(JsValue composite)\r
+ throws JsVisitException{\r
+ visited.add(composite);\r
+ return;\r
+ }\r
+ });\r
+ }catch(JsVisitException e){\r
+ fail();\r
+ }\r
+\r
+ assertEquals(4, visited.size());\r
+ assertEquals(array, visited.get(0));\r
+ assertEquals(val1, visited.get(1));\r
+ assertEquals(val2, visited.get(2));\r
+ assertEquals(array, visited.get(3));\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of hasChanged method, of class JsArray.\r
+ */\r
+ @Test\r
+ public void testHasChanged(){\r
+ System.out.println("hasChanged");\r
+\r
+ JsArray array = new JsArray();\r
+ assertFalse(array.hasChanged());\r
+\r
+ array.add(new JsNumber("0"));\r
+ assertTrue(array.hasChanged());\r
+\r
+ array.setUnchanged();\r
+ assertFalse(array.hasChanged());\r
+\r
+ JsArray child = new JsArray();\r
+ array.add(child);\r
+ array.setUnchanged();\r
+ assertFalse(array.hasChanged());\r
+\r
+ child.add(JsNull.NULL);\r
+ assertTrue(array.hasChanged());\r
+ array.setUnchanged();\r
+ assertFalse(array.hasChanged());\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of setUnchanged method, of class JsArray.\r
+ */\r
+ @Test\r
+ public void testSetUnchanged(){\r
+ System.out.println("setUnchanged");\r
+\r
+ JsArray array = new JsArray();\r
+ JsArray child = new JsArray();\r
+ array.add(child);\r
+\r
+ child.add(JsNull.NULL);\r
+ assertTrue(child.hasChanged());\r
+\r
+ array.setUnchanged();\r
+ assertFalse(child.hasChanged());\r
+\r
+ return;\r
+ }\r
+\r
+}\r
--- /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.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 JsBooleanTest {\r
+\r
+ public JsBooleanTest() {\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 traverse method, of class JsBoolean.\r
+ */\r
+ @Test\r
+ public void testTraverse(){\r
+ System.out.println("traverse");\r
+\r
+ try{\r
+ JsBoolean.TRUE.traverse(new ValueVisitor(){\r
+ int ct = 0;\r
+\r
+ public void visitValue(JsValue value)\r
+ throws JsVisitException{\r
+ assertEquals(JsBoolean.TRUE, 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
+ try{\r
+ JsBoolean.FALSE.traverse(new ValueVisitor(){\r
+ int ct = 0;\r
+\r
+ public void visitValue(JsValue value)\r
+ throws JsVisitException{\r
+ assertEquals(JsBoolean.FALSE, 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 JsBoolean.\r
+ */\r
+ @Test\r
+ public void testHasChanged(){\r
+ System.out.println("hasChanged");\r
+\r
+ assertFalse(JsBoolean.TRUE.hasChanged());\r
+ JsBoolean.TRUE.setUnchanged();\r
+ assertFalse(JsBoolean.TRUE.hasChanged());\r
+\r
+ assertFalse(JsBoolean.FALSE.hasChanged());\r
+ JsBoolean.FALSE.setUnchanged();\r
+ assertFalse(JsBoolean.FALSE.hasChanged());\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of setUnchanged method, of class JsBoolean.\r
+ */\r
+ @Test\r
+ public void testSetUnchanged(){\r
+ System.out.println("setUnchanged");\r
+\r
+ JsBoolean.TRUE.setUnchanged();\r
+ assertFalse(JsBoolean.TRUE.hasChanged());\r
+\r
+ JsBoolean.FALSE.setUnchanged();\r
+ assertFalse(JsBoolean.FALSE.hasChanged());\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of valueOf method, of class JsBoolean.\r
+ */\r
+ @Test\r
+ public void testValueOf(){\r
+ System.out.println("valueOf");\r
+ assertEquals(JsBoolean.TRUE, JsBoolean.valueOf(true));\r
+ assertEquals(JsBoolean.FALSE, JsBoolean.valueOf(false));\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of booleanValue method, of class JsBoolean.\r
+ */\r
+ @Test\r
+ public void testBooleanValue(){\r
+ System.out.println("booleanValue");\r
+ assertTrue(JsBoolean.TRUE.booleanValue());\r
+ assertFalse(JsBoolean.FALSE.booleanValue());\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of isTrue method, of class JsBoolean.\r
+ */\r
+ @Test\r
+ public void testIsTrue(){\r
+ System.out.println("isTrue");\r
+ assertTrue(JsBoolean.TRUE.isTrue());\r
+ assertFalse(JsBoolean.FALSE.isTrue());\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of isFalse method, of class JsBoolean.\r
+ */\r
+ @Test\r
+ public void testIsFalse(){\r
+ System.out.println("isFalse");\r
+ assertFalse(JsBoolean.TRUE.isFalse());\r
+ assertTrue(JsBoolean.FALSE.isFalse());\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of hashCode method, of class JsBoolean.\r
+ */\r
+ @Test\r
+ public void testHashCode(){\r
+ System.out.println("hashCode");\r
+ // NOTHING\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of equals method, of class JsBoolean.\r
+ */\r
+ @Test\r
+ public void testEquals(){\r
+ System.out.println("equals");\r
+\r
+ assertTrue(JsBoolean.TRUE.equals(JsBoolean.TRUE));\r
+ assertFalse(JsBoolean.TRUE.equals(JsBoolean.FALSE));\r
+// assertFalse(JsBoolean.TRUE.equals(JsNull.NULL));\r
+ assertFalse(JsBoolean.TRUE.equals(null));\r
+\r
+ assertFalse(JsBoolean.FALSE.equals(JsBoolean.TRUE));\r
+ assertTrue(JsBoolean.FALSE.equals(JsBoolean.FALSE));\r
+// assertFalse(JsBoolean.TRUE.equals(JsNull.NULL));\r
+ assertFalse(JsBoolean.FALSE.equals(null));\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of compareTo method, of class JsBoolean.\r
+ */\r
+ @Test\r
+ public void testCompareTo(){\r
+ System.out.println("compareTo");\r
+ assertEquals(0, JsBoolean.TRUE.compareTo(JsBoolean.TRUE));\r
+ assertEquals(0, JsBoolean.FALSE.compareTo(JsBoolean.FALSE));\r
+ assertTrue(0 > JsBoolean.TRUE.compareTo(JsBoolean.FALSE));\r
+ assertTrue(0 < JsBoolean.FALSE.compareTo(JsBoolean.TRUE));\r
+\r
+ try{\r
+ JsBoolean.TRUE.compareTo(null);\r
+ fail();\r
+ }catch(NullPointerException e){\r
+ // NOTHING\r
+ }\r
+\r
+ try{\r
+ JsBoolean.FALSE.compareTo(null);\r
+ fail();\r
+ }catch(NullPointerException e){\r
+ // NOTHING\r
+ }\r
+\r
+ SortedSet<JsBoolean> set = new TreeSet<JsBoolean>();\r
+\r
+ set.clear();\r
+ set.add(JsBoolean.TRUE);\r
+ set.add(JsBoolean.FALSE);\r
+ assertEquals(JsBoolean.TRUE, set.first());\r
+ assertEquals(JsBoolean.FALSE, set.last());\r
+ set.clear();\r
+ set.add(JsBoolean.FALSE);\r
+ set.add(JsBoolean.TRUE);\r
+ assertEquals(JsBoolean.TRUE, set.first());\r
+ assertEquals(JsBoolean.FALSE, set.last());\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of toString method, of class JsBoolean.\r
+ */\r
+ @Test\r
+ public void testToString(){\r
+ System.out.println("toString");\r
+ assertEquals("true", JsBoolean.TRUE.toString());\r
+ assertEquals("false", JsBoolean.FALSE.toString());\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of toString method, of class JsBoolean.\r
+ */\r
+ @Test\r
+ public void testEtc(){\r
+ System.out.println("etc.");\r
+ assertNotNull(JsBoolean.TRUE);\r
+ assertNotNull(JsBoolean.FALSE);\r
+ assertTrue(JsBoolean.TRUE instanceof JsBoolean);\r
+ assertTrue(JsBoolean.FALSE instanceof JsBoolean);\r
+ return;\r
+ }\r
+\r
+}\r
--- /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 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 JsNullTest {\r
+\r
+ public JsNullTest() {\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 etc of class JsNull.\r
+ */\r
+ @Test\r
+ public void testEtc(){\r
+ System.out.println("etc");\r
+ assertNotNull(JsNull.NULL);\r
+ assertTrue(JsNull.NULL instanceof JsNull);\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of hasChanged method, of class JsNull.\r
+ */\r
+ @Test\r
+ public void testHasChanged(){\r
+ System.out.println("hasChanged");\r
+ assertFalse(JsNull.NULL.hasChanged());\r
+ JsNull.NULL.setUnchanged();\r
+ assertFalse(JsNull.NULL.hasChanged());\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of setUnchanged method, of class JsNull.\r
+ */\r
+ @Test\r
+ public void testSetUnchanged(){\r
+ System.out.println("setUnchanged");\r
+ JsNull.NULL.setUnchanged();\r
+ assertFalse(JsNull.NULL.hasChanged());\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of traverse method, of class JsNull.\r
+ */\r
+ @Test\r
+ public void testTraverse(){\r
+ System.out.println("traverse");\r
+ try{\r
+ JsNull.NULL.traverse(new ValueVisitor(){\r
+ int ct = 0;\r
+\r
+ public void visitValue(JsValue value)\r
+ throws JsVisitException{\r
+ assertEquals(JsNull.NULL, 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
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of compareTo method, of class JsNull.\r
+ */\r
+ @Test\r
+ public void testCompareTo(){\r
+ System.out.println("compareTo");\r
+ assertEquals(0, JsNull.NULL.compareTo(JsNull.NULL));\r
+ try{\r
+ JsNull.NULL.compareTo(null);\r
+ fail();\r
+ }catch(NullPointerException e){\r
+ // NOTHING\r
+ }\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of toString method, of class JsNull.\r
+ */\r
+ @Test\r
+ public void testToString(){\r
+ System.out.println("toString");\r
+ assertEquals("null", JsNull.NULL.toString());\r
+ return;\r
+ }\r
+\r
+}\r
--- /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.math.BigDecimal;\r
+import java.math.BigInteger;\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 JsNumberTest {\r
+\r
+ public JsNumberTest() {\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 parseNumber method, of class JsNumber.\r
+ */\r
+ @Test\r
+ public void testParseNumber() throws Exception{\r
+ System.out.println("parseNumber");\r
+\r
+ JsonReader reader;\r
+ JsNumber number;\r
+\r
+ try{\r
+ reader = new JsonReader(new StringReader("0"));\r
+ number = JsNumber.parseNumber(reader);\r
+ fail();\r
+ }catch(JsParseException e){\r
+ // NOTHING\r
+ }\r
+\r
+ reader = new JsonReader(new StringReader("0,"));\r
+ number = JsNumber.parseNumber(reader);\r
+ assertEquals("0", number.toString());\r
+\r
+ reader = new JsonReader(new StringReader("\n\r\t\u00200,"));\r
+ number = JsNumber.parseNumber(reader);\r
+ assertEquals("0", number.toString());\r
+\r
+ reader = new JsonReader(new StringReader("-0,"));\r
+ number = JsNumber.parseNumber(reader);\r
+ assertEquals("0", number.toString());\r
+\r
+ reader = new JsonReader(new StringReader("12,"));\r
+ number = JsNumber.parseNumber(reader);\r
+ assertEquals("12", number.toString());\r
+\r
+ reader = new JsonReader(new StringReader("-12,"));\r
+ number = JsNumber.parseNumber(reader);\r
+ assertEquals("-12", number.toString());\r
+\r
+ try{\r
+ reader = new JsonReader(new StringReader("+12,"));\r
+ number = JsNumber.parseNumber(reader);\r
+ fail();\r
+ }catch(JsParseException e){\r
+ // NOTHING\r
+ }\r
+\r
+ try{\r
+ reader = new JsonReader(new StringReader("12.,"));\r
+ number = JsNumber.parseNumber(reader);\r
+ fail();\r
+ }catch(JsParseException e){\r
+ // NOTHING\r
+ }\r
+\r
+ reader = new JsonReader(new StringReader("12.34,"));\r
+ number = JsNumber.parseNumber(reader);\r
+ assertEquals("12.34", number.toString());\r
+\r
+ reader = new JsonReader(new StringReader("12.0,"));\r
+ number = JsNumber.parseNumber(reader);\r
+ assertEquals("12.0", number.toString());\r
+\r
+ reader = new JsonReader(new StringReader("12.00,"));\r
+ number = JsNumber.parseNumber(reader);\r
+ assertEquals("12.00", number.toString());\r
+\r
+ reader = new JsonReader(new StringReader("12.003,"));\r
+ number = JsNumber.parseNumber(reader);\r
+ assertEquals("12.003", number.toString());\r
+\r
+ reader = new JsonReader(new StringReader("12.0030,"));\r
+ number = JsNumber.parseNumber(reader);\r
+ assertEquals("12.0030", number.toString());\r
+\r
+ try{\r
+ reader = new JsonReader(new StringReader("09,"));\r
+ number = JsNumber.parseNumber(reader);\r
+ fail();\r
+ }catch(JsParseException e){\r
+ // NOTHING\r
+ }\r
+\r
+ reader = new JsonReader(new StringReader("12e34,"));\r
+ number = JsNumber.parseNumber(reader);\r
+ assertEquals("1.2E+35", number.toString());\r
+\r
+ reader = new JsonReader(new StringReader("12E34,"));\r
+ number = JsNumber.parseNumber(reader);\r
+ assertEquals("1.2E+35", number.toString());\r
+\r
+ reader = new JsonReader(new StringReader("12e+34,"));\r
+ number = JsNumber.parseNumber(reader);\r
+ assertEquals("1.2E+35", number.toString());\r
+\r
+ reader = new JsonReader(new StringReader("12e-34,"));\r
+ number = JsNumber.parseNumber(reader);\r
+ assertEquals("1.2E-33", number.toString());\r
+\r
+ reader = new JsonReader(new StringReader("12e0034,"));\r
+ number = JsNumber.parseNumber(reader);\r
+ assertEquals("1.2E+35", number.toString());\r
+\r
+ try{\r
+ reader = new JsonReader(new StringReader("12e,"));\r
+ number = JsNumber.parseNumber(reader);\r
+ fail();\r
+ }catch(JsParseException e){\r
+ // NOTHING\r
+ }\r
+\r
+ try{\r
+ reader = new JsonReader(new StringReader("12e+,"));\r
+ number = JsNumber.parseNumber(reader);\r
+ fail();\r
+ }catch(JsParseException e){\r
+ // NOTHING\r
+ }\r
+\r
+ try{\r
+ reader = new JsonReader(new StringReader("12e-,"));\r
+ number = JsNumber.parseNumber(reader);\r
+ fail();\r
+ }catch(JsParseException e){\r
+ // NOTHING\r
+ }\r
+\r
+ reader = new JsonReader(new StringReader("-12.34e-056,"));\r
+ number = JsNumber.parseNumber(reader);\r
+ assertEquals("-1.234E-55", number.toString());\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of constructor, of class JsNumber.\r
+ */\r
+ @Test\r
+ public void testConstructors() throws Exception{\r
+ System.out.println("constructor");\r
+\r
+ JsNumber number;\r
+ BigDecimal decimal;\r
+\r
+ number = new JsNumber(99L);\r
+ decimal = number.getBigDecimal();\r
+ assertEquals(new BigInteger("99"), decimal.unscaledValue());\r
+ assertEquals(0, decimal.scale());\r
+\r
+ number = new JsNumber(99.0);\r
+ decimal = number.getBigDecimal();\r
+ assertEquals(new BigInteger("990"), decimal.unscaledValue());\r
+ assertEquals(1, decimal.scale());\r
+\r
+ number = new JsNumber(new BigInteger("99"));\r
+ decimal = number.getBigDecimal();\r
+ assertEquals(new BigInteger("99"), decimal.unscaledValue());\r
+ assertEquals(0, decimal.scale());\r
+\r
+ number = new JsNumber("99.9");\r
+ decimal = number.getBigDecimal();\r
+ assertEquals(new BigInteger("999"), decimal.unscaledValue());\r
+ assertEquals(1, decimal.scale());\r
+\r
+ number = new JsNumber(new BigDecimal("99.9"));\r
+ decimal = number.getBigDecimal();\r
+ assertEquals(new BigInteger("999"), decimal.unscaledValue());\r
+ assertEquals(1, decimal.scale());\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of traverse method, of class JsNumber.\r
+ */\r
+ @Test\r
+ public void testTraverse(){\r
+ System.out.println("traverse");\r
+\r
+ JsNumber number = new JsNumber("0");\r
+\r
+ try{\r
+ number.traverse(new ValueVisitor(){\r
+ int ct = 0;\r
+\r
+ public void visitValue(JsValue value)\r
+ throws JsVisitException{\r
+ assertEquals(new JsNumber("0"), 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 JsNumber.\r
+ */\r
+ @Test\r
+ public void testHasChanged(){\r
+ System.out.println("hasChanged");\r
+\r
+ JsNumber number = new JsNumber("0");\r
+\r
+ assertFalse(number.hasChanged());\r
+ number.setUnchanged();\r
+ assertFalse(number.hasChanged());\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of setUnchanged method, of class JsNumber.\r
+ */\r
+ @Test\r
+ public void testSetUnchanged(){\r
+ System.out.println("setUnchanged");\r
+\r
+ JsNumber number = new JsNumber("0");\r
+\r
+ number.setUnchanged();\r
+ assertFalse(number.hasChanged());\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of getBigDecimal method, of class JsNumber.\r
+ */\r
+ @Test\r
+ public void testGetBigDecimal(){\r
+ System.out.println("getBigDecimal");\r
+\r
+ JsNumber number = new JsNumber("-123.456e+1");\r
+ BigDecimal decimal = number.getBigDecimal();\r
+\r
+ assertEquals(new BigDecimal("-123.456e+1"), decimal);\r
+ assertEquals(2, decimal.scale());\r
+ assertEquals(new BigInteger("-123456"), decimal.unscaledValue());\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of intValue method, of class JsNumber.\r
+ */\r
+ @Test\r
+ public void testIntValue(){\r
+ System.out.println("intValue");\r
+\r
+ assertEquals(0, new JsNumber("0").intValue());\r
+ assertEquals(99, new JsNumber("99.9").intValue());\r
+ assertEquals(-99, new JsNumber("-99.9").intValue());\r
+ assertEquals(2147483647, new JsNumber("2147483647").intValue());\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of longValue method, of class JsNumber.\r
+ */\r
+ @Test\r
+ public void testLongValue(){\r
+ System.out.println("longValue");\r
+\r
+ assertEquals(0L, new JsNumber("0").longValue());\r
+ assertEquals(99L, new JsNumber("99.9").longValue());\r
+ assertEquals(-99L, new JsNumber("-99.9").longValue());\r
+ assertEquals(999999999999L, new JsNumber("999999999999").longValue());\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of floatValue method, of class JsNumber.\r
+ */\r
+ @Test\r
+ public void testFloatValue(){\r
+ System.out.println("floatValue");\r
+\r
+ assertEquals(1.25f, new JsNumber("1.25").floatValue(), 0.0);\r
+ assertEquals(1.25f, new JsNumber("125E-2").floatValue(), 0.0);\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of doubleValue method, of class JsNumber.\r
+ */\r
+ @Test\r
+ public void testDoubleValue(){\r
+ System.out.println("doubleValue");\r
+\r
+ assertEquals(1.25, new JsNumber("1.25").doubleValue(), 0.0);\r
+ assertEquals(1.25, new JsNumber("125E-2").doubleValue(), 0.0);\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of hashCode method, of class JsNumber.\r
+ */\r
+ @Test\r
+ public void testHashCode(){\r
+ System.out.println("hashCode");\r
+\r
+ assertEquals(new JsNumber("1").hashCode(), new JsNumber("1").hashCode());\r
+ assertEquals(new JsNumber("1.23").hashCode(), new JsNumber("123e-2").hashCode());\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of equals method, of class JsNumber.\r
+ */\r
+ @Test\r
+ public void testEquals(){\r
+ System.out.println("equals");\r
+\r
+ assertTrue(new JsNumber("1").equals(new JsNumber("1")));\r
+ assertFalse(new JsNumber("1").equals(new JsNumber("2")));\r
+ assertFalse(new JsNumber("1").equals(null));\r
+\r
+ assertTrue(new JsNumber("1.23").equals(new JsNumber("123e-2")));\r
+ assertFalse(new JsNumber("1.0").equals(new JsNumber("1.00")));\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of compareTo method, of class JsNumber.\r
+ */\r
+ @Test\r
+ public void testCompareTo(){\r
+ System.out.println("compareTo");\r
+\r
+ assertTrue(0 > new JsNumber("-1").compareTo(new JsNumber("1")));\r
+ assertTrue(0 < new JsNumber("1").compareTo(new JsNumber("-1")));\r
+ assertTrue(new JsNumber("1").compareTo(new JsNumber("1")) == 0);\r
+\r
+ assertTrue(0 > new JsNumber("1").compareTo(new JsNumber("2")));\r
+ assertTrue(0 < new JsNumber("9").compareTo(new JsNumber("8")));\r
+\r
+ assertTrue(new JsNumber("1.23").compareTo(new JsNumber("123e-2")) == 0);\r
+ assertTrue(new JsNumber("1.0").compareTo(new JsNumber("1.00")) == 0);\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of toString method, of class JsNumber.\r
+ */\r
+ @Test\r
+ public void testToString(){\r
+ System.out.println("toString");\r
+\r
+ JsNumber number;\r
+\r
+ number = new JsNumber("0");\r
+ assertEquals("0", number.toString());\r
+ number = new JsNumber("+0");\r
+ assertEquals("0", number.toString());\r
+ number = new JsNumber("-0");\r
+ assertEquals("0", number.toString());\r
+\r
+ number = new JsNumber("1");\r
+ assertEquals("1", number.toString());\r
+ number = new JsNumber("+1");\r
+ assertEquals("1", number.toString());\r
+ number = new JsNumber("-1");\r
+ assertEquals("-1", number.toString());\r
+\r
+ number = new JsNumber("0.0");\r
+ assertEquals("0.0", number.toString());\r
+\r
+ number = new JsNumber("1.0");\r
+ assertEquals("1.0", number.toString());\r
+\r
+ number = new JsNumber("1.00");\r
+ assertEquals("1.00", number.toString());\r
+\r
+ number = new JsNumber("0.1");\r
+ assertEquals("0.1", number.toString());\r
+\r
+ number = new JsNumber("0.10");\r
+ assertEquals("0.10", number.toString());\r
+\r
+ number = new JsNumber("0.000001");\r
+ assertEquals("0.000001", number.toString());\r
+\r
+ number = new JsNumber("0.0000001");\r
+ assertEquals("1E-7", number.toString());\r
+\r
+ number = new JsNumber("123e0");\r
+ assertEquals("123", number.toString());\r
+\r
+ number = new JsNumber("123e1");\r
+ assertEquals("1.23E+3", number.toString());\r
+\r
+ number = new JsNumber("123E1");\r
+ assertEquals("1.23E+3", number.toString());\r
+\r
+ number = new JsNumber("123e+1");\r
+ assertEquals("1.23E+3", number.toString());\r
+\r
+ number = new JsNumber("123e-1");\r
+ assertEquals("12.3", number.toString());\r
+\r
+ number = new JsNumber("123e-8");\r
+ assertEquals("0.00000123", number.toString());\r
+\r
+ number = new JsNumber("123e-9");\r
+ assertEquals("1.23E-7", number.toString());\r
+\r
+ return;\r
+ }\r
+\r
+}\r
--- /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.Iterator;\r
+import java.util.LinkedList;\r
+import java.util.List;\r
+import java.util.Set;\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 JsObjectTest {\r
+\r
+ public JsObjectTest() {\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 parseObject method, of class JsObject.\r
+ */\r
+ @Test\r
+ public void testParseObject() throws Exception{\r
+ System.out.println("parseObject");\r
+\r
+ JsonReader reader;\r
+ JsObject object;\r
+\r
+ reader = new JsonReader(new StringReader("{}"));\r
+ object = JsObject.parseObject(reader);\r
+ assertEquals(0, object.size());\r
+\r
+ reader = new JsonReader(new StringReader("{\"A\":true}"));\r
+ object = JsObject.parseObject(reader);\r
+ assertEquals(1, object.size());\r
+ assertEquals(JsBoolean.TRUE, object.getPair("A").getValue());\r
+\r
+ reader = new JsonReader(new StringReader("{\"A\":true,\"B\":false}"));\r
+ object = JsObject.parseObject(reader);\r
+ assertEquals(2, object.size());\r
+ assertEquals(JsBoolean.TRUE, object.getPair("A").getValue());\r
+ assertEquals(JsBoolean.FALSE, object.getPair("B").getValue());\r
+\r
+ reader = new JsonReader(new StringReader("\n{\r\"A\"\t: true,\"B\":false\n}\r"));\r
+ object = JsObject.parseObject(reader);\r
+ assertEquals(2, object.size());\r
+ assertEquals(JsBoolean.TRUE, object.getPair("A").getValue());\r
+ assertEquals(JsBoolean.FALSE, object.getPair("B").getValue());\r
+\r
+ try{\r
+ reader = new JsonReader(new StringReader("{,}"));\r
+ object = JsObject.parseObject(reader);\r
+ fail();\r
+ }catch(JsParseException e){\r
+ // NOTHING\r
+ }\r
+\r
+ try{\r
+ reader = new JsonReader(new StringReader("{true,}"));\r
+ object = JsObject.parseObject(reader);\r
+ fail();\r
+ }catch(JsParseException e){\r
+ // NOTHING\r
+ }\r
+\r
+ try{\r
+ reader = new JsonReader(new StringReader("{true"));\r
+ object = JsObject.parseObject(reader);\r
+ fail();\r
+ }catch(JsParseException e){\r
+ // NOTHING\r
+ }\r
+\r
+ try{\r
+ reader = new JsonReader(new StringReader("true}"));\r
+ object = JsObject.parseObject(reader);\r
+ fail();\r
+ }catch(JsParseException e){\r
+ // NOTHING\r
+ }\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of putValue method, of class JsObject.\r
+ */\r
+ @Test\r
+ public void testPutGetValue(){\r
+ System.out.println("putValue");\r
+\r
+ JsObject object = new JsObject();\r
+ assertEquals(0, object.size());\r
+\r
+ object.putValue("x", JsNull.NULL);\r
+ assertEquals(1, object.size());\r
+ assertEquals(JsNull.NULL, object.getValue("x"));\r
+ assertEquals(null, object.getValue("y"));\r
+\r
+ object.putValue("y", JsBoolean.TRUE);\r
+ assertEquals(2, object.size());\r
+ assertEquals(JsBoolean.TRUE, object.getValue("y"));\r
+\r
+ object.putValue("x", JsBoolean.FALSE);\r
+ assertEquals(2, object.size());\r
+ assertEquals(JsBoolean.FALSE, object.getValue("x"));\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of putPair method, of class JsObject.\r
+ */\r
+ @Test\r
+ public void testPutGetPair(){\r
+ System.out.println("putPair");\r
+\r
+ JsObject object = new JsObject();\r
+ assertEquals(0, object.size());\r
+\r
+ JsPair pair = new JsPair("x", JsNull.NULL);\r
+ object.putPair(pair);\r
+ assertEquals(1, object.size());\r
+ assertEquals(JsNull.NULL, object.getValue("x"));\r
+\r
+ JsPair pair2 = object.getPair("x");\r
+ assertNotNull(pair2);\r
+ assertEquals("x", pair2.getName());\r
+ assertEquals(JsNull.NULL, pair2.getValue());\r
+\r
+ assertNull(object.getPair("y"));\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of clear method, of class JsObject.\r
+ */\r
+ @Test\r
+ public void testClear(){\r
+ System.out.println("clear");\r
+\r
+ JsObject object = new JsObject();\r
+ assertEquals(0, object.size());\r
+\r
+ object.putValue("x", JsNull.NULL);\r
+ assertEquals(1, object.size());\r
+\r
+ object.clear();\r
+ assertEquals(0, object.size());\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of remove method, of class JsObject.\r
+ */\r
+ @Test\r
+ public void testRemove(){\r
+ System.out.println("remove");\r
+\r
+ JsObject object = new JsObject();\r
+\r
+ object.putValue("x", JsNull.NULL);\r
+ assertEquals(1, object.size());\r
+\r
+ assertNotNull(object.getValue("x"));\r
+\r
+ assertEquals(JsNull.NULL, object.remove("x"));\r
+ assertEquals(0, object.size());\r
+ assertNull(object.getValue("x"));\r
+\r
+ assertNull(object.remove("y"));\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of nameSet method, of class JsObject.\r
+ */\r
+ @Test\r
+ public void testNameSet(){\r
+ System.out.println("nameSet");\r
+\r
+ JsObject object = new JsObject();\r
+ Set<String> set;\r
+\r
+ set = object.nameSet();\r
+ assertEquals(0, set.size());\r
+\r
+ object.putValue("y", JsNull.NULL);\r
+ object.putValue("z", JsNull.NULL);\r
+ object.putValue("x", JsNull.NULL);\r
+\r
+ set = object.nameSet();\r
+ assertEquals(3, set.size());\r
+ Object[] names = set.toArray();\r
+\r
+ assertEquals("x", names[0]);\r
+ assertEquals("y", names[1]);\r
+ assertEquals("z", names[2]);\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of getPairList method, of class JsObject.\r
+ */\r
+ @Test\r
+ public void testGetPairList(){\r
+ System.out.println("getPairList");\r
+\r
+ JsObject object = new JsObject();\r
+ List<JsPair> list;\r
+\r
+ list = object.getPairList();\r
+ assertEquals(0, list.size());\r
+\r
+ object.putValue("y", JsNull.NULL);\r
+ object.putValue("z", JsBoolean.TRUE);\r
+ object.putValue("x", JsBoolean.FALSE);\r
+\r
+ list = object.getPairList();\r
+ assertEquals(3, list.size());\r
+\r
+ assertEquals("x", list.get(0).getName());\r
+ assertEquals("y", list.get(1).getName());\r
+ assertEquals("z", list.get(2).getName());\r
+ assertEquals(JsBoolean.FALSE, list.get(0).getValue());\r
+ assertEquals(JsNull.NULL, list.get(1).getValue());\r
+ assertEquals(JsBoolean.TRUE, list.get(2).getValue());\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of iterator method, of class JsObject.\r
+ */\r
+ @Test\r
+ public void testIterator(){\r
+ System.out.println("iterator");\r
+\r
+ JsObject object = new JsObject();\r
+ object.putValue("y", JsBoolean.FALSE);\r
+ object.putValue("x", JsBoolean.TRUE);\r
+\r
+ Iterator<JsPair> it = object.iterator();\r
+\r
+ assertTrue(it.hasNext());\r
+ assertEquals(JsBoolean.TRUE, it.next().getValue());\r
+ assertTrue(it.hasNext());\r
+ assertEquals(JsBoolean.FALSE, it.next().getValue());\r
+ assertFalse(it.hasNext());\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of size method, of class JsObject.\r
+ */\r
+ @Test\r
+ public void testSize(){\r
+ System.out.println("size");\r
+\r
+ JsObject object = new JsObject();\r
+ assertEquals(0, object.size());\r
+ object.putValue("x", JsBoolean.TRUE);\r
+ assertEquals(1, object.size());\r
+ object.putValue("y", JsBoolean.FALSE);\r
+ assertEquals(2, object.size());\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of hashCode method, of class JsObject.\r
+ */\r
+ @Test\r
+ public void testHashCode(){\r
+ System.out.println("hashCode");\r
+\r
+ JsObject obj1 = new JsObject();\r
+ JsObject obj2 = new JsObject();\r
+ assertEquals(obj1.hashCode(), obj2.hashCode());\r
+\r
+ obj1.putValue("x", new JsNumber("99"));\r
+ obj2.putValue("x", new JsNumber("99"));\r
+ assertEquals(obj1.hashCode(), obj2.hashCode());\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of equals method, of class JsObject.\r
+ */\r
+ @Test\r
+ public void testEquals(){\r
+ System.out.println("equals");\r
+\r
+ JsObject obj1 = new JsObject();\r
+ JsObject obj2 = new JsObject();\r
+ assertTrue(obj1.equals(obj2));\r
+\r
+ obj1.putValue("x", new JsNumber("99"));\r
+ obj2.putValue("x", new JsNumber("99"));\r
+ assertTrue(obj1.equals(obj2));\r
+\r
+ obj1.putValue("x", new JsNumber("99"));\r
+ obj2.putValue("x", new JsNumber("999"));\r
+ assertFalse(obj1.equals(obj2));\r
+\r
+ assertFalse(obj1.equals(null));\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of toString method, of class JsObject.\r
+ */\r
+ @Test\r
+ public void testToString(){\r
+ System.out.println("toString");\r
+\r
+ JsObject object = new JsObject();\r
+\r
+ assertEquals("{}", object.toString());\r
+\r
+ object.putValue("x", JsBoolean.TRUE);\r
+ assertEquals("{\"x\":true}", object.toString());\r
+\r
+ object.putValue("y", JsBoolean.FALSE);\r
+ assertEquals("{\"x\":true,\"y\":false}", object.toString());\r
+\r
+ object.putValue("z", new JsObject());\r
+ assertEquals("{\"x\":true,\"y\":false,\"z\":{}}", object.toString());\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of traverse method, of class JsObject.\r
+ */\r
+ @Test\r
+ public void testTraverse() throws Exception{\r
+ System.out.println("traverse");\r
+\r
+ JsObject obj = new JsObject();\r
+ JsValue val1 = new JsNumber("12");\r
+ JsValue val2 = new JsString("AB");\r
+ obj.putValue("x", val1);\r
+ obj.putValue("y", val2);\r
+\r
+ final List<Object> visited = new LinkedList<Object>();\r
+\r
+ try{\r
+ obj.traverse(new ValueVisitor(){\r
+ public void visitValue(JsValue value)\r
+ throws JsVisitException{\r
+ visited.add(value);\r
+ return;\r
+ }\r
+\r
+ public void visitPairName(String name)\r
+ throws JsVisitException{\r
+ visited.add(name);\r
+ return;\r
+ }\r
+\r
+ public void visitCollectionClose(JsValue composite)\r
+ throws JsVisitException{\r
+ visited.add(composite);\r
+ return;\r
+ }\r
+ });\r
+ }catch(JsVisitException e){\r
+ fail();\r
+ }\r
+\r
+ assertEquals(6, visited.size());\r
+ assertEquals(obj, visited.get(0));\r
+ assertEquals("x", visited.get(1));\r
+ assertEquals(val1, visited.get(2));\r
+ assertEquals("y", visited.get(3));\r
+ assertEquals(val2, visited.get(4));\r
+ assertEquals(obj, visited.get(5));\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of hasChanged method, of class JsObject.\r
+ */\r
+ @Test\r
+ public void testHasChanged(){\r
+ System.out.println("hasChanged");\r
+\r
+ JsObject obj = new JsObject();\r
+ assertFalse(obj.hasChanged());\r
+\r
+ obj.putValue("x", JsNull.NULL);\r
+ assertTrue(obj.hasChanged());\r
+\r
+ obj.setUnchanged();\r
+ assertFalse(obj.hasChanged());\r
+\r
+ JsObject child = new JsObject();\r
+ obj.putValue("y", child);\r
+ obj.setUnchanged();\r
+ assertFalse(obj.hasChanged());\r
+\r
+ child.putValue("z", JsBoolean.TRUE);\r
+ assertTrue(obj.hasChanged());\r
+ obj.setUnchanged();\r
+ assertFalse(obj.hasChanged());\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of setUnchanged method, of class JsObject.\r
+ */\r
+ @Test\r
+ public void testSetUnchanged(){\r
+ System.out.println("setUnchanged");\r
+\r
+ JsObject obj = new JsObject();\r
+ JsObject child = new JsObject();\r
+ obj.putValue("x", child);\r
+\r
+ child.putValue("y", JsNull.NULL);\r
+ assertTrue(child.hasChanged());\r
+\r
+ obj.setUnchanged();\r
+ assertFalse(child.hasChanged());\r
+\r
+ return;\r
+ }\r
+\r
+}\r
--- /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 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 JsPairTest {\r
+\r
+ public JsPairTest() {\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 getName method, of class JsPair.\r
+ */\r
+ @Test\r
+ public void testGetName(){\r
+ System.out.println("getName");\r
+\r
+ JsPair pair;\r
+\r
+ pair = new JsPair("", JsNull.NULL);\r
+ assertEquals("", pair.getName());\r
+\r
+ pair = new JsPair("a", JsNull.NULL);\r
+ assertEquals("a", pair.getName());\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of getValue method, of class JsPair.\r
+ */\r
+ @Test\r
+ public void testGetValue(){\r
+ System.out.println("getValue");\r
+\r
+ JsPair pair;\r
+\r
+ pair = new JsPair("x", JsNull.NULL);\r
+ assertEquals(JsNull.NULL, pair.getValue());\r
+\r
+ pair = new JsPair("x", "abc");\r
+ assertEquals(new JsString("abc"), pair.getValue());\r
+\r
+ pair = new JsPair("x", true);\r
+ assertEquals(JsBoolean.TRUE, pair.getValue());\r
+\r
+ pair = new JsPair("x", false);\r
+ assertEquals(JsBoolean.FALSE, pair.getValue());\r
+\r
+ pair = new JsPair("x", 999999999999L);\r
+ assertEquals(new JsNumber("999999999999"), pair.getValue());\r
+\r
+ pair = new JsPair("x", 1.25);\r
+ assertEquals(new JsNumber("1.25"), pair.getValue());\r
+\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * Test of toString method, of class JsPair.\r
+ */\r
+ @Test\r
+ public void testToString(){\r
+ System.out.println("toString");\r
+\r
+ JsPair pair;\r
+\r
+ pair = new JsPair("x", JsNull.NULL);\r
+ assertEquals("\"x\":null", pair.toString());\r
+\r
+ pair = new JsPair("", JsNull.NULL);\r
+ assertEquals("\"\":null", pair.toString());\r
+\r
+ return;\r
+ }\r
+\r
+}\r
--- /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