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 5fb7bf410 More tests in ArrayUtilsTest.testContains()
5fb7bf410 is described below

commit 5fb7bf4107325ef5a5cbe02df405897f9ac14431
Author: Gary Gregory <garydgreg...@gmail.com>
AuthorDate: Wed Mar 5 08:29:32 2025 -0500

    More tests in ArrayUtilsTest.testContains()
---
 .../org/apache/commons/lang3/ArrayUtilsTest.java   | 25 ++++++++++++++++------
 1 file changed, 19 insertions(+), 6 deletions(-)

diff --git a/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java 
b/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java
index 2e4edff85..9d35cbbba 100644
--- a/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java
+++ b/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java
@@ -31,6 +31,7 @@
 import java.lang.annotation.ElementType;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.Modifier;
+import java.nio.charset.Charset;
 import java.nio.charset.StandardCharsets;
 import java.util.Arrays;
 import java.util.BitSet;
@@ -223,7 +224,7 @@ public void testConstructor() {
 
     @Test
     public void testContains() {
-        final Object[] array = {"0", "1", "2", "3", null, "0"};
+        final Object[] array = { "0", "1", "2", "3", null, "0" };
         assertFalse(ArrayUtils.contains(null, null));
         assertFalse(ArrayUtils.contains(null, "1"));
         assertTrue(ArrayUtils.contains(array, "0"));
@@ -232,12 +233,27 @@ public void testContains() {
         assertTrue(ArrayUtils.contains(array, "3"));
         assertFalse(ArrayUtils.contains(array, "notInArray"));
         assertTrue(ArrayUtils.contains(array, null));
+        // Types will never match: an Object is not a String
+        final String stringToFind = "4";
+        assertFalse(ArrayUtils.contains(new String[] { stringToFind }, new 
Object()));
+        // String and Integer both implement java.io.Serializable
+        assertFalse(ArrayUtils.contains(new String[] { stringToFind }, 
Integer.valueOf(1)));
+        // Charset and Integer both implement Comparable
+        assertFalse(ArrayUtils.contains(new Charset[] { 
StandardCharsets.US_ASCII }, Integer.valueOf(1)));
+        // TestClass and Integer are only Objects
+        assertFalse(ArrayUtils.contains(new TestClass[] { new TestClass() }, 
Integer.valueOf(1)));
+        // Values can match
+        assertTrue(ArrayUtils.contains(new Object[] { stringToFind }, 
stringToFind));
+        // A String is a CharSequence
+        final CharSequence csToFind = stringToFind;
+        assertTrue(ArrayUtils.contains(new String[] { stringToFind }, 
csToFind));
+        assertTrue(ArrayUtils.contains(new CharSequence[] { stringToFind }, 
stringToFind));
     }
 
     @Test
     public void testContains_LANG_1261() {
-
         class LANG1261ParentObject {
+
             @Override
             public boolean equals(final Object o) {
                 return true;
@@ -248,13 +264,10 @@ public int hashCode() {
                 return 0;
             }
         }
-
         final class LANG1261ChildObject extends LANG1261ParentObject {
             // empty.
         }
-
-        final Object[] array = new LANG1261ChildObject[]{new 
LANG1261ChildObject()};
-
+        final Object[] array = new LANG1261ChildObject[] { new 
LANG1261ChildObject() };
         assertTrue(ArrayUtils.contains(array, new LANG1261ParentObject()));
     }
 

Reply via email to