2 * License : The MIT License
3 * Copyright(c) 2009 olyutorskii
6 package jp.sourceforge.jovsonz;
9 import java.io.IOException;
10 import java.io.StringReader;
11 import org.junit.After;
12 import org.junit.AfterClass;
13 import org.junit.Before;
14 import org.junit.BeforeClass;
15 import org.junit.Test;
16 import static org.junit.Assert.*;
21 public class JsonTest {
27 public static void setUpClass() throws Exception{
31 public static void tearDownClass() throws Exception{
39 public void tearDown() {
43 * Test of dumpJson method, of class Json.
46 public void testDumpJson() throws Exception{
47 System.out.println("dumpJson");
49 String SP2 = "\u0020\u0020";
50 String SP4 = SP2 + SP2;
51 String HASHSEP = "\u0020:\u0020";
55 StringBuilder dump = new StringBuilder();
57 reader = new StringReader("{}");
58 root = Json.parseJson(reader);
60 Json.dumpJson(dump, root);
61 assertEquals("{ }\n", dump.toString());
63 reader = new StringReader("[]");
64 root = Json.parseJson(reader);
66 Json.dumpJson(dump, root);
67 assertEquals("[ ]\n", dump.toString());
69 reader = new StringReader("[1]");
70 root = Json.parseJson(reader);
72 Json.dumpJson(dump, root);
75 + "]\n", dump.toString());
77 reader = new StringReader("[1,2]");
78 root = Json.parseJson(reader);
80 Json.dumpJson(dump, root);
84 + "]\n", dump.toString());
86 reader = new StringReader("[1,[2],3]");
87 root = Json.parseJson(reader);
89 Json.dumpJson(dump, root);
96 + "]\n", dump.toString());
98 reader = new StringReader("[1,{\"A\":\"a\"}]");
99 root = Json.parseJson(reader);
101 Json.dumpJson(dump, root);
105 + SP4+"\"A\""+HASHSEP+"\"a\"\n"
107 + "]\n", dump.toString());
109 reader = new StringReader("{\"A\":\"a\"}");
110 root = Json.parseJson(reader);
112 Json.dumpJson(dump, root);
114 + SP2+"\"A\""+HASHSEP+"\"a\"\n"
115 + "}\n", dump.toString());
117 reader = new StringReader("{\"A\":\"a\",\"B\":\"b\"}");
118 root = Json.parseJson(reader);
120 Json.dumpJson(dump, root);
122 + SP2+"\"A\""+HASHSEP+"\"a\" ,\n"
123 + SP2+"\"B\""+HASHSEP+"\"b\"\n"
124 + "}\n", dump.toString());
126 reader = new StringReader("{\"A\":{}}");
127 root = Json.parseJson(reader);
129 Json.dumpJson(dump, root);
131 + SP2+"\"A\""+HASHSEP+"{\u0020}\n"
132 + "}\n", dump.toString());
134 reader = new StringReader("{\"A\":{\"B\":\"b\"}}");
135 root = Json.parseJson(reader);
137 Json.dumpJson(dump, root);
139 + SP2+"\"A\""+HASHSEP+"{\n"
140 + SP4+"\"B\""+HASHSEP+"\"b\"\n"
142 + "}\n", dump.toString());
144 reader = new StringReader("{\"A\":[]}");
145 root = Json.parseJson(reader);
147 Json.dumpJson(dump, root);
149 + SP2+"\"A\""+HASHSEP+"[\u0020]\n"
150 + "}\n", dump.toString());
152 reader = new StringReader("{\"A\":[1,2]}");
153 root = Json.parseJson(reader);
155 Json.dumpJson(dump, root);
157 + SP2+"\"A\""+HASHSEP+"[\n"
161 + "}\n", dump.toString());
163 reader = new StringReader("["
164 + "true,false,null,\"string\",-0.5"
166 root = Json.parseJson(reader);
168 Json.dumpJson(dump, root);
173 + SP2+"\"string\" ,\n"
175 + "]\n", dump.toString());
178 Json.dumpJson(null, new JsObject());
180 }catch(NullPointerException e){
185 Json.dumpJson(new StringBuilder(), null);
187 }catch(NullPointerException e){
191 reader = new StringReader("[1,2,3]");
192 root = Json.parseJson(reader);
193 TroubleAppender app = new TroubleAppender(3);
195 Json.dumpJson(app, root);
197 }catch(IOException e){
205 * Test of parseValue method, of class Json.
208 public void testParseValue() throws Exception{
209 System.out.println("parseValue");
214 source = new JsonSource("true");
215 value = Json.parseValue(source);
216 assertEquals(JsBoolean.TRUE, value);
218 source = new JsonSource("false");
219 value = Json.parseValue(source);
220 assertEquals(JsBoolean.FALSE, value);
222 source = new JsonSource("null");
223 value = Json.parseValue(source);
224 assertEquals(JsNull.NULL, value);
226 source = new JsonSource("-0.5");
227 value = Json.parseValue(source);
228 assertEquals(JsTypes.NUMBER, value.getJsTypes());
229 assertEquals(-0.5, ((JsNumber)value).doubleValue(), 0.0);
231 source = new JsonSource("\"ABC\"");
232 value = Json.parseValue(source);
233 assertEquals(JsTypes.STRING, value.getJsTypes());
234 assertEquals("ABC", ((JsString)value).toRawString());
236 source = new JsonSource("[1,2,3]");
237 value = Json.parseValue(source);
238 assertEquals(JsTypes.ARRAY, value.getJsTypes());
239 assertEquals(3, ((JsArray)value).size());
241 source = new JsonSource("{\"A\":1,\"B\":2,\"C\":3}");
242 value = Json.parseValue(source);
243 assertEquals(JsTypes.OBJECT, value.getJsTypes());
244 assertEquals(3, ((JsObject)value).size());
246 source = new JsonSource("");
247 value = Json.parseValue(source);
250 source = new JsonSource(" ");
251 value = Json.parseValue(source);
255 source = new JsonSource("#");
256 value = Json.parseValue(source);
258 }catch(JsParseException e){
266 * Test of parseJson method, of class Json.
269 public void testParseJson() throws Exception{
270 System.out.println("parseJson");
275 reader = new StringReader("{}");
276 root = Json.parseJson(reader);
278 assertEquals(JsTypes.OBJECT, root.getJsTypes());
279 assertEquals(0, root.size());
281 reader = new StringReader("{\"name\":\"value\"}");
282 root = Json.parseJson(reader);
284 assertEquals(JsTypes.OBJECT, root.getJsTypes());
285 assertEquals(1, root.size());
287 reader = new StringReader(" { \"name\" : \"value\" } ");
288 root = Json.parseJson(reader);
290 assertEquals(JsTypes.OBJECT, root.getJsTypes());
291 assertEquals(1, root.size());
293 reader = new StringReader("[]");
294 root = Json.parseJson(reader);
296 assertEquals(JsTypes.ARRAY, root.getJsTypes());
297 assertEquals(0, root.size());
299 reader = new StringReader("[1,2,3]");
300 root = Json.parseJson(reader);
302 assertEquals(JsTypes.ARRAY, root.getJsTypes());
303 assertEquals(3, root.size());
305 reader = new StringReader(" [ 1 , 2 , 3 ] ");
306 root = Json.parseJson(reader);
308 assertEquals(JsTypes.ARRAY, root.getJsTypes());
309 assertEquals(3, root.size());
311 reader = new StringReader("");
312 root = Json.parseJson(reader);
315 reader = new StringReader(" ");
316 root = Json.parseJson(reader);
320 reader = new StringReader("true");
321 root = Json.parseJson(reader);
323 }catch(JsParseException e){
328 reader = new StringReader("false");
329 root = Json.parseJson(reader);
331 }catch(JsParseException e){
336 reader = new StringReader("null");
337 root = Json.parseJson(reader);
339 }catch(JsParseException e){
344 reader = new StringReader("\"ABC\"");
345 root = Json.parseJson(reader);
347 }catch(JsParseException e){
352 reader = new StringReader("-0.5");
353 root = Json.parseJson(reader);
355 }catch(JsParseException e){
360 reader = new StringReader("#");
361 root = Json.parseJson(reader);
363 }catch(JsParseException e){
368 reader = new StringReader(" [ 1 , 2 , 3 ");
369 root = Json.parseJson(reader);
371 }catch(JsParseException e){
376 reader = new TroubleReader(" [ 1 , 2 , 3 ] ", 3);
377 root = Json.parseJson(reader);
379 }catch(IOException e){