diff options
author | Tatu Saloranta <tatu.saloranta@iki.fi> | 2020-07-09 21:00:23 -0700 |
---|---|---|
committer | Tatu Saloranta <tatu.saloranta@iki.fi> | 2020-07-09 21:00:23 -0700 |
commit | 1369c51957f81470579272c962f1ca755e51470f (patch) | |
tree | 617c9da4dce55455754346bf1b439d73bd693e92 /src/test/java/com/fasterxml/jackson/failing | |
parent | 3dec03cff1f222bb947549615b2d097234b24088 (diff) | |
download | jackson-databind-1369c51957f81470579272c962f1ca755e51470f.tar.gz |
Fixed #2784 (and #2644)
Diffstat (limited to 'src/test/java/com/fasterxml/jackson/failing')
-rw-r--r-- | src/test/java/com/fasterxml/jackson/failing/JDKNumberDeser2644Test.java | 86 | ||||
-rw-r--r-- | src/test/java/com/fasterxml/jackson/failing/NumberNodes1770Test.java | 2 |
2 files changed, 1 insertions, 87 deletions
diff --git a/src/test/java/com/fasterxml/jackson/failing/JDKNumberDeser2644Test.java b/src/test/java/com/fasterxml/jackson/failing/JDKNumberDeser2644Test.java deleted file mode 100644 index 271687b95..000000000 --- a/src/test/java/com/fasterxml/jackson/failing/JDKNumberDeser2644Test.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.fasterxml.jackson.failing; - -import java.math.BigDecimal; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonSubTypes; -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import com.fasterxml.jackson.annotation.JsonUnwrapped; -import com.fasterxml.jackson.databind.*; - -// Tests for -// -// [databind#2644] -// [databind#2784] -public class JDKNumberDeser2644Test extends BaseMapTest -{ - // [databind#2644] - static class NodeRoot2644 { - public String type; - - @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXTERNAL_PROPERTY, property = "type") - @JsonSubTypes(value = { - @JsonSubTypes.Type(value = NodeParent2644.class, name = "NodeParent") - }) - public Node2644 node; - } - - public static class NodeParent2644 extends Node2644 { } - - public static abstract class Node2644 { - @JsonProperty("amount") - BigDecimal val; - - public BigDecimal getVal() { - return val; - } - - public void setVal(BigDecimal val) { - this.val = val; - } - } - - // [databind#2784] - static class BigDecimalHolder2784 { - public BigDecimal value; - } - - static class NestedBigDecimalHolder2784 { - @JsonUnwrapped - public BigDecimalHolder2784 holder; - } - - // [databind#2644] - public void testBigDecimalSubtypes() throws Exception - { - ObjectMapper mapper = newJsonMapper(); - - // NOTE: uncommenting this does work around the issue: -// mapper.enable(DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS); - mapper.registerSubtypes(NodeParent2644.class); - - NodeRoot2644 root = mapper.readValue( - "{\"type\": \"NodeParent\",\"node\": {\"amount\": 9999999999999999.99} }", - NodeRoot2644.class - ); - - assertEquals(new BigDecimal("9999999999999999.99"), root.node.getVal()); - } - - // [databind#2784] - - public void testBigDecimalUnwrapped() throws Exception - { - final ObjectMapper mapper = newJsonMapper(); - // mapper.enable(DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS); - final String JSON = "{\"value\": 5.00}"; - - // first simple working case: -// BigDecimalHolder2784 holder = mapper.readValue(JSON, BigDecimalHolder2784.class); -// assertEquals(new BigDecimal("5.00"), holder.value); - - // and then one that doesn't - NestedBigDecimalHolder2784 result = mapper.readValue(JSON, NestedBigDecimalHolder2784.class); - assertEquals(new BigDecimal("5.00"), result.holder.value); - } -} diff --git a/src/test/java/com/fasterxml/jackson/failing/NumberNodes1770Test.java b/src/test/java/com/fasterxml/jackson/failing/NumberNodes1770Test.java index 192feb4ec..a2e18f0ff 100644 --- a/src/test/java/com/fasterxml/jackson/failing/NumberNodes1770Test.java +++ b/src/test/java/com/fasterxml/jackson/failing/NumberNodes1770Test.java @@ -19,7 +19,7 @@ public class NumberNodes1770Test extends BaseMapTest final JsonNode jsonNode = MAPPER.reader() .with(DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS) .readTree("7976931348623157e309"); - assertTrue(jsonNode.isBigDecimal()); + assertTrue("Expected DecimalNode, got: "+jsonNode.getClass().getName()+": "+jsonNode, jsonNode.isBigDecimal()); // the following fails with NumberFormatException, because jsonNode is a DoubleNode with a value of POSITIVE_INFINITY // Assert.assertTrue(jsonNode.decimalValue().compareTo(new BigDecimal("7976931348623157e309")) == 0); } |