package com.fasterxml.jackson.core.json;
import java.io.*;
import com.fasterxml.jackson.core.*;
public class TestJsonFactory
extends com.fasterxml.jackson.test.BaseTest
{
public void testGeneratorFeatures() throws Exception
{
JsonFactory f = new JsonFactory();
assertNull(f.getCodec());
f.configure(JsonGenerator.Feature.QUOTE_FIELD_NAMES, true);
assertTrue(f.isEnabled(JsonGenerator.Feature.QUOTE_FIELD_NAMES));
f.configure(JsonGenerator.Feature.QUOTE_FIELD_NAMES, false);
assertFalse(f.isEnabled(JsonGenerator.Feature.QUOTE_FIELD_NAMES));
}
public void testParserFeatures() throws Exception
{
JsonFactory f = new JsonFactory();
assertNull(f.getCodec());
f.configure(JsonFactory.Feature.INTERN_FIELD_NAMES, true);
assertTrue(f.isEnabled(JsonFactory.Feature.INTERN_FIELD_NAMES));
f.configure(JsonFactory.Feature.INTERN_FIELD_NAMES, false);
assertFalse(f.isEnabled(JsonFactory.Feature.INTERN_FIELD_NAMES));
}
public void testJsonWithFiles() throws Exception
{
File file = File.createTempFile("jackson-test", null);
file.deleteOnExit();
JsonFactory f = new JsonFactory();
// First: create file via generator.. and use an odd encoding
JsonGenerator jg = f.createGenerator(file, JsonEncoding.UTF16_LE);
jg.writeStartObject();
jg.writeRaw(" ");
jg.writeEndObject();
jg.close();
// Ok: first read file directly
JsonParser jp = f.createParser(file);
assertToken(JsonToken.START_OBJECT, jp.nextToken());
assertToken(JsonToken.END_OBJECT, jp.nextToken());
assertNull(jp.nextToken());
jp.close();
// Then via URL:
jp = f.createParser(file.toURI().toURL());
assertToken(JsonToken.START_OBJECT, jp.nextToken());
assertToken(JsonToken.END_OBJECT, jp.nextToken());
assertNull(jp.nextToken());
jp.close();
// ok, delete once we are done
file.delete();
}
// #72
public void testCopy() throws Exception
{
JsonFactory jf = new JsonFactory();
// first, verify defaults
assertTrue(jf.isEnabled(JsonFactory.Feature.INTERN_FIELD_NAMES));
assertFalse(jf.isEnabled(JsonParser.Feature.ALLOW_COMMENTS));
assertFalse(jf.isEnabled(JsonGenerator.Feature.ESCAPE_NON_ASCII));
jf.disable(JsonFactory.Feature.INTERN_FIELD_NAMES);
jf.enable(JsonParser.Feature.ALLOW_COMMENTS);
jf.enable(JsonGenerator.Feature.ESCAPE_NON_ASCII);
// then change, verify that changes "stick"
assertFalse(jf.isEnabled(JsonFactory.Feature.INTERN_FIELD_NAMES));
assertTrue(jf.isEnabled(JsonParser.Feature.ALLOW_COMMENTS));
assertTrue(jf.isEnabled(JsonGenerator.Feature.ESCAPE_NON_ASCII));
JsonFactory jf2 = jf.copy();
assertFalse(jf2.isEnabled(JsonFactory.Feature.INTERN_FIELD_NAMES));
assertTrue(jf.isEnabled(JsonParser.Feature.ALLOW_COMMENTS));
assertTrue(jf.isEnabled(JsonGenerator.Feature.ESCAPE_NON_ASCII));
}
}