| package main; |
| |
| import org.codehaus.jackson.*; |
| |
| import java.io.*; |
| |
| /** |
| * Set of basic unit tests for verifying that indenting |
| * option of generator works correctly |
| */ |
| public class TestPrettyPrinter |
| extends BaseTest |
| { |
| public void testSimpleDoc() |
| throws Exception |
| { |
| StringWriter sw = new StringWriter(); |
| JsonGenerator gen = new JsonFactory().createJsonGenerator(sw); |
| gen.useDefaultPrettyPrinter(); |
| |
| gen.writeStartArray(); |
| gen.writeNumber(3); |
| gen.writeString("abc"); |
| |
| gen.writeStartArray(); |
| gen.writeBoolean(true); |
| gen.writeEndArray(); |
| |
| gen.writeStartObject(); |
| gen.writeFieldName("f"); |
| gen.writeNull(); |
| gen.writeFieldName("f2"); |
| gen.writeNull(); |
| gen.writeEndObject(); |
| |
| gen.writeEndArray(); |
| gen.close(); |
| |
| String docStr = sw.toString(); |
| JsonParser jp = createParserUsingReader(docStr); |
| |
| assertEquals(JsonToken.START_ARRAY, jp.nextToken()); |
| |
| assertEquals(JsonToken.VALUE_NUMBER_INT, jp.nextToken()); |
| assertEquals(3, jp.getIntValue()); |
| assertEquals(JsonToken.VALUE_STRING, jp.nextToken()); |
| assertEquals("abc", jp.getText()); |
| |
| assertEquals(JsonToken.START_ARRAY, jp.nextToken()); |
| assertEquals(JsonToken.VALUE_TRUE, jp.nextToken()); |
| assertEquals(JsonToken.END_ARRAY, jp.nextToken()); |
| |
| assertEquals(JsonToken.START_OBJECT, jp.nextToken()); |
| assertEquals(JsonToken.FIELD_NAME, jp.nextToken()); |
| assertEquals("f", jp.getText()); |
| assertEquals(JsonToken.VALUE_NULL, jp.nextToken()); |
| assertEquals(JsonToken.FIELD_NAME, jp.nextToken()); |
| assertEquals("f2", jp.getText()); |
| assertEquals(JsonToken.VALUE_NULL, jp.nextToken()); |
| assertEquals(JsonToken.END_OBJECT, jp.nextToken()); |
| |
| assertEquals(JsonToken.END_ARRAY, jp.nextToken()); |
| |
| jp.close(); |
| } |
| } |