diff --git a/src/main/java/com/fasterxml/jackson/datatype/guava/GuavaTypeModifier.java b/src/main/java/com/fasterxml/jackson/datatype/guava/GuavaTypeModifier.java index 61200a6..36f19a4 100644 --- a/src/main/java/com/fasterxml/jackson/datatype/guava/GuavaTypeModifier.java +++ b/src/main/java/com/fasterxml/jackson/datatype/guava/GuavaTypeModifier.java @@ -2,15 +2,15 @@ import java.lang.reflect.Type; -import org.w3c.dom.ranges.Range; - import com.fasterxml.jackson.databind.JavaType; import com.fasterxml.jackson.databind.type.TypeBindings; import com.fasterxml.jackson.databind.type.TypeFactory; import com.fasterxml.jackson.databind.type.TypeModifier; + import com.google.common.base.Optional; import com.google.common.collect.FluentIterable; import com.google.common.collect.Multimap; +import com.google.common.collect.Range; public class GuavaTypeModifier extends TypeModifier { diff --git a/src/test/java/com/fasterxml/jackson/datatype/guava/TestRange.java b/src/test/java/com/fasterxml/jackson/datatype/guava/TestRange.java index 3a1a741..d1f63bc 100644 --- a/src/test/java/com/fasterxml/jackson/datatype/guava/TestRange.java +++ b/src/test/java/com/fasterxml/jackson/datatype/guava/TestRange.java @@ -1,9 +1,10 @@ package com.fasterxml.jackson.datatype.guava; import com.fasterxml.jackson.annotation.JsonTypeInfo; + import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.datatype.guava.deser.util.RangeFactory; -import com.google.common.base.Objects; + import com.google.common.collect.Range; import java.io.IOException; @@ -23,6 +24,13 @@ protected static class Untyped public Untyped() { } public Untyped(Range r) { range = r; } } + + static class Wrapped { + public Range r; + + public Wrapped() { } + public Wrapped(Range r) { this.r = r; } + } /** * This test is present so that we know if either Jackson's handling of Range @@ -51,6 +59,19 @@ public void testSerialization() throws Exception testSerialization(MAPPER, RangeFactory.singleton(1)); } + public void testWrappedSerialization() throws Exception + { + testSerializationWrapped(MAPPER, RangeFactory.open(1, 10)); + testSerializationWrapped(MAPPER, RangeFactory.openClosed(1, 10)); + testSerializationWrapped(MAPPER, RangeFactory.closedOpen(1, 10)); + testSerializationWrapped(MAPPER, RangeFactory.closed(1, 10)); + testSerializationWrapped(MAPPER, RangeFactory.atLeast(1)); + testSerializationWrapped(MAPPER, RangeFactory.greaterThan(1)); + testSerializationWrapped(MAPPER, RangeFactory.atMost(10)); + testSerializationWrapped(MAPPER, RangeFactory.lessThan(10)); + testSerializationWrapped(MAPPER, RangeFactory.singleton(1)); + } + public void testDeserialization() throws Exception { String json = MAPPER.writeValueAsString(RangeFactory.open(1, 10)); @@ -65,9 +86,16 @@ private void testSerialization(ObjectMapper objectMapper, Range range) throws { String json = objectMapper.writeValueAsString(range); Range rangeClone = objectMapper.readValue(json, Range.class); - assert Objects.equal(rangeClone, range); + assertEquals(rangeClone, range); } + private void testSerializationWrapped(ObjectMapper objectMapper, Range range) throws IOException + { + String json = objectMapper.writeValueAsString(new Wrapped(range)); + Wrapped result = objectMapper.readValue(json, Wrapped.class); + assertEquals(range, result.r); + } + public void testUntyped() throws Exception { String json = MAPPER.writerWithDefaultPrettyPrinter().writeValueAsString(new Untyped(RangeFactory.open(1, 10)));