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;
17 import static org.junit.Assert.*;
22 public class JsonTest {
28 public static void setUpClass() throws Exception{
32 public static void tearDownClass() throws Exception{
40 public void tearDown() {
44 * Test of dumpJson method, of class Json.
47 public void testDumpJson() throws Exception{
48 System.out.println("dumpJson");
50 String SP2 = "\u0020\u0020";
51 String SP4 = SP2 + SP2;
52 String HASHSEP = "\u0020:\u0020";
56 StringBuilder dump = new StringBuilder();
58 reader = new StringReader("{}");
59 root = Json.parseJson(reader);
61 Json.dumpJson(dump, root);
62 assertEquals("{ }\n", dump.toString());
64 reader = new StringReader("[]");
65 root = Json.parseJson(reader);
67 Json.dumpJson(dump, root);
68 assertEquals("[ ]\n", dump.toString());
70 reader = new StringReader("[1]");
71 root = Json.parseJson(reader);
73 Json.dumpJson(dump, root);
76 + "]\n", dump.toString());
78 reader = new StringReader("[1,2]");
79 root = Json.parseJson(reader);
81 Json.dumpJson(dump, root);
85 + "]\n", dump.toString());
87 reader = new StringReader("[1,[2],3]");
88 root = Json.parseJson(reader);
90 Json.dumpJson(dump, root);
97 + "]\n", dump.toString());
99 reader = new StringReader("[1,{\"A\":\"a\"}]");
100 root = Json.parseJson(reader);
102 Json.dumpJson(dump, root);
106 + SP4+"\"A\""+HASHSEP+"\"a\"\n"
108 + "]\n", dump.toString());
110 reader = new StringReader("{\"A\":\"a\"}");
111 root = Json.parseJson(reader);
113 Json.dumpJson(dump, root);
115 + SP2+"\"A\""+HASHSEP+"\"a\"\n"
116 + "}\n", dump.toString());
118 reader = new StringReader("{\"A\":\"a\",\"B\":\"b\"}");
119 root = Json.parseJson(reader);
121 Json.dumpJson(dump, root);
123 + SP2+"\"A\""+HASHSEP+"\"a\" ,\n"
124 + SP2+"\"B\""+HASHSEP+"\"b\"\n"
125 + "}\n", dump.toString());
127 reader = new StringReader("{\"A\":{}}");
128 root = Json.parseJson(reader);
130 Json.dumpJson(dump, root);
132 + SP2+"\"A\""+HASHSEP+"{\u0020}\n"
133 + "}\n", dump.toString());
135 reader = new StringReader("{\"A\":{\"B\":\"b\"}}");
136 root = Json.parseJson(reader);
138 Json.dumpJson(dump, root);
140 + SP2+"\"A\""+HASHSEP+"{\n"
141 + SP4+"\"B\""+HASHSEP+"\"b\"\n"
143 + "}\n", dump.toString());
145 reader = new StringReader("{\"A\":[]}");
146 root = Json.parseJson(reader);
148 Json.dumpJson(dump, root);
150 + SP2+"\"A\""+HASHSEP+"[\u0020]\n"
151 + "}\n", dump.toString());
153 reader = new StringReader("{\"A\":[1,2]}");
154 root = Json.parseJson(reader);
156 Json.dumpJson(dump, root);
158 + SP2+"\"A\""+HASHSEP+"[\n"
162 + "}\n", dump.toString());
164 reader = new StringReader("["
165 + "true,false,null,\"string\",-0.5"
167 root = Json.parseJson(reader);
169 Json.dumpJson(dump, root);
174 + SP2+"\"string\" ,\n"
176 + "]\n", dump.toString());
179 Json.dumpJson(null, new JsObject());
181 }catch(NullPointerException e){
186 Json.dumpJson(new StringBuilder(), null);
188 }catch(NullPointerException e){
192 reader = new StringReader("[1,2,3]");
193 root = Json.parseJson(reader);
194 TroubleAppender app = new TroubleAppender(3);
196 Json.dumpJson(app, root);
198 }catch(IOException e){
206 * Test of parseValue method, of class Json.
209 public void testParseValue() throws Exception{
210 System.out.println("parseValue");
215 source = new JsonSource("true");
216 value = Json.parseValue(source);
217 assertEquals(JsBoolean.TRUE, value);
219 source = new JsonSource("false");
220 value = Json.parseValue(source);
221 assertEquals(JsBoolean.FALSE, value);
223 source = new JsonSource("null");
224 value = Json.parseValue(source);
225 assertEquals(JsNull.NULL, value);
227 source = new JsonSource("-0.5");
228 value = Json.parseValue(source);
229 assertEquals(JsTypes.NUMBER, value.getJsTypes());
230 assertEquals(-0.5, ((JsNumber)value).doubleValue(), 0.0);
232 source = new JsonSource("\"ABC\"");
233 value = Json.parseValue(source);
234 assertEquals(JsTypes.STRING, value.getJsTypes());
235 assertEquals("ABC", ((JsString)value).toRawString());
237 source = new JsonSource("[1,2,3]");
238 value = Json.parseValue(source);
239 assertEquals(JsTypes.ARRAY, value.getJsTypes());
240 assertEquals(3, ((JsArray)value).size());
242 source = new JsonSource("{\"A\":1,\"B\":2,\"C\":3}");
243 value = Json.parseValue(source);
244 assertEquals(JsTypes.OBJECT, value.getJsTypes());
245 assertEquals(3, ((JsObject)value).size());
247 source = new JsonSource("");
248 value = Json.parseValue(source);
251 source = new JsonSource(" ");
252 value = Json.parseValue(source);
256 source = new JsonSource("#");
257 value = Json.parseValue(source);
259 }catch(JsParseException e){
267 * Test of parseJson method, of class Json.
270 public void testParseJson() throws Exception{
271 System.out.println("parseJson");
276 reader = new StringReader("{}");
277 root = Json.parseJson(reader);
279 assertEquals(JsTypes.OBJECT, root.getJsTypes());
280 assertEquals(0, root.size());
282 reader = new StringReader("{\"name\":\"value\"}");
283 root = Json.parseJson(reader);
285 assertEquals(JsTypes.OBJECT, root.getJsTypes());
286 assertEquals(1, root.size());
288 reader = new StringReader(" { \"name\" : \"value\" } ");
289 root = Json.parseJson(reader);
291 assertEquals(JsTypes.OBJECT, root.getJsTypes());
292 assertEquals(1, root.size());
294 reader = new StringReader("[]");
295 root = Json.parseJson(reader);
297 assertEquals(JsTypes.ARRAY, root.getJsTypes());
298 assertEquals(0, root.size());
300 reader = new StringReader("[1,2,3]");
301 root = Json.parseJson(reader);
303 assertEquals(JsTypes.ARRAY, root.getJsTypes());
304 assertEquals(3, root.size());
306 reader = new StringReader(" [ 1 , 2 , 3 ] ");
307 root = Json.parseJson(reader);
309 assertEquals(JsTypes.ARRAY, root.getJsTypes());
310 assertEquals(3, root.size());
312 reader = new StringReader("");
313 root = Json.parseJson(reader);
316 reader = new StringReader(" ");
317 root = Json.parseJson(reader);
321 reader = new StringReader("true");
322 root = Json.parseJson(reader);
324 }catch(JsParseException e){
329 reader = new StringReader("false");
330 root = Json.parseJson(reader);
332 }catch(JsParseException e){
337 reader = new StringReader("null");
338 root = Json.parseJson(reader);
340 }catch(JsParseException e){
345 reader = new StringReader("\"ABC\"");
346 root = Json.parseJson(reader);
348 }catch(JsParseException e){
353 reader = new StringReader("-0.5");
354 root = Json.parseJson(reader);
356 }catch(JsParseException e){
361 reader = new StringReader("#");
362 root = Json.parseJson(reader);
364 }catch(JsParseException e){
369 reader = new StringReader(" [ 1 , 2 , 3 ");
370 root = Json.parseJson(reader);
372 }catch(JsParseException e){
377 reader = new TroubleReader(" [ 1 , 2 , 3 ] ", 3);
378 root = Json.parseJson(reader);
380 }catch(IOException e){