src.test.main.TestPrettyPrinter Maven / Gradle / Ivy
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();
}
}