diff options
author | Tatu Saloranta <tatu.saloranta@iki.fi> | 2016-10-19 17:13:31 -0700 |
---|---|---|
committer | Tatu Saloranta <tatu.saloranta@iki.fi> | 2016-10-19 17:13:31 -0700 |
commit | 6b758d8d2a43ff74b1860f9fc63284efc91459c6 (patch) | |
tree | e0da0bb5a9b5a8503d015247bc1c02eecab8772a /src/test/java/com/fasterxml/jackson/databind/util | |
parent | 53bd8da94736b22c4be2c5f4c829035e81e3de55 (diff) | |
download | jackson-databind-6b758d8d2a43ff74b1860f9fc63284efc91459c6.tar.gz |
and bit more test coverage love for util types
Diffstat (limited to 'src/test/java/com/fasterxml/jackson/databind/util')
-rw-r--r-- | src/test/java/com/fasterxml/jackson/databind/util/ArrayBuildersTest.java | 65 | ||||
-rw-r--r-- | src/test/java/com/fasterxml/jackson/databind/util/BeanUtilTest.java | 15 | ||||
-rw-r--r-- | src/test/java/com/fasterxml/jackson/databind/util/ByteBufferUtilsTest.java | 28 | ||||
-rw-r--r-- | src/test/java/com/fasterxml/jackson/databind/util/ClassUtilTest.java (renamed from src/test/java/com/fasterxml/jackson/databind/util/TestClassUtil.java) | 46 | ||||
-rw-r--r-- | src/test/java/com/fasterxml/jackson/databind/util/CompactStringObjectMapTest.java | 28 | ||||
-rw-r--r-- | src/test/java/com/fasterxml/jackson/databind/util/EnumValuesTest.java | 50 | ||||
-rw-r--r-- | src/test/java/com/fasterxml/jackson/databind/util/NameTransformerTest.java | 23 | ||||
-rw-r--r-- | src/test/java/com/fasterxml/jackson/databind/util/RawValueTest.java | 24 | ||||
-rw-r--r-- | src/test/java/com/fasterxml/jackson/databind/util/TestTokenBuffer.java | 9 |
9 files changed, 278 insertions, 10 deletions
diff --git a/src/test/java/com/fasterxml/jackson/databind/util/ArrayBuildersTest.java b/src/test/java/com/fasterxml/jackson/databind/util/ArrayBuildersTest.java index a788e28f9..bae028549 100644 --- a/src/test/java/com/fasterxml/jackson/databind/util/ArrayBuildersTest.java +++ b/src/test/java/com/fasterxml/jackson/databind/util/ArrayBuildersTest.java @@ -1,12 +1,22 @@ package com.fasterxml.jackson.databind.util; +import java.util.Arrays; +import java.util.HashSet; + import org.junit.Assert; import com.fasterxml.jackson.databind.BaseMapTest; +import com.fasterxml.jackson.databind.util.ArrayBuilders.BooleanBuilder; +import com.fasterxml.jackson.databind.util.ArrayBuilders.ByteBuilder; +import com.fasterxml.jackson.databind.util.ArrayBuilders.DoubleBuilder; +import com.fasterxml.jackson.databind.util.ArrayBuilders.FloatBuilder; +import com.fasterxml.jackson.databind.util.ArrayBuilders.IntBuilder; +import com.fasterxml.jackson.databind.util.ArrayBuilders.LongBuilder; +import com.fasterxml.jackson.databind.util.ArrayBuilders.ShortBuilder; public class ArrayBuildersTest extends BaseMapTest { - // Test for [Issue#157] + // [databind#157] public void testInsertInListNoDup() { String [] arr = new String[]{"me", "you", "him"}; @@ -24,4 +34,57 @@ public class ArrayBuildersTest extends BaseMapTest newarr = ArrayBuilders.insertInListNoDup(arr, "foobar"); Assert.assertArrayEquals(new String[]{"foobar", "me", "you", "him"}, newarr); } + + public void testBuilderAccess() + { + ArrayBuilders builders = new ArrayBuilders(); + + BooleanBuilder bb = builders.getBooleanBuilder(); + assertNotNull(bb); + assertSame(bb, builders.getBooleanBuilder()); + + ByteBuilder b2 = builders.getByteBuilder(); + assertNotNull(b2); + assertSame(b2, builders.getByteBuilder()); + + ShortBuilder sb = builders.getShortBuilder(); + assertNotNull(sb); + assertSame(sb, builders.getShortBuilder()); + + IntBuilder ib = builders.getIntBuilder(); + assertNotNull(ib); + assertSame(ib, builders.getIntBuilder()); + + LongBuilder lb = builders.getLongBuilder(); + assertNotNull(lb); + assertSame(lb, builders.getLongBuilder()); + + FloatBuilder fb = builders.getFloatBuilder(); + assertNotNull(fb); + assertSame(fb, builders.getFloatBuilder()); + + DoubleBuilder db = builders.getDoubleBuilder(); + assertNotNull(db); + assertSame(db, builders.getDoubleBuilder()); + } + + public void testArrayComparator() + { + final int[] INT3 = new int[] { 3, 4, 5 }; + Object comp = ArrayBuilders.getArrayComparator(INT3); + assertFalse(comp.equals(null)); + assertTrue(comp.equals(INT3)); + assertTrue(comp.equals(new int[] { 3, 4, 5 })); + assertFalse(comp.equals(new int[] { 5 })); + assertFalse(comp.equals(new int[] { 3, 4 })); + assertFalse(comp.equals(new int[] { 3, 5, 4 })); + assertFalse(comp.equals(new int[] { 3, 4, 5, 6 })); + } + + public void testArraySet() + { + HashSet<String> set = ArrayBuilders.arrayToSet(new String[] { "foo", "bar" }); + assertEquals(2, set.size()); + assertEquals(new HashSet<String>(Arrays.asList("bar", "foo")), set); + } } diff --git a/src/test/java/com/fasterxml/jackson/databind/util/BeanUtilTest.java b/src/test/java/com/fasterxml/jackson/databind/util/BeanUtilTest.java new file mode 100644 index 000000000..4246be230 --- /dev/null +++ b/src/test/java/com/fasterxml/jackson/databind/util/BeanUtilTest.java @@ -0,0 +1,15 @@ +package com.fasterxml.jackson.databind.util; + +import com.fasterxml.jackson.databind.BaseMapTest; + +public class BeanUtilTest extends BaseMapTest +{ + public void testNameMangle() + { + assertEquals("foo", BeanUtil.legacyManglePropertyName("getFoo", 3)); + assertEquals("foo", BeanUtil.stdManglePropertyName("getFoo", 3)); + + assertEquals("url", BeanUtil.legacyManglePropertyName("getURL", 3)); + assertEquals("URL", BeanUtil.stdManglePropertyName("getURL", 3)); + } +} diff --git a/src/test/java/com/fasterxml/jackson/databind/util/ByteBufferUtilsTest.java b/src/test/java/com/fasterxml/jackson/databind/util/ByteBufferUtilsTest.java new file mode 100644 index 000000000..da66aa47f --- /dev/null +++ b/src/test/java/com/fasterxml/jackson/databind/util/ByteBufferUtilsTest.java @@ -0,0 +1,28 @@ +package com.fasterxml.jackson.databind.util; + +import java.nio.ByteBuffer; + +import com.fasterxml.jackson.databind.BaseMapTest; + +public class ByteBufferUtilsTest extends BaseMapTest +{ + public void testByteBufferInput() throws Exception { + byte[] input = new byte[] { 1, 2, 3 }; + ByteBufferBackedInputStream wrapped = new ByteBufferBackedInputStream(ByteBuffer.wrap(input)); + assertEquals(3, wrapped.available()); + assertEquals(1, wrapped.read()); + byte[] buffer = new byte[10]; + assertEquals(2, wrapped.read(buffer, 0, 5)); + wrapped.close(); + } + + public void testByteBufferOutput() throws Exception { + ByteBuffer b = ByteBuffer.wrap(new byte[10]); + ByteBufferBackedOutputStream wrappedOut = new ByteBufferBackedOutputStream(b); + wrappedOut.write(1); + wrappedOut.write(new byte[] { 2, 3 }); + assertEquals(3, b.position()); + assertEquals(7, b.remaining()); + wrappedOut.close(); + } +} diff --git a/src/test/java/com/fasterxml/jackson/databind/util/TestClassUtil.java b/src/test/java/com/fasterxml/jackson/databind/util/ClassUtilTest.java index b02f6ac75..8572635bc 100644 --- a/src/test/java/com/fasterxml/jackson/databind/util/TestClassUtil.java +++ b/src/test/java/com/fasterxml/jackson/databind/util/ClassUtilTest.java @@ -5,8 +5,7 @@ import java.util.*; import com.fasterxml.jackson.databind.BaseMapTest; import com.fasterxml.jackson.databind.util.ClassUtil; -public class TestClassUtil - extends BaseMapTest +public class ClassUtilTest extends BaseMapTest { /* /********************************************************** @@ -137,7 +136,7 @@ public class TestClassUtil } } - public void testPrimiteDefaultValue() + public void testPrimitiveDefaultValue() { assertEquals(Integer.valueOf(0), ClassUtil.defaultValue(Integer.TYPE)); assertEquals(Long.valueOf(0L), ClassUtil.defaultValue(Long.TYPE)); @@ -148,6 +147,8 @@ public class TestClassUtil assertEquals(Double.valueOf(0.0), ClassUtil.defaultValue(Double.TYPE)); assertEquals(Float.valueOf(0.0f), ClassUtil.defaultValue(Float.TYPE)); + assertEquals(Boolean.FALSE, ClassUtil.defaultValue(Boolean.TYPE)); + try { ClassUtil.defaultValue(String.class); } catch (IllegalArgumentException e) { @@ -155,24 +156,41 @@ public class TestClassUtil } } - public void testPrimiteWrapperType() + public void testPrimitiveWrapperType() { + assertEquals(Byte.class, ClassUtil.wrapperType(Byte.TYPE)); + assertEquals(Short.class, ClassUtil.wrapperType(Short.TYPE)); + assertEquals(Character.class, ClassUtil.wrapperType(Character.TYPE)); assertEquals(Integer.class, ClassUtil.wrapperType(Integer.TYPE)); assertEquals(Long.class, ClassUtil.wrapperType(Long.TYPE)); - assertEquals(Character.class, ClassUtil.wrapperType(Character.TYPE)); - assertEquals(Short.class, ClassUtil.wrapperType(Short.TYPE)); - assertEquals(Byte.class, ClassUtil.wrapperType(Byte.TYPE)); assertEquals(Double.class, ClassUtil.wrapperType(Double.TYPE)); assertEquals(Float.class, ClassUtil.wrapperType(Float.TYPE)); + assertEquals(Boolean.class, ClassUtil.wrapperType(Boolean.TYPE)); + try { ClassUtil.wrapperType(String.class); + fail("Should not pass"); } catch (IllegalArgumentException e) { verifyException(e, "String is not a primitive type"); } } + public void testWrapperToPrimitiveType() + { + assertEquals(Integer.TYPE, ClassUtil.primitiveType(Integer.class)); + assertEquals(Long.TYPE, ClassUtil.primitiveType(Long.class)); + assertEquals(Character.TYPE, ClassUtil.primitiveType(Character.class)); + assertEquals(Short.TYPE, ClassUtil.primitiveType(Short.class)); + assertEquals(Byte.TYPE, ClassUtil.primitiveType(Byte.class)); + assertEquals(Float.TYPE, ClassUtil.primitiveType(Float.class)); + assertEquals(Double.TYPE, ClassUtil.primitiveType(Double.class)); + assertEquals(Boolean.TYPE, ClassUtil.primitiveType(Boolean.class)); + + assertNull(ClassUtil.primitiveType(String.class)); + } + public void testFindEnumType() { assertEquals(TestEnum.class, ClassUtil.findEnumType(TestEnum.A)); @@ -186,4 +204,18 @@ public class TestClassUtil assertEquals(exp, ClassUtil.getClassDescription("foo")); assertEquals(exp, ClassUtil.getClassDescription(String.class)); } + + @SuppressWarnings("deprecation") + public void testFindClass() throws Exception + { + assertEquals(Integer.TYPE, ClassUtil.findClass("int")); + assertEquals(Long.TYPE, ClassUtil.findClass("long")); + assertEquals(Byte.TYPE, ClassUtil.findClass("byte")); + assertEquals(Short.TYPE, ClassUtil.findClass("short")); + assertEquals(Character.TYPE, ClassUtil.findClass("char")); + assertEquals(Float.TYPE, ClassUtil.findClass("float")); + assertEquals(Double.TYPE, ClassUtil.findClass("double")); + assertEquals(Boolean.TYPE, ClassUtil.findClass("boolean")); + assertEquals(Void.TYPE, ClassUtil.findClass("void")); + } } diff --git a/src/test/java/com/fasterxml/jackson/databind/util/CompactStringObjectMapTest.java b/src/test/java/com/fasterxml/jackson/databind/util/CompactStringObjectMapTest.java new file mode 100644 index 000000000..325d2f21b --- /dev/null +++ b/src/test/java/com/fasterxml/jackson/databind/util/CompactStringObjectMapTest.java @@ -0,0 +1,28 @@ +package com.fasterxml.jackson.databind.util; + +import java.util.*; + +import com.fasterxml.jackson.databind.BaseMapTest; + +public class CompactStringObjectMapTest extends BaseMapTest +{ + public void testBig() + { + Map<String,String> all = new LinkedHashMap<>(); + for (int i = 0; i < 1000; ++i) { + String key = "key"+i; + all.put(key, key); + } + CompactStringObjectMap map = CompactStringObjectMap.construct(all); + assertEquals(1000, map.keys().size()); + + for (String key : all.keySet()) { + assertEquals(key, map.find(key)); + } + + // and then bogus empty keys + assertNull(map.find("key1000")); + assertNull(map.find("keyXXX")); + assertNull(map.find("")); + } +} diff --git a/src/test/java/com/fasterxml/jackson/databind/util/EnumValuesTest.java b/src/test/java/com/fasterxml/jackson/databind/util/EnumValuesTest.java new file mode 100644 index 000000000..4378e277c --- /dev/null +++ b/src/test/java/com/fasterxml/jackson/databind/util/EnumValuesTest.java @@ -0,0 +1,50 @@ +package com.fasterxml.jackson.databind.util; + +import com.fasterxml.jackson.databind.BaseMapTest; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationConfig; +import com.fasterxml.jackson.databind.SerializationFeature; + +public class EnumValuesTest extends BaseMapTest +{ + enum ABC { + A("A"), + B("b"), + C("C"); + + private final String desc; + + private ABC(String d) { desc = d; } + + @Override + public String toString() { return desc; } + } + + final ObjectMapper MAPPER = new ObjectMapper(); + + @SuppressWarnings("unchecked") + public void testConstructFromName() { + SerializationConfig cfg = MAPPER.getSerializationConfig() + .without(SerializationFeature.WRITE_ENUMS_USING_TO_STRING); + Class<Enum<?>> enumClass = (Class<Enum<?>>)(Class<?>) ABC.class; + EnumValues values = EnumValues.construct(cfg, enumClass); + assertEquals("A", values.serializedValueFor(ABC.A).toString()); + assertEquals("B", values.serializedValueFor(ABC.B).toString()); + assertEquals("C", values.serializedValueFor(ABC.C).toString()); + assertEquals(3, values.values().size()); + assertEquals(3, values.internalMap().size()); + } + + @SuppressWarnings("unchecked") + public void testConstructWithToString() { + SerializationConfig cfg = MAPPER.getSerializationConfig() + .with(SerializationFeature.WRITE_ENUMS_USING_TO_STRING); + Class<Enum<?>> enumClass = (Class<Enum<?>>)(Class<?>) ABC.class; + EnumValues values = EnumValues.construct(cfg, enumClass); + assertEquals("A", values.serializedValueFor(ABC.A).toString()); + assertEquals("b", values.serializedValueFor(ABC.B).toString()); + assertEquals("C", values.serializedValueFor(ABC.C).toString()); + assertEquals(3, values.values().size()); + assertEquals(3, values.internalMap().size()); + } +} diff --git a/src/test/java/com/fasterxml/jackson/databind/util/NameTransformerTest.java b/src/test/java/com/fasterxml/jackson/databind/util/NameTransformerTest.java new file mode 100644 index 000000000..648c8a926 --- /dev/null +++ b/src/test/java/com/fasterxml/jackson/databind/util/NameTransformerTest.java @@ -0,0 +1,23 @@ +package com.fasterxml.jackson.databind.util; + +import com.fasterxml.jackson.databind.BaseMapTest; + +public class NameTransformerTest extends BaseMapTest +{ + public void testSimpleTransformer() throws Exception + { + NameTransformer xfer; + + xfer = NameTransformer.simpleTransformer("a", null); + assertEquals("aFoo", xfer.transform("Foo")); + assertEquals("Foo", xfer.reverse("aFoo")); + + xfer = NameTransformer.simpleTransformer(null, "++"); + assertEquals("foo++", xfer.transform("foo")); + assertEquals("foo", xfer.reverse("foo++")); + + xfer = NameTransformer.simpleTransformer("(", ")"); + assertEquals("(foo)", xfer.transform("foo")); + assertEquals("foo", xfer.reverse("(foo)")); + } +} diff --git a/src/test/java/com/fasterxml/jackson/databind/util/RawValueTest.java b/src/test/java/com/fasterxml/jackson/databind/util/RawValueTest.java new file mode 100644 index 000000000..4d652b0ed --- /dev/null +++ b/src/test/java/com/fasterxml/jackson/databind/util/RawValueTest.java @@ -0,0 +1,24 @@ +package com.fasterxml.jackson.databind.util; + +import com.fasterxml.jackson.databind.BaseMapTest; +import com.fasterxml.jackson.databind.JsonSerializable; + +public class RawValueTest extends BaseMapTest +{ + public void testEquality() + { + RawValue raw1 = new RawValue("foo"); + RawValue raw1b = new RawValue("foo"); + RawValue raw2 = new RawValue("bar"); + + assertTrue(raw1.equals(raw1)); + assertTrue(raw1.equals(raw1b)); + + assertFalse(raw1.equals(raw2)); + assertFalse(raw1.equals(null)); + + assertFalse(new RawValue((JsonSerializable) null).equals(raw1)); + + assertNotNull(raw1.toString()); + } +} diff --git a/src/test/java/com/fasterxml/jackson/databind/util/TestTokenBuffer.java b/src/test/java/com/fasterxml/jackson/databind/util/TestTokenBuffer.java index 477301e6f..ed009af5b 100644 --- a/src/test/java/com/fasterxml/jackson/databind/util/TestTokenBuffer.java +++ b/src/test/java/com/fasterxml/jackson/databind/util/TestTokenBuffer.java @@ -11,13 +11,13 @@ import com.fasterxml.jackson.databind.ObjectMapper; public class TestTokenBuffer extends BaseMapTest { private final ObjectMapper MAPPER = objectMapper(); - + /* /********************************************************** /* Basic TokenBuffer tests /********************************************************** */ - + /** * Test writing of individual simple values */ @@ -200,6 +200,11 @@ public class TestTokenBuffer extends BaseMapTest verifyJsonSpecSampleDoc(tb.asParser(), true); tb.close(); p.close(); + + + // 19-Oct-2016, tatu: Just for fun, trigger `toString()` for code coverage + String desc = tb.toString(); + assertNotNull(desc); } public void testAppend() throws IOException |