From 6b758d8d2a43ff74b1860f9fc63284efc91459c6 Mon Sep 17 00:00:00 2001 From: Tatu Saloranta Date: Wed, 19 Oct 2016 17:13:31 -0700 Subject: and bit more test coverage love for util types --- .../jackson/databind/util/ArrayBuildersTest.java | 65 +++++- .../jackson/databind/util/BeanUtilTest.java | 15 ++ .../jackson/databind/util/ByteBufferUtilsTest.java | 28 +++ .../jackson/databind/util/ClassUtilTest.java | 221 +++++++++++++++++++++ .../databind/util/CompactStringObjectMapTest.java | 28 +++ .../jackson/databind/util/EnumValuesTest.java | 50 +++++ .../jackson/databind/util/NameTransformerTest.java | 23 +++ .../jackson/databind/util/RawValueTest.java | 24 +++ .../jackson/databind/util/TestClassUtil.java | 189 ------------------ .../jackson/databind/util/TestTokenBuffer.java | 9 +- 10 files changed, 460 insertions(+), 192 deletions(-) create mode 100644 src/test/java/com/fasterxml/jackson/databind/util/BeanUtilTest.java create mode 100644 src/test/java/com/fasterxml/jackson/databind/util/ByteBufferUtilsTest.java create mode 100644 src/test/java/com/fasterxml/jackson/databind/util/ClassUtilTest.java create mode 100644 src/test/java/com/fasterxml/jackson/databind/util/CompactStringObjectMapTest.java create mode 100644 src/test/java/com/fasterxml/jackson/databind/util/EnumValuesTest.java create mode 100644 src/test/java/com/fasterxml/jackson/databind/util/NameTransformerTest.java create mode 100644 src/test/java/com/fasterxml/jackson/databind/util/RawValueTest.java delete mode 100644 src/test/java/com/fasterxml/jackson/databind/util/TestClassUtil.java (limited to 'src/test/java/com/fasterxml/jackson/databind/util') 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 set = ArrayBuilders.arrayToSet(new String[] { "foo", "bar" }); + assertEquals(2, set.size()); + assertEquals(new HashSet(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/ClassUtilTest.java b/src/test/java/com/fasterxml/jackson/databind/util/ClassUtilTest.java new file mode 100644 index 000000000..8572635bc --- /dev/null +++ b/src/test/java/com/fasterxml/jackson/databind/util/ClassUtilTest.java @@ -0,0 +1,221 @@ +package com.fasterxml.jackson.databind.util; + +import java.util.*; + +import com.fasterxml.jackson.databind.BaseMapTest; +import com.fasterxml.jackson.databind.util.ClassUtil; + +public class ClassUtilTest extends BaseMapTest +{ + /* + /********************************************************** + /* Test classes, enums + /********************************************************** + */ + + /* Test classes and interfaces needed for testing class util + * methods + */ + static abstract class BaseClass implements Comparable, + BaseInt + { + BaseClass(String str) { } + } + + interface BaseInt { } + + interface SubInt extends BaseInt { } + + enum TestEnum { A; } + + abstract class InnerNonStatic { } + + static class Inner { + protected Inner() { + throw new IllegalStateException("test"); + } + } + + static abstract class SubClass + extends BaseClass + implements SubInt { + SubClass() { super("x"); } + } + + static abstract class ConcreteAndAbstract { + public abstract void a(); + + public void c() { } + } + + /* + /********************************************************** + /* Test methods + /********************************************************** + */ + + public void testIsConcrete() throws Exception + { + assertTrue(ClassUtil.isConcrete(getClass())); + assertFalse(ClassUtil.isConcrete(BaseClass.class)); + assertFalse(ClassUtil.isConcrete(BaseInt.class)); + + assertFalse(ClassUtil.isConcrete(ConcreteAndAbstract.class.getDeclaredMethod("a"))); + assertTrue(ClassUtil.isConcrete(ConcreteAndAbstract.class.getDeclaredMethod("c"))); + } + + public void testCanBeABeanType() + { + assertEquals("annotation", ClassUtil.canBeABeanType(java.lang.annotation.Retention.class)); + assertEquals("array", ClassUtil.canBeABeanType(String[].class)); + assertEquals("enum", ClassUtil.canBeABeanType(TestEnum.class)); + assertEquals("primitive", ClassUtil.canBeABeanType(Integer.TYPE)); + assertNull(ClassUtil.canBeABeanType(Integer.class)); + + assertEquals("non-static member class", ClassUtil.isLocalType(InnerNonStatic.class, false)); + assertNull(ClassUtil.isLocalType(Integer.class, false)); + } + + public void testExceptionHelpers() + { + RuntimeException e = new RuntimeException("test"); + RuntimeException wrapper = new RuntimeException(e); + + assertSame(e, ClassUtil.getRootCause(wrapper)); + + try { + ClassUtil.throwAsIAE(e); + fail("Shouldn't get this far"); + } catch (RuntimeException e2) { + assertSame(e, e2); + } + + try { + ClassUtil.throwRootCause(e); + fail("Shouldn't get this far"); + } catch (Exception eAct) { + assertSame(e, eAct); + } + + Error err = new Error(); + try { + ClassUtil.throwAsIAE(err); + fail("Shouldn't get this far"); + } catch (Error errAct) { + assertSame(err, errAct); + } + + try { + ClassUtil.unwrapAndThrowAsIAE(wrapper); + fail("Shouldn't get this far"); + } catch (RuntimeException e2) { + assertSame(e, e2); + } + } + + public void testFailedCreateInstance() + { + try { + ClassUtil.createInstance(BaseClass.class, true); + } catch (IllegalArgumentException e) { + verifyException(e, "has no default"); + } + + try { + // false means ctor would need to be public + ClassUtil.createInstance(Inner.class, false); + } catch (IllegalArgumentException e) { + verifyException(e, "is not accessible"); + } + + // and finally, check that we'll get expected exception... + try { + ClassUtil.createInstance(Inner.class, true); + } catch (IllegalStateException e) { + verifyException(e, "test"); + } + } + + public void testPrimitiveDefaultValue() + { + assertEquals(Integer.valueOf(0), ClassUtil.defaultValue(Integer.TYPE)); + assertEquals(Long.valueOf(0L), ClassUtil.defaultValue(Long.TYPE)); + assertEquals(Character.valueOf('\0'), ClassUtil.defaultValue(Character.TYPE)); + assertEquals(Short.valueOf((short) 0), ClassUtil.defaultValue(Short.TYPE)); + assertEquals(Byte.valueOf((byte) 0), ClassUtil.defaultValue(Byte.TYPE)); + + 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) { + verifyException(e, "String is not a primitive type"); + } + } + + 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(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)); + assertEquals(TestEnum.class, ClassUtil.findEnumType(EnumSet.allOf(TestEnum.class))); + assertEquals(TestEnum.class, ClassUtil.findEnumType(new EnumMap(TestEnum.class))); + } + + public void testDescs() + { + final String exp = String.class.getName(); + 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 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> enumClass = (Class>)(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> enumClass = (Class>)(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/TestClassUtil.java b/src/test/java/com/fasterxml/jackson/databind/util/TestClassUtil.java deleted file mode 100644 index b02f6ac75..000000000 --- a/src/test/java/com/fasterxml/jackson/databind/util/TestClassUtil.java +++ /dev/null @@ -1,189 +0,0 @@ -package com.fasterxml.jackson.databind.util; - -import java.util.*; - -import com.fasterxml.jackson.databind.BaseMapTest; -import com.fasterxml.jackson.databind.util.ClassUtil; - -public class TestClassUtil - extends BaseMapTest -{ - /* - /********************************************************** - /* Test classes, enums - /********************************************************** - */ - - /* Test classes and interfaces needed for testing class util - * methods - */ - static abstract class BaseClass implements Comparable, - BaseInt - { - BaseClass(String str) { } - } - - interface BaseInt { } - - interface SubInt extends BaseInt { } - - enum TestEnum { A; } - - abstract class InnerNonStatic { } - - static class Inner { - protected Inner() { - throw new IllegalStateException("test"); - } - } - - static abstract class SubClass - extends BaseClass - implements SubInt { - SubClass() { super("x"); } - } - - static abstract class ConcreteAndAbstract { - public abstract void a(); - - public void c() { } - } - - /* - /********************************************************** - /* Test methods - /********************************************************** - */ - - public void testIsConcrete() throws Exception - { - assertTrue(ClassUtil.isConcrete(getClass())); - assertFalse(ClassUtil.isConcrete(BaseClass.class)); - assertFalse(ClassUtil.isConcrete(BaseInt.class)); - - assertFalse(ClassUtil.isConcrete(ConcreteAndAbstract.class.getDeclaredMethod("a"))); - assertTrue(ClassUtil.isConcrete(ConcreteAndAbstract.class.getDeclaredMethod("c"))); - } - - public void testCanBeABeanType() - { - assertEquals("annotation", ClassUtil.canBeABeanType(java.lang.annotation.Retention.class)); - assertEquals("array", ClassUtil.canBeABeanType(String[].class)); - assertEquals("enum", ClassUtil.canBeABeanType(TestEnum.class)); - assertEquals("primitive", ClassUtil.canBeABeanType(Integer.TYPE)); - assertNull(ClassUtil.canBeABeanType(Integer.class)); - - assertEquals("non-static member class", ClassUtil.isLocalType(InnerNonStatic.class, false)); - assertNull(ClassUtil.isLocalType(Integer.class, false)); - } - - public void testExceptionHelpers() - { - RuntimeException e = new RuntimeException("test"); - RuntimeException wrapper = new RuntimeException(e); - - assertSame(e, ClassUtil.getRootCause(wrapper)); - - try { - ClassUtil.throwAsIAE(e); - fail("Shouldn't get this far"); - } catch (RuntimeException e2) { - assertSame(e, e2); - } - - try { - ClassUtil.throwRootCause(e); - fail("Shouldn't get this far"); - } catch (Exception eAct) { - assertSame(e, eAct); - } - - Error err = new Error(); - try { - ClassUtil.throwAsIAE(err); - fail("Shouldn't get this far"); - } catch (Error errAct) { - assertSame(err, errAct); - } - - try { - ClassUtil.unwrapAndThrowAsIAE(wrapper); - fail("Shouldn't get this far"); - } catch (RuntimeException e2) { - assertSame(e, e2); - } - } - - public void testFailedCreateInstance() - { - try { - ClassUtil.createInstance(BaseClass.class, true); - } catch (IllegalArgumentException e) { - verifyException(e, "has no default"); - } - - try { - // false means ctor would need to be public - ClassUtil.createInstance(Inner.class, false); - } catch (IllegalArgumentException e) { - verifyException(e, "is not accessible"); - } - - // and finally, check that we'll get expected exception... - try { - ClassUtil.createInstance(Inner.class, true); - } catch (IllegalStateException e) { - verifyException(e, "test"); - } - } - - public void testPrimiteDefaultValue() - { - assertEquals(Integer.valueOf(0), ClassUtil.defaultValue(Integer.TYPE)); - assertEquals(Long.valueOf(0L), ClassUtil.defaultValue(Long.TYPE)); - assertEquals(Character.valueOf('\0'), ClassUtil.defaultValue(Character.TYPE)); - assertEquals(Short.valueOf((short) 0), ClassUtil.defaultValue(Short.TYPE)); - assertEquals(Byte.valueOf((byte) 0), ClassUtil.defaultValue(Byte.TYPE)); - - assertEquals(Double.valueOf(0.0), ClassUtil.defaultValue(Double.TYPE)); - assertEquals(Float.valueOf(0.0f), ClassUtil.defaultValue(Float.TYPE)); - - try { - ClassUtil.defaultValue(String.class); - } catch (IllegalArgumentException e) { - verifyException(e, "String is not a primitive type"); - } - } - - public void testPrimiteWrapperType() - { - 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)); - - try { - ClassUtil.wrapperType(String.class); - } catch (IllegalArgumentException e) { - verifyException(e, "String is not a primitive type"); - } - } - - public void testFindEnumType() - { - assertEquals(TestEnum.class, ClassUtil.findEnumType(TestEnum.A)); - assertEquals(TestEnum.class, ClassUtil.findEnumType(EnumSet.allOf(TestEnum.class))); - assertEquals(TestEnum.class, ClassUtil.findEnumType(new EnumMap(TestEnum.class))); - } - - public void testDescs() - { - final String exp = String.class.getName(); - assertEquals(exp, ClassUtil.getClassDescription("foo")); - assertEquals(exp, ClassUtil.getClassDescription(String.class)); - } -} 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 -- cgit v1.2.3