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());
+ }
}