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 <[email protected]>
Authored: Mon Jun 5 14:48:55 2017 +0200
Committer: rmannibucau <[email protected]>
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() {

Reply via email to