diff --git a/src/test/java/org/json/junit/JSONObjectTest.java b/src/test/java/org/json/junit/JSONObjectTest.java index c24d138c6..56e110edd 100644 --- a/src/test/java/org/json/junit/JSONObjectTest.java +++ b/src/test/java/org/json/junit/JSONObjectTest.java @@ -35,6 +35,7 @@ of this software and associated documentation files (the "Software"), to deal import static org.mockito.Mockito.when; import java.io.IOException; +import java.io.Reader; import java.io.StringReader; import java.io.StringWriter; import java.math.BigDecimal; @@ -55,6 +56,7 @@ of this software and associated documentation files (the "Software"), to deal import org.json.JSONException; import org.json.JSONObject; import org.json.JSONPointerException; +import org.json.JSONTokener; import org.json.XML; import org.json.junit.data.BrokenToString; import org.json.junit.data.ExceptionalBean; @@ -3079,6 +3081,23 @@ public void testWierdListBean() { assertNotNull(jo.get("ALL")); } + /** + * Sample test case from https://github.com/stleary/JSON-java/issues/531 + * which verifies that no regression in double/BigDecimal support is present. + */ + public void testObjectToBigDecimal() { + double value = 1412078745.01074; + Reader reader = new StringReader("[{\"value\": " + value + "}]"); + JSONTokener tokener = new JSONTokener(reader); + JSONArray array = new JSONArray(tokener); + JSONObject jsonObject = array.getJSONObject(0); + + BigDecimal current = jsonObject.getBigDecimal("value"); + BigDecimal wantedValue = BigDecimal.valueOf(value); + + assertEquals(current, wantedValue); + } + /** * Tests the exception portions of populateMap. */