/** ************* Value tests * ************* */ @Test public void testValues() { // Longs String[] objectsJson = {"[{}]", "[{}, {}]", "[{}, {}, {}]"}; JsonObject[][] objectsEx = { {new JsonObject()}, {new JsonObject(), new JsonObject()}, {new JsonObject(), new JsonObject(), new JsonObject()} }; for (int objectsJsoff = 0; objectsJsoff < objectsJson.length; objectsJsoff++) { String json = objectsJson[objectsJsoff]; JsonObject[] ex = objectsEx[objectsJsoff]; JsonArray parsed = new TestArray(json, false); assertEquals(ex.length, parsed.size()); for (int e = 0; e < ex.length; e++) { // Valid assertEquals(ex[e], ((JsonObject) parsed.get(e))); assertEquals(ex[e], parsed.getObject(e)); // Invalid invalidValueHelper(parsed, "getArray", e); invalidValueHelper(parsed, "getString", e); invalidValueHelper(parsed, "getLong", e); invalidValueHelper(parsed, "getInt", e); invalidValueHelper(parsed, "getDouble", e); invalidValueHelper(parsed, "getFloat", e); invalidValueHelper(parsed, "getBoolean", e); } } // Strings String[] stringsJson = { "[\"test1\"]", "[\"test1\", \"test2\"]", "[\"test1\", \"test2\", \"test3\"]" }; String[][] stringsEx = {{"test1"}, {"test1", "test2"}, {"test1", "test2", "test3"}}; for (int stringsJsoff = 0; stringsJsoff < stringsJson.length; stringsJsoff++) { String json = stringsJson[stringsJsoff]; String[] ex = stringsEx[stringsJsoff]; JsonArray parsed = new TestArray(json, false); assertEquals(ex.length, parsed.size()); for (int e = 0; e < ex.length; e++) { // Valid assertEquals(ex[e], (String) parsed.get(e)); assertEquals(ex[e], parsed.getString(e)); // Invalid invalidValueHelper(parsed, "getObject", e); invalidValueHelper(parsed, "getArray", e); invalidValueHelper(parsed, "getLong", e); invalidValueHelper(parsed, "getInt", e); invalidValueHelper(parsed, "getDouble", e); invalidValueHelper(parsed, "getFloat", e); invalidValueHelper(parsed, "getBoolean", e); } } // Longs String[] longsJson = {"[1]", "[1, 2]", "[1, 2, 3]"}; long[][] longsEx = {{1}, {1, 2}, {1, 2, 3}}; for (int intsJsoff = 0; intsJsoff < longsJson.length; intsJsoff++) { String json = longsJson[intsJsoff]; long[] ex = longsEx[intsJsoff]; JsonArray parsed = new TestArray(json, false); assertEquals(ex.length, parsed.size()); for (int e = 0; e < ex.length; e++) { // Valid assertEquals(ex[e], ((Long) parsed.get(e)).longValue()); assertEquals(ex[e], parsed.getLong(e).longValue()); assertEquals(ex[e], parsed.getInt(e).intValue()); // Invalid invalidValueHelper(parsed, "getObject", e); invalidValueHelper(parsed, "getArray", e); invalidValueHelper(parsed, "getString", e); invalidValueHelper(parsed, "getDouble", e); invalidValueHelper(parsed, "getFloat", e); invalidValueHelper(parsed, "getBoolean", e); } } // Floats String[] floatsJson = {"[1.1]", "[1.1, 2.2f]", "[1.1, 2.2f, 3.3d]"}; float[][] floatsEx = {{1.1f}, {1.1f, 2.2f}, {1.1f, 2.2f, 3.3f}}; for (int floatsJsoff = 0; floatsJsoff < floatsJson.length; floatsJsoff++) { String json = floatsJson[floatsJsoff]; float[] ex = floatsEx[floatsJsoff]; JsonArray parsed = new TestArray(json, false); assertEquals(ex.length, parsed.size()); for (int e = 0; e < ex.length; e++) { // Valid assertEquals(ex[e], ((Double) parsed.get(e)).doubleValue(), 0.01); assertEquals(ex[e], parsed.getDouble(e).doubleValue(), 0.01); assertEquals(ex[e], parsed.getFloat(e).floatValue(), 0.01f); // Invalid invalidValueHelper(parsed, "getObject", e); invalidValueHelper(parsed, "getArray", e); invalidValueHelper(parsed, "getString", e); invalidValueHelper(parsed, "getLong", e); invalidValueHelper(parsed, "getInt", e); invalidValueHelper(parsed, "getBoolean", e); } } // Booleans String[] boolJson = {"[true]", "[true, false]", "[true, false, true]"}; boolean[][] boolEx = {{true}, {true, false}, {true, false, true}}; for (int boolsJsoff = 0; boolsJsoff < boolJson.length; boolsJsoff++) { String json = boolJson[boolsJsoff]; boolean[] ex = boolEx[boolsJsoff]; JsonArray parsed = new TestArray(json, false); assertEquals(ex.length, parsed.size()); for (int e = 0; e < ex.length; e++) { // Valid assertEquals(ex[e], ((Boolean) parsed.get(e)).booleanValue()); assertEquals(ex[e], parsed.getBoolean(e).booleanValue()); // Invalid invalidValueHelper(parsed, "getObject", e); invalidValueHelper(parsed, "getArray", e); invalidValueHelper(parsed, "getString", e); invalidValueHelper(parsed, "getLong", e); invalidValueHelper(parsed, "getInt", e); invalidValueHelper(parsed, "getDouble", e); invalidValueHelper(parsed, "getFloat", e); } } // Nulls String[] nullJson = {"[null]", "[null, null]", "[null, null, null]"}; Object[][] nullEx = { {null}, {null, null}, {null, null, null} }; // Should I really be expecting anything else? for (int nullJsoff = 0; nullJsoff < nullJson.length; nullJsoff++) { String json = nullJson[nullJsoff]; Object[] ex = nullEx[nullJsoff]; JsonArray parsed = new TestArray(json, false); assertEquals(ex.length, parsed.size()); for (int e = 0; e < ex.length; e++) { // Valid assertNull(parsed.get(e)); assertNull(parsed.getObject(e)); assertNull(parsed.getArray(e)); assertNull(parsed.getString(e)); assertNull(parsed.getLong(e)); assertNull(parsed.getInt(e)); assertNull(parsed.getDouble(e)); assertNull(parsed.getFloat(e)); assertNull(parsed.getBoolean(e)); } } }