src.test.main.TestArrayParsing Maven / Gradle / Ivy
package main;
import org.codehaus.jackson.*;
/**
* Set of additional unit for verifying array parsing, specifically
* edge cases.
*/
public class TestArrayParsing
extends BaseTest
{
public void testValidEmpty()
throws Exception
{
final String DOC = "[ \n ]";
JsonParser jp = createParserUsingStream(DOC, "UTF-8");
assertToken(JsonToken.START_ARRAY, jp.nextToken());
assertToken(JsonToken.END_ARRAY, jp.nextToken());
assertNull(jp.nextToken());
jp.close();
}
public void testInvalidEmptyMissingClose()
throws Exception
{
final String DOC = "[ ";
JsonParser jp = createParserUsingStream(DOC, "UTF-8");
assertToken(JsonToken.START_ARRAY, jp.nextToken());
try {
jp.nextToken();
fail("Expected a parsing error for missing array close marker");
} catch (JsonParseException jex) {
verifyException(jex, "expected close marker for ARRAY");
}
}
public void testInvalidMissingFieldName()
throws Exception
{
final String DOC = "[ : 3 ] ";
JsonParser jp = createParserUsingStream(DOC, "UTF-8");
assertToken(JsonToken.START_ARRAY, jp.nextToken());
try {
jp.nextToken();
fail("Expected a parsing error for missing array close marker");
} catch (JsonParseException jex) {
verifyException(jex, "Unexpected character");
}
}
public void testInvalidExtraComma()
throws Exception
{
final String DOC = "[ 24, ] ";
JsonParser jp = createParserUsingStream(DOC, "UTF-8");
assertToken(JsonToken.START_ARRAY, jp.nextToken());
assertToken(JsonToken.VALUE_NUMBER_INT, jp.nextToken());
assertEquals(24, jp.getIntValue());
try {
jp.nextToken();
fail("Expected a parsing error for missing array close marker");
} catch (JsonParseException jex) {
verifyException(jex, "expected a value");
}
}
}