blob: 2cf4fc3d8ee48176ff8ba7752b7f978220ab996a [file] [log] [blame]
package org.codehaus.jackson.map;
import java.io.*;
import org.codehaus.jackson.JsonFactory;
import org.codehaus.jackson.JsonNode;
import org.codehaus.jackson.map.type.TypeFactory;
import org.codehaus.jackson.node.*;
public class TestObjectMapper extends BaseMapTest
{
public void testProps()
{
ObjectMapper m = new ObjectMapper();
// should have default factory
assertNotNull(m.getNodeFactory());
JsonNodeFactory nf = JsonNodeFactory.instance;
m.setNodeFactory(nf);
assertSame(nf, m.getNodeFactory());
}
public void testSupport()
{
ObjectMapper m = new ObjectMapper();
assertTrue(m.canSerialize(String.class));
assertTrue(m.canDeserialize(TypeFactory.defaultInstance().constructType(String.class)));
}
public void testTreeRead() throws Exception
{
ObjectMapper m = new ObjectMapper();
String JSON = "{ }";
JsonNode n = m.readTree(JSON);
assertTrue(n instanceof ObjectNode);
n = m.readTree(new StringReader(JSON));
assertTrue(n instanceof ObjectNode);
n = m.readTree(new ByteArrayInputStream(JSON.getBytes("UTF-8")));
assertTrue(n instanceof ObjectNode);
}
// Test to ensure that we can check property ordering defaults...
public void testConfigForPropertySorting() throws Exception
{
ObjectMapper m = new ObjectMapper();
// sort-alphabetically is disabled by default:
assertFalse(m.isEnabled(SerializationConfig.Feature.SORT_PROPERTIES_ALPHABETICALLY));
SerializationConfig sc = m.copySerializationConfig();
assertFalse(sc.isEnabled(SerializationConfig.Feature.SORT_PROPERTIES_ALPHABETICALLY));
assertFalse(sc.shouldSortPropertiesAlphabetically());
DeserializationConfig dc = m.copyDeserializationConfig();
assertFalse(dc.shouldSortPropertiesAlphabetically());
// but when enabled, should be visible:
m.enable(SerializationConfig.Feature.SORT_PROPERTIES_ALPHABETICALLY);
sc = m.copySerializationConfig();
assertTrue(sc.isEnabled(SerializationConfig.Feature.SORT_PROPERTIES_ALPHABETICALLY));
assertTrue(sc.shouldSortPropertiesAlphabetically());
dc = m.copyDeserializationConfig();
// and not just via SerializationConfig, but also via DeserializationConfig
assertTrue(dc.shouldSortPropertiesAlphabetically());
}
public void testJsonFactoryLinkage()
{
// first, implicit factory, giving implicit linkage
ObjectMapper m = new ObjectMapper();
assertSame(m, m.getJsonFactory().getCodec());
// and then explicit factory, which should also be implicitly linked
JsonFactory f = new JsonFactory();
m = new ObjectMapper(f);
assertSame(f, m.getJsonFactory());
assertSame(m, f.getCodec());
}
}