You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2024/09/26 13:07:32 UTC
(commons-lang) branch master updated: Add testEqualsAnonynous()
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-lang.git
The following commit(s) were added to refs/heads/master by this push:
new 87e0fd779 Add testEqualsAnonynous()
87e0fd779 is described below
commit 87e0fd77921618de907d71155e042a8502b2f303
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Thu Sep 26 09:04:31 2024 -0400
Add testEqualsAnonynous()
---
.../org/apache/commons/lang3/tuple/PairTest.java | 84 ++++++++++++++++++++++
1 file changed, 84 insertions(+)
diff --git a/src/test/java/org/apache/commons/lang3/tuple/PairTest.java b/src/test/java/org/apache/commons/lang3/tuple/PairTest.java
index ec7e22cbe..229c8b4f6 100644
--- a/src/test/java/org/apache/commons/lang3/tuple/PairTest.java
+++ b/src/test/java/org/apache/commons/lang3/tuple/PairTest.java
@@ -29,6 +29,7 @@ import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Map.Entry;
+import java.util.Objects;
import java.util.TreeMap;
import java.util.WeakHashMap;
import java.util.concurrent.ConcurrentHashMap;
@@ -127,6 +128,89 @@ public class PairTest extends AbstractLangTest {
assertEquals(0, empty.length);
}
+ @Test
+ public void testEqualsAnonynous() {
+ final Pair<String, String> pair = Pair.of("a", "b");
+ final String key = "a";
+ final String value = "b";
+ final Map.Entry<String, String> entry = new Map.Entry<String, String>() {
+
+ @Override
+ public boolean equals(final Object o) {
+ if (!(o instanceof Map.Entry)) {
+ return false;
+ }
+ final Map.Entry<?, ?> e = (Map.Entry<?, ?>) o;
+ // FYI java.util.AbstractMap.SimpleEntry.equals(Object) and JDK-8015417
+ return Objects.equals(getKey(), e.getKey()) && Objects.equals(getValue(), e.getValue());
+ }
+
+ @Override
+ public String getKey() {
+ return key;
+ }
+
+ @Override
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public int hashCode() {
+ return (getKey() == null ? 0 : getKey().hashCode()) ^ (getValue() == null ? 0 : getValue().hashCode());
+ }
+
+ @Override
+ public String setValue(final String value) {
+ return null;
+ }
+ };
+ final Map.Entry<String, String> entry2 = new Map.Entry<String, String>() {
+
+ @Override
+ public boolean equals(final Object o) {
+ if (!(o instanceof Map.Entry)) {
+ return false;
+ }
+ final Map.Entry<?, ?> e = (Map.Entry<?, ?>) o;
+ // FYI java.util.AbstractMap.SimpleEntry.equals(Object) and JDK-8015417
+ return Objects.equals(getKey(), e.getKey()) && Objects.equals(getValue(), e.getValue());
+ }
+
+ @Override
+ public String getKey() {
+ return key;
+ }
+
+ @Override
+ public String getValue() {
+ return value;
+ }
+ @Override
+ public int hashCode() {
+ return (getKey() == null ? 0 : getKey().hashCode()) ^ (getValue() == null ? 0 : getValue().hashCode());
+ }
+
+ @Override
+ public String setValue(final String value) {
+ return null;
+ }
+ };
+ assertTrue(pair.equals(entry));
+ assertEquals(pair.hashCode(), entry.hashCode());
+ assertTrue(pair.equals(entry2));
+ assertEquals(pair.hashCode(), entry2.hashCode());
+ assertTrue(entry.equals(entry));
+ assertEquals(entry.hashCode(), entry.hashCode());
+ assertTrue(entry2.equals(entry2));
+ assertEquals(entry2.hashCode(), entry2.hashCode());
+ assertTrue(entry.equals(entry2));
+ assertEquals(entry.hashCode(), entry2.hashCode());
+ assertTrue(entry.equals(pair));
+ assertEquals(entry.hashCode(), pair.hashCode());
+
+ }
+
@Test
public void testFormattable_padded() {
final Pair<String, String> pair = Pair.of("Key", "Value");