From 14ac5b24c35dd897fcb50e4ceee5d6900bd46890 Mon Sep 17 00:00:00 2001 From: Tatu Saloranta Date: Thu, 7 Nov 2019 12:20:44 -0800 Subject: [PATCH] Add failing tests for #188 --- .../failing/BinaryToStringCoercionTest.java | 79 +++++++++++++++++++ pom.xml | 2 +- 2 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 cbor/src/test/java/com/fasterxml/jackson/dataformat/cbor/failing/BinaryToStringCoercionTest.java diff --git a/cbor/src/test/java/com/fasterxml/jackson/dataformat/cbor/failing/BinaryToStringCoercionTest.java b/cbor/src/test/java/com/fasterxml/jackson/dataformat/cbor/failing/BinaryToStringCoercionTest.java new file mode 100644 index 000000000..7daf62c0c --- /dev/null +++ b/cbor/src/test/java/com/fasterxml/jackson/dataformat/cbor/failing/BinaryToStringCoercionTest.java @@ -0,0 +1,79 @@ +package com.fasterxml.jackson.dataformat.cbor.failing; + +import java.util.*; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.dataformat.cbor.CBORTestBase; + +// Tests for [dataformat-binary#188], lacking coercions for Binary->String wrt containers +public class BinaryToStringCoercionTest extends CBORTestBase +{ + static class BinaryListWrapper { + public List data = Collections.singletonList( + new byte[] { 1, 2, 3, 4}); + } + + static class StringListWrapper { + public List data; + } + + static class BinarySetWrapper { + public Set data = Collections.singleton(new byte[] { 1, 2, 3, 4}); + } + + static class StringSetWrapper { + public Set data; + } + + static class BinaryArrayWrapper { + public byte[][] data = new byte[][] { new byte[] { 1, 2, 3, 4} }; + } + + static class StringArrayWrapper { + public String[] data; + } + + static class BinaryMapWrapper { + public Map data = Collections.singletonMap("key", + new byte[] { 1, 2, 3, 4}); + } + + static class StringMapWrapper { + public Map data; + } + + private final ObjectMapper CBOR_MAPPER = cborMapper(); + + public void testWithList() throws Exception + { + byte[] doc = CBOR_MAPPER.writeValueAsBytes(new BinaryListWrapper()); + StringListWrapper result = CBOR_MAPPER.readValue(doc, StringListWrapper.class); + assertEquals(1, result.data.size()); + assertEquals(String.class, result.data.get(0).getClass()); + } + + public void testWithSet() throws Exception + { + byte[] doc = CBOR_MAPPER.writeValueAsBytes(new BinarySetWrapper()); + StringSetWrapper result = CBOR_MAPPER.readValue(doc, StringSetWrapper.class); + assertEquals(1, result.data.size()); + assertEquals(String.class, result.data.iterator().next().getClass()); + } + + public void testWithMap() throws Exception + { + byte[] doc = CBOR_MAPPER.writeValueAsBytes(new BinaryMapWrapper()); + StringMapWrapper result = CBOR_MAPPER.readValue(doc, StringMapWrapper.class); + assertEquals(1, result.data.size()); + assertEquals(String.class, result.data.get("key").getClass()); + } + + public void testWithArray() throws Exception + { + byte[] doc = CBOR_MAPPER.writeValueAsBytes(new BinaryArrayWrapper()); + StringArrayWrapper result = CBOR_MAPPER.readValue(doc, StringArrayWrapper.class); + assertEquals(1, result.data.length); + assertEquals(String.class, result.data[0].getClass()); + } +} + diff --git a/pom.xml b/pom.xml index fe7c83e8f..a15fc0dda 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ com.fasterxml.jackson jackson-base - 2.10.0 + 2.10.1-SNAPSHOT com.fasterxml.jackson.dataformat jackson-dataformats-binary