-/*\r
- * Copyright(c) 2009 olyutorskii\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
+/*
+ * Copyright(c) 2009 olyutorskii
+ */
+
+package jp.sourceforge.jindolf.json;
+
+import java.io.StringReader;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+/**
+ *
+ */
+public class JsArrayTest {
+
+ public JsArrayTest() {
+ }
+
+ @BeforeClass
+ public static void setUpClass() throws Exception{
+ }
+
+ @AfterClass
+ public static void tearDownClass() throws Exception{
+ }
+
+ @Before
+ public void setUp() {
+ }
+
+ @After
+ public void tearDown() {
+ }
+
+ /**
+ * Test of parseArray method, of class JsArray.
+ */
+ @Test
+ public void testParseArray() throws Exception{
+ System.out.println("parseArray");
+
+ JsonReader reader;
+ JsArray array;
+
+ reader = new JsonReader(new StringReader("[]"));
+ array = JsArray.parseArray(reader);
+ assertEquals(0, array.size());
+
+ reader = new JsonReader(new StringReader("[true]"));
+ array = JsArray.parseArray(reader);
+ assertEquals(1, array.size());
+ assertEquals(JsBoolean.TRUE, array.get(0));
+
+ reader = new JsonReader(new StringReader("[true,false]"));
+ array = JsArray.parseArray(reader);
+ assertEquals(2, array.size());
+ assertEquals(JsBoolean.TRUE, array.get(0));
+ assertEquals(JsBoolean.FALSE, array.get(1));
+
+ reader = new JsonReader(new StringReader("\n[\rtrue\t, false\n]\r"));
+ array = JsArray.parseArray(reader);
+ assertEquals(2, array.size());
+ assertEquals(JsBoolean.TRUE, array.get(0));
+ assertEquals(JsBoolean.FALSE, array.get(1));
+
+ try{
+ reader = new JsonReader(new StringReader("[,]"));
+ array = JsArray.parseArray(reader);
+ fail();
+ }catch(JsParseException e){
+ // NOTHING
+ }
+
+ try{
+ reader = new JsonReader(new StringReader("[true,]"));
+ array = JsArray.parseArray(reader);
+ fail();
+ }catch(JsParseException e){
+ // NOTHING
+ }
+
+ try{
+ reader = new JsonReader(new StringReader("[true"));
+ array = JsArray.parseArray(reader);
+ fail();
+ }catch(JsParseException e){
+ // NOTHING
+ }
+
+ try{
+ reader = new JsonReader(new StringReader("true]"));
+ array = JsArray.parseArray(reader);
+ fail();
+ }catch(JsParseException e){
+ // NOTHING
+ }
+
+ return;
+ }
+
+ /**
+ * Test of add method, of class JsArray.
+ */
+ @Test
+ public void testAdd(){
+ System.out.println("add");
+
+ JsArray array = new JsArray();
+
+ JsNumber number = new JsNumber("1.23");
+ assertEquals(0, array.size());
+ array.add(number);
+ assertEquals(1, array.size());
+ array.add(number);
+ assertEquals(2, array.size());
+
+ return;
+ }
+
+ /**
+ * Test of get method, of class JsArray.
+ */
+ @Test
+ public void testGet(){
+ System.out.println("get");
+
+ JsArray array = new JsArray();
+
+ JsValue val1 = new JsNumber("1.23");
+ JsValue val2 = new JsString("abc");
+
+ array.add(val1);
+ array.add(val2);
+
+ assertEquals(val1, array.get(0));
+ assertEquals(val2, array.get(1));
+
+ try{
+ array.get(2);
+ fail();
+ }catch(IndexOutOfBoundsException e){
+ // NOTHING
+ }
+
+ return;
+ }
+
+ /**
+ * Test of clear method, of class JsArray.
+ */
+ @Test
+ public void testClear(){
+ System.out.println("clear");
+
+ JsArray array = new JsArray();
+
+ JsValue val1 = new JsNumber("1.23");
+ JsValue val2 = new JsString("abc");
+
+ array.add(val1);
+ array.add(val2);
+ assertEquals(2, array.size());
+
+ array.clear();
+ assertEquals(0, array.size());
+
+ try{
+ array.get(0);
+ fail();
+ }catch(IndexOutOfBoundsException e){
+ // NOTHING
+ }
+
+ return;
+ }
+
+ /**
+ * Test of remove method, of class JsArray.
+ */
+ @Test
+ public void testRemove(){
+ System.out.println("remove");
+
+ JsArray array = new JsArray();
+
+ JsValue val1 = new JsNumber("1.23");
+ JsValue val2 = new JsString("abc");
+ JsValue val3 = JsBoolean.TRUE;
+
+ array.add(val1);
+ array.add(val2);
+ assertEquals(2, array.size());
+
+ assertTrue(array.remove(val1));
+ assertEquals(1, array.size());
+ assertEquals(val2, array.get(0));
+
+ assertFalse(array.remove(val3));
+ assertEquals(1, array.size());
+
+ return;
+ }
+
+ /**
+ * Test of size method, of class JsArray.
+ */
+ @Test
+ public void testSize(){
+ System.out.println("size");
+
+ JsArray array = new JsArray();
+ assertEquals(0, array.size());
+
+ JsValue val1 = new JsNumber("1.23");
+
+ array.add(val1);
+ assertEquals(1, array.size());
+
+ return;
+ }
+
+ /**
+ * Test of iterator method, of class JsArray.
+ */
+ @Test
+ public void testIterator(){
+ System.out.println("iterator");
+
+ JsArray array = new JsArray();
+
+ JsValue val1 = new JsNumber("1.23");
+ JsValue val2 = new JsString("abc");
+
+ array.add(val1);
+ array.add(val2);
+
+ Iterator<JsValue> it = array.iterator();
+
+ assertTrue(it.hasNext());
+ assertEquals(val1, it.next());
+
+ assertTrue(it.hasNext());
+ assertEquals(val2, it.next());
+
+ assertFalse(it.hasNext());
+
+ return;
+ }
+
+ /**
+ * Test of hashCode method, of class JsArray.
+ */
+ @Test
+ public void testHashCode(){
+ System.out.println("hashCode");
+
+ JsArray array1 = new JsArray();
+ JsArray array2 = new JsArray();
+
+ assertEquals(array1.hashCode(), array2.hashCode());
+
+ array1.add(new JsString("abc"));
+ array2.add(new JsString("abc"));
+
+ assertEquals(array1.hashCode(), array2.hashCode());
+
+ return;
+ }
+
+ /**
+ * Test of equals method, of class JsArray.
+ */
+ @Test
+ public void testEquals(){
+ System.out.println("equals");
+
+ JsArray array1 = new JsArray();
+ JsArray array2 = new JsArray();
+
+ assertTrue(array1.equals(array2));
+
+ array1.add(new JsString("abc"));
+ array2.add(new JsString("abc"));
+
+ assertTrue(array1.equals(array2));
+
+ array1.add(new JsString("xyz"));
+ array2.add(new JsString("XYZ"));
+
+ assertFalse(array1.equals(array2));
+
+ assertFalse(array1.equals(null));
+
+ return;
+ }
+
+ /**
+ * Test of toString method, of class JsArray.
+ */
+ @Test
+ public void testToString(){
+ System.out.println("toString");
+
+ JsArray array = new JsArray();
+
+ assertEquals("[]", array.toString());
+
+ array.add(JsBoolean.TRUE);
+ assertEquals("[true]", array.toString());
+
+ array.add(JsBoolean.FALSE);
+ assertEquals("[true,false]", array.toString());
+
+ array.add(new JsArray());
+ assertEquals("[true,false,[]]", array.toString());
+
+ return;
+ }
+
+ /**
+ * Test of traverse method, of class JsArray.
+ */
+ @Test
+ public void testTraverse() throws Exception{
+ System.out.println("traverse");
+
+ JsArray array = new JsArray();
+ JsValue val1 = new JsNumber("12");
+ JsValue val2 = new JsString("AB");
+ array.add(val1);
+ array.add(val2);
+
+ final List<Object> visited = new LinkedList<Object>();
+
+ try{
+ array.traverse(new ValueVisitor(){
+ public void visitValue(JsValue value)
+ throws JsVisitException{
+ visited.add(value);
+ return;
+ }
+
+ public void visitPairName(String name)
+ throws JsVisitException{
+ visited.add(name);
+ return;
+ }
+
+ public void visitCollectionClose(JsValue composite)
+ throws JsVisitException{
+ visited.add(composite);
+ return;
+ }
+ });
+ }catch(JsVisitException e){
+ fail();
+ }
+
+ assertEquals(4, visited.size());
+ assertEquals(array, visited.get(0));
+ assertEquals(val1, visited.get(1));
+ assertEquals(val2, visited.get(2));
+ assertEquals(array, visited.get(3));
+
+ return;
+ }
+
+ /**
+ * Test of hasChanged method, of class JsArray.
+ */
+ @Test
+ public void testHasChanged(){
+ System.out.println("hasChanged");
+
+ JsArray array = new JsArray();
+ assertFalse(array.hasChanged());
+
+ array.add(new JsNumber("0"));
+ assertTrue(array.hasChanged());
+
+ array.setUnchanged();
+ assertFalse(array.hasChanged());
+
+ JsArray child = new JsArray();
+ array.add(child);
+ array.setUnchanged();
+ assertFalse(array.hasChanged());
+
+ child.add(JsNull.NULL);
+ assertTrue(array.hasChanged());
+ array.setUnchanged();
+ assertFalse(array.hasChanged());
+
+ return;
+ }
+
+ /**
+ * Test of setUnchanged method, of class JsArray.
+ */
+ @Test
+ public void testSetUnchanged(){
+ System.out.println("setUnchanged");
+
+ JsArray array = new JsArray();
+ JsArray child = new JsArray();
+ array.add(child);
+
+ child.add(JsNull.NULL);
+ assertTrue(child.hasChanged());
+
+ array.setUnchanged();
+ assertFalse(child.hasChanged());
+
+ return;
+ }
+
+}