blob: 7a15b082016f5e1e572674d03b9d3757966b15b9 [file] [log] [blame]
package org.codehaus.jackson.map.deser;
import java.io.IOException;
import org.codehaus.jackson.*;
import org.codehaus.jackson.map.*;
import org.codehaus.jackson.map.module.SimpleModule;
public class TestNullHandling extends BaseMapTest
{
/*
/**********************************************************
/* Helper classes
/**********************************************************
*/
static class FunnyNullDeserializer extends JsonDeserializer<String>
{
@Override
public String deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
return "text";
}
@Override
public String getNullValue() { return "funny"; }
}
/*
/**********************************************************
/* Test methods
/**********************************************************
*/
// Test for [JACKSON-643]
public void testCustomRootNulls() throws Exception
{
ObjectMapper mapper = new ObjectMapper();
SimpleModule module = new SimpleModule("test", Version.unknownVersion());
module.addDeserializer(String.class, new FunnyNullDeserializer());
mapper.registerModule(module);
// should get non-default null directly:
String str = mapper.readValue("null", String.class);
assertNotNull(str);
assertEquals("funny", str);
// as well as via ObjectReader
ObjectReader reader = mapper.reader(String.class);
str = reader.readValue("null");
assertNotNull(str);
assertEquals("funny", str);
}
}