You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2014/07/20 09:26:35 UTC

[4/5] git commit: Fixed equals and hashCode methods to be consistent with java (equals and hashCode) requirements.

Fixed equals and hashCode methods to be consistent with java (equals and hashCode) requirements.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/8345ed1c
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/8345ed1c
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/8345ed1c

Branch: refs/heads/camel-2.12.x
Commit: 8345ed1cb3b03a1b0023724970f4470c74c011d7
Parents: 2d1158e
Author: nkukhar <ku...@gmail.com>
Authored: Fri Jul 18 19:05:40 2014 -0700
Committer: Claus Ibsen <da...@apache.org>
Committed: Sun Jul 20 09:26:09 2014 +0200

----------------------------------------------------------------------
 .../org/apache/camel/util/KeyValueHolder.java   |  2 ++
 .../apache/camel/util/KeyValueHolderTest.java   | 36 +++++++++++++++++---
 2 files changed, 33 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/8345ed1c/camel-core/src/main/java/org/apache/camel/util/KeyValueHolder.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/util/KeyValueHolder.java b/camel-core/src/main/java/org/apache/camel/util/KeyValueHolder.java
index 3cf5bf9..a9baf00 100644
--- a/camel-core/src/main/java/org/apache/camel/util/KeyValueHolder.java
+++ b/camel-core/src/main/java/org/apache/camel/util/KeyValueHolder.java
@@ -53,6 +53,8 @@ public class KeyValueHolder<K, V> {
 
         if (key != null ? !key.equals(that.key) : that.key != null) {
             return false;
+        } else if (value != null ? !value.equals(that.value) : that.value != null) {
+            return false;
         }
 
         return true;

http://git-wip-us.apache.org/repos/asf/camel/blob/8345ed1c/camel-core/src/test/java/org/apache/camel/util/KeyValueHolderTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/util/KeyValueHolderTest.java b/camel-core/src/test/java/org/apache/camel/util/KeyValueHolderTest.java
index 2efc7e9..0589177 100644
--- a/camel-core/src/test/java/org/apache/camel/util/KeyValueHolderTest.java
+++ b/camel-core/src/test/java/org/apache/camel/util/KeyValueHolderTest.java
@@ -28,17 +28,43 @@ public class KeyValueHolderTest extends TestCase {
 
         assertEquals("foo", foo.getKey());
         assertEquals(123, foo.getValue().intValue());
+    }
+
+    public void testEqualsAndHashCodeOnEqualObjects() {
+        KeyValueHolder<String, Integer> foo1 = new KeyValueHolder<String, Integer>("foo", 123);
+        KeyValueHolder<String, Integer> foo2 = new KeyValueHolder<String, Integer>("foo", 123);
+
+        assertTrue("Should be equals", foo1.equals(foo2));
+        assertTrue("Hash code should be equal", foo1.hashCode() == foo2.hashCode());
+    }
 
-        KeyValueHolder<String, Integer> bar = new KeyValueHolder<String, Integer>("bar", 456);
+    public void testEqualsAndHashCodeOnUnequalObjects() {
+        KeyValueHolder<String, Integer> foo = new KeyValueHolder<String, Integer>("foo", 123);
+        KeyValueHolder<String, Integer> bar = new KeyValueHolder<String, Integer>("bar", 678);
 
         assertFalse("Should not be equals", foo.equals(bar));
+        assertFalse("Hash code should not be equal", foo.hashCode() == bar.hashCode());
+    }
 
-        assertNotSame(foo.hashCode(), bar.hashCode());
+    public void testEqualsAndHashCodeOnUnequalObjectsWithSameKeys() {
+        KeyValueHolder<String, Integer> foo1 = new KeyValueHolder<String, Integer>("foo", 123);
+        KeyValueHolder<String, Integer> foo2 = new KeyValueHolder<String, Integer>("foo", 678);
 
-        KeyValueHolder<String, Integer> bar2 = new KeyValueHolder<String, Integer>("bar", 456);
-        assertTrue("Should be equals", bar.equals(bar2));
+        assertFalse("Should not be equals", foo1.equals(foo2));
+        assertFalse("Hash code should not be equal", foo1.hashCode() == foo2.hashCode());
+    }
 
-        assertEquals("foo -> 123", foo.toString());
+    public void testEqualsAndHashCodeOnUnequalObjectsWithSameValues() {
+        KeyValueHolder<String, Integer> foo = new KeyValueHolder<String, Integer>("foo", 123);
+        KeyValueHolder<String, Integer> bar = new KeyValueHolder<String, Integer>("bar", 123);
+
+        assertFalse("Should not be equals", foo.equals(bar));
+        assertFalse("Hash code should not be equal", foo.hashCode() == bar.hashCode());
     }
 
+    public void testToString() {
+        KeyValueHolder<String, Integer> foo = new KeyValueHolder<String, Integer>("foo", 123);
+
+        assertEquals("foo -> 123", foo.toString());
+    }
 }