blob: 5d1a7b248c77efe805bfcbafba4ecadd010d3663 [file] [log] [blame]
package org.codehaus.jackson.node;
import org.codehaus.jackson.map.BaseMapTest;
import org.codehaus.jackson.*;
import org.codehaus.jackson.map.*;
/**
* Unit tests for ensuring that it is possible to override default
* {@link JsonNodeFactory} when doing data binding
*/
public class TestNodeFactoryConfig
extends BaseMapTest
{
/*
/**********************************************************
/* Test classes
/**********************************************************
*/
/**
* Test factory that just replaces JSON Object node with
* custom version
*/
static class MyNodeFactory
extends JsonNodeFactory
{
@Override
public ObjectNode objectNode() { return new MyObjectNode(this); }
}
static class MyObjectNode
extends ObjectNode
{
public MyObjectNode(JsonNodeFactory f) {
super(f);
}
}
/*
/**********************************************************
/* Unit tests
/**********************************************************
*/
/**
* Verifying [JACKSON-321]
*/
public void testWithObjectMapper() throws Exception
{
ObjectMapper m = new ObjectMapper();
m.setNodeFactory(new MyNodeFactory());
JsonNode n = m.readTree("{ \"a\":3 }");
assertNotNull(n);
assertSame(MyObjectNode.class, n.getClass());
}
/**
* Verifying [JACKSON-321]
*/
public void testWithObjectReader() throws Exception
{
ObjectMapper m = new ObjectMapper();
ObjectReader reader = m.reader(new MyNodeFactory());
JsonNode n = reader.readTree("{ \"a\":3 }");
assertNotNull(n);
assertSame(MyObjectNode.class, n.getClass());
}
}