mirror of
https://github.com/ethauvin/JSON-java.git
synced 2025-06-17 16:00:51 -07:00
351 lines
8.9 KiB
Java
351 lines
8.9 KiB
Java
/*
|
|
* File: TestCDL.java Author: JSON.org
|
|
*/
|
|
package org.json.tests;
|
|
|
|
import org.json.CDL;
|
|
import org.json.JSONArray;
|
|
import org.json.JSONException;
|
|
import org.json.JSONObject;
|
|
import org.junit.Before;
|
|
|
|
import junit.framework.TestCase;
|
|
|
|
/**
|
|
* The Class TestCDL.
|
|
*/
|
|
public class TestCDL extends TestCase
|
|
{
|
|
|
|
/** The string. */
|
|
private String string;
|
|
|
|
/** The jsonarray. */
|
|
private JSONArray jsonarray;
|
|
|
|
/*
|
|
* (non-Javadoc)
|
|
*
|
|
* @see junit.framework.TestCase#setUp()
|
|
*/
|
|
@Before
|
|
@Override
|
|
public void setUp()
|
|
{
|
|
//@formatter:off
|
|
string =
|
|
"abc,test,123\n" +
|
|
"gg,hh,jj\n" +
|
|
"aa,bb,cc\n";
|
|
//@formatter:on
|
|
|
|
try
|
|
{
|
|
jsonarray = new JSONArray();
|
|
JSONObject jo = new JSONObject();
|
|
JSONObject jo2 = new JSONObject();
|
|
jo.put("abc", "gg");
|
|
jo.put("test", "hh");
|
|
jo.put("123", "jj");
|
|
jo2.put("abc", "aa");
|
|
jo2.put("test", "bb");
|
|
jo2.put("123", "cc");
|
|
jsonarray.put(jo);
|
|
jsonarray.put(jo2);
|
|
} catch (JSONException e)
|
|
{
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Tests the toJsonArray method.
|
|
*/
|
|
public void testToJsonArray()
|
|
{
|
|
|
|
try
|
|
{
|
|
assertEquals(jsonarray.toString(), CDL.toJSONArray(string)
|
|
.toString());
|
|
} catch (JSONException e)
|
|
{
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Tests the toJsonArray method using No names.
|
|
*/
|
|
public static void testToJsonArray_NoNames()
|
|
{
|
|
|
|
try
|
|
{
|
|
assertEquals(null, CDL.toJSONArray(new JSONArray(), "abc,123"));
|
|
} catch (JSONException e)
|
|
{
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Tests the toJsonArray method using Null names.
|
|
*/
|
|
public static void testToJsonArray_NullNames()
|
|
{
|
|
|
|
try
|
|
{
|
|
assertEquals(null, CDL.toJSONArray(null, "abc,123"));
|
|
} catch (JSONException e)
|
|
{
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Tests the toJsonArray method using No data.
|
|
*/
|
|
public static void testToJsonArray_NoData()
|
|
{
|
|
|
|
try
|
|
{
|
|
assertEquals(null, CDL.toJSONArray("abc,123\n"));
|
|
} catch (JSONException e)
|
|
{
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Tests the toJsonArray method using weird data.
|
|
*/
|
|
public void testToJsonArray_WeirdData()
|
|
{
|
|
//@formatter:off
|
|
string =
|
|
"abc,test,123\r" +
|
|
"gg,hh,\"jj\"\r" +
|
|
"aa,\tbb,cc";
|
|
//@formatter:on
|
|
try
|
|
{
|
|
assertEquals(jsonarray.toString(), CDL.toJSONArray(string)
|
|
.toString());
|
|
} catch (JSONException e)
|
|
{
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Tests the toJsonArray method using no closing quote.
|
|
*/
|
|
public void testToJsonArray_NoClosingQuote()
|
|
{
|
|
//@formatter:off
|
|
string =
|
|
"abc,test,123\r" +
|
|
"gg,hh,jj \r" +
|
|
"aa,\"bb ,cc ";
|
|
//@formatter:on
|
|
try
|
|
{
|
|
assertEquals(jsonarray.toString(), CDL.toJSONArray(string)
|
|
.toString());
|
|
fail("Should have thrown Exception");
|
|
} catch (JSONException e)
|
|
{
|
|
assertEquals("Missing close quote '\"'. at 35 [character 12 line 5]", e.getMessage());
|
|
}
|
|
//@formatter:off
|
|
string =
|
|
"abc,test,123\r" +
|
|
"gg,hh,jj \r" +
|
|
"aa,\"bb ,cc \n";
|
|
//@formatter:on
|
|
try
|
|
{
|
|
assertEquals(jsonarray.toString(), CDL.toJSONArray(string)
|
|
.toString());
|
|
fail("Should have thrown Exception");
|
|
} catch (JSONException e)
|
|
{
|
|
assertEquals("Missing close quote '\"'. at 35 [character 0 line 6]", e.getMessage());
|
|
}
|
|
//@formatter:off
|
|
string =
|
|
"abc,test,123\r" +
|
|
"gg,hh,jj \r" +
|
|
"aa,\"bb ,cc \r";
|
|
//@formatter:on
|
|
try
|
|
{
|
|
assertEquals(jsonarray.toString(), CDL.toJSONArray(string)
|
|
.toString());
|
|
fail("Should have thrown Exception");
|
|
} catch (JSONException e)
|
|
{
|
|
assertEquals(
|
|
"Missing close quote '\"'. at 35 [character 12 line 5]",
|
|
e.getMessage());
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Tests the toJsonArray method using space after string.
|
|
*/
|
|
public void testToJsonArray_SpaceAfterString()
|
|
{
|
|
//@formatter:off
|
|
string =
|
|
"abc,test,123\r" +
|
|
"gg,hh,jj \r" +
|
|
"aa,\"bb\" ,cc\r";
|
|
//@formatter:on
|
|
try
|
|
{
|
|
assertEquals(jsonarray.toString(), CDL.toJSONArray(string)
|
|
.toString());
|
|
} catch (JSONException e)
|
|
{
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Tests the toJsonArray method using bad character.
|
|
*/
|
|
public void testToJsonArray_BadCharacter()
|
|
{
|
|
//@formatter:off
|
|
string =
|
|
"abc,test,123\r" +
|
|
"gg,hh,jj \r" +
|
|
"aa,\"bb \"?,cc \r";
|
|
//@formatter:on
|
|
try
|
|
{
|
|
assertEquals(jsonarray.toString(), CDL.toJSONArray(string)
|
|
.toString());
|
|
fail("Should have thrown Exception");
|
|
} catch (JSONException e)
|
|
{
|
|
assertEquals("Bad character '?' (63). at 32 [character 9 line 5]", e.getMessage());
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Tests the toString method.
|
|
*/
|
|
public void testToString()
|
|
{
|
|
try
|
|
{
|
|
assertEquals(string, CDL.toString(jsonarray));
|
|
} catch (JSONException e)
|
|
{
|
|
e.printStackTrace();
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* Tests the toString method using Bad json array.
|
|
*/
|
|
public void testToString_BadJsonArray()
|
|
{
|
|
try
|
|
{
|
|
jsonarray = new JSONArray();
|
|
assertEquals(null, CDL.toString(jsonarray));
|
|
jsonarray.put("abc");
|
|
assertEquals("", CDL.toString(jsonarray, jsonarray));
|
|
} catch (JSONException e)
|
|
{
|
|
e.printStackTrace();
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* Tests the toString method using No names.
|
|
*/
|
|
public void testToString_NoNames()
|
|
{
|
|
try
|
|
{
|
|
jsonarray = new JSONArray();
|
|
JSONObject jo = new JSONObject();
|
|
jsonarray.put(jo);
|
|
assertEquals(null, CDL.toString(jsonarray));
|
|
|
|
assertEquals(null, CDL.toString(new JSONArray(), jsonarray));
|
|
|
|
JSONArray names = new JSONArray();
|
|
names.put("");
|
|
assertEquals("\n", CDL.toString(names, jsonarray));
|
|
} catch (JSONException e)
|
|
{
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Tests the toString method using Null names.
|
|
*/
|
|
public void testToString_NullNames()
|
|
{
|
|
try
|
|
{
|
|
jsonarray = new JSONArray();
|
|
JSONObject jo = new JSONObject();
|
|
jsonarray.put(jo);
|
|
assertEquals(null, CDL.toString(null, jsonarray));
|
|
} catch (JSONException e)
|
|
{
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Tests the toString method using Quotes.
|
|
*/
|
|
public void testToString_Quotes()
|
|
{
|
|
|
|
try
|
|
{
|
|
jsonarray = CDL
|
|
.toJSONArray("Comma delimited list test, '\"Strip\"Quotes', 'quote, comma', No quotes, 'Single Quotes', \"Double Quotes\"\n1,'2',\"3\"\n,'It is \"good,\"', \"It works.\"\n\n");
|
|
|
|
string = CDL.toString(jsonarray);
|
|
assertEquals(
|
|
"\"quote, comma\",\"StripQuotes\",Comma delimited list test\n"
|
|
+ "3,2,1\n" + "It works.,\"It is good,\",\n",
|
|
string);
|
|
assertEquals(
|
|
"[\n {\n \"quote, comma\": \"3\",\n \"\\\"Strip\\\"Quotes\": \"2\",\n \"Comma delimited list test\": \"1\"\n },\n {\n \"quote, comma\": \"It works.\",\n \"\\\"Strip\\\"Quotes\": \"It is \\\"good,\\\"\",\n \"Comma delimited list test\": \"\"\n }\n]",
|
|
jsonarray.toString(1));
|
|
jsonarray = CDL.toJSONArray(string);
|
|
assertEquals(
|
|
"[\n {\n \"quote, comma\": \"3\",\n \"StripQuotes\": \"2\",\n \"Comma delimited list test\": \"1\"\n },\n {\n \"quote, comma\": \"It works.\",\n \"StripQuotes\": \"It is good,\",\n \"Comma delimited list test\": \"\"\n }\n]",
|
|
jsonarray.toString(1));
|
|
} catch (JSONException e)
|
|
{
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Tests the constructor method.
|
|
*/
|
|
public static void testConstructor()
|
|
{
|
|
CDL cdl = new CDL();
|
|
assertEquals("CDL", cdl.getClass().getSimpleName());
|
|
}
|
|
|
|
}
|