| 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"); |
| } |
| } |
| } |