You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@johnzon.apache.org by rm...@apache.org on 2017/06/05 12:49:03 UTC
johnzon git commit: JOHNZON-122 equals contract for JsonNumber
Repository: johnzon
Updated Branches:
refs/heads/master f283c1e89 -> f6979d363
JOHNZON-122 equals contract for JsonNumber
Project: http://git-wip-us.apache.org/repos/asf/johnzon/repo
Commit: http://git-wip-us.apache.org/repos/asf/johnzon/commit/f6979d36
Tree: http://git-wip-us.apache.org/repos/asf/johnzon/tree/f6979d36
Diff: http://git-wip-us.apache.org/repos/asf/johnzon/diff/f6979d36
Branch: refs/heads/master
Commit: f6979d363c18fed6ce06f42b635f673e65225b07
Parents: f283c1e
Author: rmannibucau <rm...@apache.org>
Authored: Mon Jun 5 14:48:55 2017 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Mon Jun 5 14:48:55 2017 +0200
----------------------------------------------------------------------
.../src/main/java/org/apache/johnzon/core/JsonLongImpl.java | 5 ++++-
.../test/java/org/apache/johnzon/core/JsonNumberTest.java | 8 ++++++++
2 files changed, 12 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/johnzon/blob/f6979d36/johnzon-core/src/main/java/org/apache/johnzon/core/JsonLongImpl.java
----------------------------------------------------------------------
diff --git a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonLongImpl.java b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonLongImpl.java
index 883bde5..0719a3f 100644
--- a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonLongImpl.java
+++ b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonLongImpl.java
@@ -97,6 +97,9 @@ public final class JsonLongImpl implements JsonNumber, Serializable {
@Override
public boolean equals(final Object obj) {
- return JsonNumber.class.isInstance(obj) && JsonNumber.class.cast(obj).longValue() == value;
+ if (JsonLongImpl.class.isInstance(obj)) {
+ return JsonLongImpl.class.cast(obj).value == value;
+ }
+ return JsonNumber.class.isInstance(obj) && JsonNumber.class.cast(obj).bigDecimalValue().equals(bigDecimalValue());
}
}
http://git-wip-us.apache.org/repos/asf/johnzon/blob/f6979d36/johnzon-core/src/test/java/org/apache/johnzon/core/JsonNumberTest.java
----------------------------------------------------------------------
diff --git a/johnzon-core/src/test/java/org/apache/johnzon/core/JsonNumberTest.java b/johnzon-core/src/test/java/org/apache/johnzon/core/JsonNumberTest.java
index 55c3754..194017c 100644
--- a/johnzon-core/src/test/java/org/apache/johnzon/core/JsonNumberTest.java
+++ b/johnzon-core/src/test/java/org/apache/johnzon/core/JsonNumberTest.java
@@ -28,9 +28,17 @@ import java.io.StringReader;
import java.io.StringWriter;
import java.math.BigInteger;
+import static org.junit.Assert.assertFalse;
public class JsonNumberTest {
+ @Test
+ public void equals() {
+ final JsonNumber a = Json.createObjectBuilder().add("a", 1).build().getJsonNumber("a");
+ final JsonNumber b = Json.createObjectBuilder().add("b", 1.1).build().getJsonNumber("b");
+ assertFalse(a.equals(b));
+ assertFalse(b.equals(a));
+ }
@Test(expected=ArithmeticException.class)
public void testBigIntegerExact() {