package org.json.simple; import java.io.IOException; import java.io.StringWriter; import junit.framework.TestCase; public class JSONValueTest extends TestCase { public void testByteArrayToString() throws IOException { assertEquals("null", JSONValue.toJSONString((byte[])null)); assertEquals("[]", JSONValue.toJSONString(new byte[0])); assertEquals("[12]", JSONValue.toJSONString(new byte[] { 12 })); assertEquals("[-7,22,86,-99]", JSONValue.toJSONString(new byte[] { -7, 22, 86, -99 })); StringWriter writer; writer = new StringWriter(); JSONValue.writeJSONString((byte[])null, writer); assertEquals("null", writer.toString()); writer = new StringWriter(); JSONValue.writeJSONString(new byte[0], writer); assertEquals("[]", writer.toString()); writer = new StringWriter(); JSONValue.writeJSONString(new byte[] { 12 }, writer); assertEquals("[12]", writer.toString()); writer = new StringWriter(); JSONValue.writeJSONString(new byte[] { -7, 22, 86, -99 }, writer); assertEquals("[-7,22,86,-99]", writer.toString()); } public void testShortArrayToString() throws IOException { assertEquals("null", JSONValue.toJSONString((short[])null)); assertEquals("[]", JSONValue.toJSONString(new short[0])); assertEquals("[12]", JSONValue.toJSONString(new short[] { 12 })); assertEquals("[-7,22,86,-99]", JSONValue.toJSONString(new short[] { -7, 22, 86, -99 })); StringWriter writer; writer = new StringWriter(); JSONValue.writeJSONString((short[])null, writer); assertEquals("null", writer.toString()); writer = new StringWriter(); JSONValue.writeJSONString(new short[0], writer); assertEquals("[]", writer.toString()); writer = new StringWriter(); JSONValue.writeJSONString(new short[] { 12 }, writer); assertEquals("[12]", writer.toString()); writer = new StringWriter(); JSONValue.writeJSONString(new short[] { -7, 22, 86, -99 }, writer); assertEquals("[-7,22,86,-99]", writer.toString()); } public void testIntArrayToString() throws IOException { assertEquals("null", JSONValue.toJSONString((int[])null)); assertEquals("[]", JSONValue.toJSONString(new int[0])); assertEquals("[12]", JSONValue.toJSONString(new int[] { 12 })); assertEquals("[-7,22,86,-99]", JSONValue.toJSONString(new int[] { -7, 22, 86, -99 })); StringWriter writer; writer = new StringWriter(); JSONValue.writeJSONString((int[])null, writer); assertEquals("null", writer.toString()); writer = new StringWriter(); JSONValue.writeJSONString(new int[0], writer); assertEquals("[]", writer.toString()); writer = new StringWriter(); JSONValue.writeJSONString(new int[] { 12 }, writer); assertEquals("[12]", writer.toString()); writer = new StringWriter(); JSONValue.writeJSONString(new int[] { -7, 22, 86, -99 }, writer); assertEquals("[-7,22,86,-99]", writer.toString()); } public void testLongArrayToString() throws IOException { assertEquals("null", JSONValue.toJSONString((long[])null)); assertEquals("[]", JSONValue.toJSONString(new long[0])); assertEquals("[12]", JSONValue.toJSONString(new long[] { 12 })); assertEquals("[-7,22,9223372036854775807,-99]", JSONValue.toJSONString(new long[] { -7, 22, 9223372036854775807L, -99 })); StringWriter writer; writer = new StringWriter(); JSONValue.writeJSONString((long[])null, writer); assertEquals("null", writer.toString()); writer = new StringWriter(); JSONValue.writeJSONString(new long[0], writer); assertEquals("[]", writer.toString()); writer = new StringWriter(); JSONValue.writeJSONString(new long[] { 12 }, writer); assertEquals("[12]", writer.toString()); writer = new StringWriter(); JSONValue.writeJSONString(new long[] { -7, 22, 86, -99 }, writer); assertEquals("[-7,22,86,-99]", writer.toString()); } public void testFloatArrayToString() throws IOException { assertEquals("null", JSONValue.toJSONString((float[])null)); assertEquals("[]", JSONValue.toJSONString(new float[0])); assertEquals("[12.8]", JSONValue.toJSONString(new float[] { 12.8f })); assertEquals("[-7.1,22.234,86.7,-99.02]", JSONValue.toJSONString(new float[] { -7.1f, 22.234f, 86.7f, -99.02f })); StringWriter writer; writer = new StringWriter(); JSONValue.writeJSONString((float[])null, writer); assertEquals("null", writer.toString()); writer = new StringWriter(); JSONValue.writeJSONString(new float[0], writer); assertEquals("[]", writer.toString()); writer = new StringWriter(); JSONValue.writeJSONString(new float[] { 12.8f }, writer); assertEquals("[12.8]", writer.toString()); writer = new StringWriter(); JSONValue.writeJSONString(new float[] { -7.1f, 22.234f, 86.7f, -99.02f }, writer); assertEquals("[-7.1,22.234,86.7,-99.02]", writer.toString()); } public void testDoubleArrayToString() throws IOException { assertEquals("null", JSONValue.toJSONString((double[])null)); assertEquals("[]", JSONValue.toJSONString(new double[0])); assertEquals("[12.8]", JSONValue.toJSONString(new double[] { 12.8 })); assertEquals("[-7.1,22.234,86.7,-99.02]", JSONValue.toJSONString(new double[] { -7.1, 22.234, 86.7, -99.02 })); StringWriter writer; writer = new StringWriter(); JSONValue.writeJSONString((double[])null, writer); assertEquals("null", writer.toString()); writer = new StringWriter(); JSONValue.writeJSONString(new double[0], writer); assertEquals("[]", writer.toString()); writer = new StringWriter(); JSONValue.writeJSONString(new double[] { 12.8 }, writer); assertEquals("[12.8]", writer.toString()); writer = new StringWriter(); JSONValue.writeJSONString(new double[] { -7.1, 22.234, 86.7, -99.02 }, writer); assertEquals("[-7.1,22.234,86.7,-99.02]", writer.toString()); } public void testBooleanArrayToString() throws IOException { assertEquals("null", JSONValue.toJSONString((boolean[])null)); assertEquals("[]", JSONValue.toJSONString(new boolean[0])); assertEquals("[true]", JSONValue.toJSONString(new boolean[] { true })); assertEquals("[true,false,true]", JSONValue.toJSONString(new boolean[] { true, false, true })); StringWriter writer; writer = new StringWriter(); JSONValue.writeJSONString((boolean[])null, writer); assertEquals("null", writer.toString()); writer = new StringWriter(); JSONValue.writeJSONString(new boolean[0], writer); assertEquals("[]", writer.toString()); writer = new StringWriter(); JSONValue.writeJSONString(new boolean[] { true }, writer); assertEquals("[true]", writer.toString()); writer = new StringWriter(); JSONValue.writeJSONString(new boolean[] { true, false, true }, writer); assertEquals("[true,false,true]", writer.toString()); } public void testCharArrayToString() throws IOException { assertEquals("null", JSONValue.toJSONString((char[])null)); assertEquals("[]", JSONValue.toJSONString(new char[0])); assertEquals("[\"a\"]", JSONValue.toJSONString(new char[] { 'a' })); assertEquals("[\"a\",\"b\",\"c\"]", JSONValue.toJSONString(new char[] { 'a', 'b', 'c' })); StringWriter writer; writer = new StringWriter(); JSONValue.writeJSONString((char[])null, writer); assertEquals("null", writer.toString()); writer = new StringWriter(); JSONValue.writeJSONString(new char[0], writer); assertEquals("[]", writer.toString()); writer = new StringWriter(); JSONValue.writeJSONString(new char[] { 'a' }, writer); assertEquals("[\"a\"]", writer.toString()); writer = new StringWriter(); JSONValue.writeJSONString(new char[] { 'a', 'b', 'c' }, writer); assertEquals("[\"a\",\"b\",\"c\"]", writer.toString()); } public void testObjectArrayToString() throws IOException { assertEquals("null", JSONValue.toJSONString((Object[])null)); assertEquals("[]", JSONValue.toJSONString(new Object[0])); assertEquals("[\"Hello\"]", JSONValue.toJSONString(new Object[] { "Hello" })); assertEquals("[\"Hello\",12,[1,2,3]]", JSONValue.toJSONString(new Object[] { "Hello", new Integer(12), new int[] { 1, 2, 3 } })); StringWriter writer; writer = new StringWriter(); JSONValue.writeJSONString((Object[])null, writer); assertEquals("null", writer.toString()); writer = new StringWriter(); JSONValue.writeJSONString(new Object[0], writer); assertEquals("[]", writer.toString()); writer = new StringWriter(); JSONValue.writeJSONString(new Object[] { "Hello" }, writer); assertEquals("[\"Hello\"]", writer.toString()); writer = new StringWriter(); JSONValue.writeJSONString(new Object[] { "Hello", new Integer(12), new int[] { 1, 2, 3} }, writer); assertEquals("[\"Hello\",12,[1,2,3]]", writer.toString()); } public void testArraysOfArrays() throws IOException { StringWriter writer; final int[][][] nestedIntArray = new int[][][]{{{1}, {5}}, {{2}, {6}}}; final String expectedNestedIntString = "[[[1],[5]],[[2],[6]]]"; assertEquals(expectedNestedIntString, JSONValue.toJSONString(nestedIntArray)); writer = new StringWriter(); JSONValue.writeJSONString(nestedIntArray, writer); assertEquals(expectedNestedIntString, writer.toString()); final String[][] nestedStringArray = new String[][]{{"a", "b"}, {"c", "d"}}; final String expectedNestedStringString = "[[\"a\",\"b\"],[\"c\",\"d\"]]"; assertEquals(expectedNestedStringString, JSONValue.toJSONString(nestedStringArray)); writer = new StringWriter(); JSONValue.writeJSONString(nestedStringArray, writer); assertEquals(expectedNestedStringString, writer.toString()); } }