aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/com/fasterxml/jackson/databind/util
diff options
context:
space:
mode:
authorTatu Saloranta <tatu.saloranta@iki.fi>2016-10-19 17:13:31 -0700
committerTatu Saloranta <tatu.saloranta@iki.fi>2016-10-19 17:13:31 -0700
commit6b758d8d2a43ff74b1860f9fc63284efc91459c6 (patch)
treee0da0bb5a9b5a8503d015247bc1c02eecab8772a /src/test/java/com/fasterxml/jackson/databind/util
parent53bd8da94736b22c4be2c5f4c829035e81e3de55 (diff)
downloadjackson-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.java65
-rw-r--r--src/test/java/com/fasterxml/jackson/databind/util/BeanUtilTest.java15
-rw-r--r--src/test/java/com/fasterxml/jackson/databind/util/ByteBufferUtilsTest.java28
-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.java28
-rw-r--r--src/test/java/com/fasterxml/jackson/databind/util/EnumValuesTest.java50
-rw-r--r--src/test/java/com/fasterxml/jackson/databind/util/NameTransformerTest.java23
-rw-r--r--src/test/java/com/fasterxml/jackson/databind/util/RawValueTest.java24
-rw-r--r--src/test/java/com/fasterxml/jackson/databind/util/TestTokenBuffer.java9
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