From 8168e6f52a52843cf7b4547b090dc21dc9abefd8 Mon Sep 17 00:00:00 2001 From: stleary Date: Sat, 4 Apr 2015 14:01:52 -0500 Subject: [PATCH] 93.8% coverage --- JSONStringerTest.java | 224 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 224 insertions(+) create mode 100644 JSONStringerTest.java diff --git a/JSONStringerTest.java b/JSONStringerTest.java new file mode 100644 index 0000000..d76bfb1 --- /dev/null +++ b/JSONStringerTest.java @@ -0,0 +1,224 @@ +package org.json.junit; + +import org.json.*; +import org.junit.Test; + + +/** + * Tests for JSON-Java JSONStringer.java + */ +public class JSONStringerTest { + + @Test(expected=JSONException.class) + public void nullKeyException() { + JSONStringer jsonStringer = new JSONStringer(); + jsonStringer.object(); + jsonStringer.key(null); + } + + @Test(expected=JSONException.class) + public void outOfSequenceException() { + JSONStringer jsonStringer = new JSONStringer(); + jsonStringer.key("hi"); + } + + @Test(expected=JSONException.class) + public void missplacedArrayException() { + JSONStringer jsonStringer = new JSONStringer(); + jsonStringer.object().endObject(); + jsonStringer.array(); + } + + @Test(expected=JSONException.class) + public void missplacedEndArrayException() { + JSONStringer jsonStringer = new JSONStringer(); + jsonStringer.object(); + jsonStringer.endArray(); + } + + @Test(expected=JSONException.class) + public void missplacedEndObjectException() { + JSONStringer jsonStringer = new JSONStringer(); + jsonStringer.array(); + jsonStringer.endObject(); + } + + @Test(expected=JSONException.class) + public void missplacedObjectException() { + JSONStringer jsonStringer = new JSONStringer(); + jsonStringer.object().endObject(); + jsonStringer.object(); + } + + @Test(expected=JSONException.class) + public void exceedNestDepthException() { + new JSONStringer().object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(). + key("k").object().key("k").object().key("k").object().key("k").object().key("k").object(); + } + + @Test + public void simpleObjectString() { + String expectedStr = + "{"+ + "\"trueValue\":true,"+ + "\"falseValue\":false,"+ + "\"nullValue\":null,"+ + "\"stringValue\":\"hello world!\","+ + "\"complexStringValue\":\"h\be\tllo w\u1234orld!\","+ + "\"intValue\":42,"+ + "\"doubleValue\":-23.45e67"+ + "}"; + JSONStringer jsonStringer = new JSONStringer(); + jsonStringer.object(); + jsonStringer.key("trueValue").value(true); + jsonStringer.key("falseValue").value(false); + jsonStringer.key("nullValue").value(null); + jsonStringer.key("stringValue").value("hello world!"); + jsonStringer.key("complexStringValue").value("h\be\tllo w\u1234orld!"); + jsonStringer.key("intValue").value(42); + jsonStringer.key("doubleValue").value(-23.45e67); + jsonStringer.endObject(); + String str = jsonStringer.toString(); + JSONObject jsonObject = new JSONObject(str); + JSONObject expectedJsonObject = new JSONObject(expectedStr); + Util.compareActualVsExpectedJsonObjects(jsonObject, expectedJsonObject); + } + + @Test + public void simpleArrayString() { + String expectedStr = + "["+ + "true,"+ + "false,"+ + "null,"+ + "\"hello world!\","+ + "42,"+ + "-23.45e67"+ + "]"; + JSONStringer jsonStringer = new JSONStringer(); + jsonStringer.array(); + jsonStringer.value(true); + jsonStringer.value(false); + jsonStringer.value(null); + jsonStringer.value("hello world!"); + jsonStringer.value(42); + jsonStringer.value(-23.45e67); + jsonStringer.endArray(); + String str = jsonStringer.toString(); + JSONArray jsonArray = new JSONArray(str); + JSONArray expectedJsonArray = new JSONArray(expectedStr); + Util.compareActualVsExpectedJsonArrays(jsonArray, expectedJsonArray); + } + + @Test + public void complexObjectString() { + String expectedStr = + "{"+ + "\"trueValue\":true,"+ + "\"falseValue\":false,"+ + "\"nullValue\":null,"+ + "\"stringValue\":\"hello world!\","+ + "\"object2\":{"+ + "\"k1\":\"v1\","+ + "\"k2\":\"v2\","+ + "\"k3\":\"v3\","+ + "\"array1\":["+ + "1,"+ + "2,"+ + "{"+ + "\"k4\":\"v4\","+ + "\"k5\":\"v5\","+ + "\"k6\":\"v6\","+ + "\"array2\":["+ + "5,"+ + "6,"+ + "7,"+ + "8"+ + "]"+ + "},"+ + "3,"+ + "4"+ + "]"+ + "},"+ + "\"complexStringValue\":\"h\be\tllo w\u1234orld!\","+ + "\"intValue\":42,"+ + "\"doubleValue\":-23.45e67"+ + "}"; + JSONStringer jsonStringer = new JSONStringer(); + jsonStringer.object(); + jsonStringer.key("trueValue").value(true); + jsonStringer.key("falseValue").value(false); + jsonStringer.key("nullValue").value(null); + jsonStringer.key("stringValue").value("hello world!"); + jsonStringer.key("object2").object(); + jsonStringer.key("k1").value("v1"); + jsonStringer.key("k2").value("v2"); + jsonStringer.key("k3").value("v3"); + jsonStringer.key("array1").array(); + jsonStringer.value(1); + jsonStringer.value(2); + jsonStringer.object(); + jsonStringer.key("k4").value("v4"); + jsonStringer.key("k5").value("v5"); + jsonStringer.key("k6").value("v6"); + jsonStringer.key("array2").array(); + jsonStringer.value(5); + jsonStringer.value(6); + jsonStringer.value(7); + jsonStringer.value(8); + jsonStringer.endArray(); + jsonStringer.endObject(); + jsonStringer.value(3); + jsonStringer.value(4); + jsonStringer.endArray(); + jsonStringer.endObject(); + jsonStringer.key("complexStringValue").value("h\be\tllo w\u1234orld!"); + jsonStringer.key("intValue").value(42); + jsonStringer.key("doubleValue").value(-23.45e67); + jsonStringer.endObject(); + String str = jsonStringer.toString(); + JSONObject jsonObject = new JSONObject(str); + JSONObject expectedJsonObject = new JSONObject(expectedStr); + Util.compareActualVsExpectedJsonObjects(jsonObject, expectedJsonObject); + } + +}