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 <garydgreg...@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");

Reply via email to