From 366cb9a0bc8cc91d23f24e25e19d09d8e071805a Mon Sep 17 00:00:00 2001 From: Javier Date: Wed, 12 Dec 2018 06:41:39 +0100 Subject: [PATCH] BAEL-2412 Add limit values when dealing with floats (min, max, NaN). --- .../primitives/models/LimitValuesExample.java | 6 ++++++ .../baeldung/gson/primitives/UnitTest.java | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 gson/src/main/java/org/baeldung/gson/primitives/models/LimitValuesExample.java diff --git a/gson/src/main/java/org/baeldung/gson/primitives/models/LimitValuesExample.java b/gson/src/main/java/org/baeldung/gson/primitives/models/LimitValuesExample.java new file mode 100644 index 0000000000..4960a98834 --- /dev/null +++ b/gson/src/main/java/org/baeldung/gson/primitives/models/LimitValuesExample.java @@ -0,0 +1,6 @@ +package org.baeldung.gson.primitives.models; + +public class LimitValuesExample { + public float minValue; + public float maxValue; +} diff --git a/gson/src/test/java/org/baeldung/gson/primitives/UnitTest.java b/gson/src/test/java/org/baeldung/gson/primitives/UnitTest.java index 8581f07a65..95314d4d43 100644 --- a/gson/src/test/java/org/baeldung/gson/primitives/UnitTest.java +++ b/gson/src/test/java/org/baeldung/gson/primitives/UnitTest.java @@ -32,6 +32,25 @@ public class UnitTest { assertEquals(expected, gson.toJson(primitiveBundle)); } + @Test public void toJsonLimitValues() { + LimitValuesExample model = new LimitValuesExample(); + model.minValue = Float.MIN_VALUE; + model.maxValue = Float.MAX_VALUE; + + Gson gson = new Gson(); + + String expected = "{\"minValue\":1.4E-45,\"maxValue\":3.4028235E38}"; + assertEquals(expected, gson.toJson(model)); + } + + @Test(expected = IllegalArgumentException.class) public void toJsonNaN() { + FloatExample model = new FloatExample(); + model.value = Float.NaN; + + Gson gson = new Gson(); + gson.toJson(model); + } + @Test public void fromJsonAllPrimitives() { String json = "{\"byteValue\": 17, \"shortValue\": 3, \"intValue\": 3, " + "\"longValue\": 3, \"floatValue\": 3.5" + ", \"doubleValue\": 3.5"