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

commit 64e6ddbc6b98f5e84170cd620b82bc91a9bf80ad
Author: Gary Gregory <garydgreg...@gmail.com>
AuthorDate: Wed Mar 17 08:31:39 2021 -0400

    Sort methods.
---
 .../org/apache/commons/lang3/EnumUtilsTest.java    | 482 ++++++++++-----------
 1 file changed, 241 insertions(+), 241 deletions(-)

diff --git a/src/test/java/org/apache/commons/lang3/EnumUtilsTest.java 
b/src/test/java/org/apache/commons/lang3/EnumUtilsTest.java
index 1f9d3a3..c522fd4 100644
--- a/src/test/java/org/apache/commons/lang3/EnumUtilsTest.java
+++ b/src/test/java/org/apache/commons/lang3/EnumUtilsTest.java
@@ -33,134 +33,81 @@ import java.util.Map;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 
+enum Enum64 {
+    A00, A01, A02, A03, A04, A05, A06, A07, A08, A09, A10, A11, A12, A13, A14, 
A15,
+    A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, 
A31,
+    A32, A33, A34, A35, A36, A37, A38, A39, A40, A41, A42, A43, A44, A45, A46, 
A47,
+    A48, A49, A50, A51, A52, A53, A54, A55, A56, A57, A58, A59, A60, A61, A62, 
A63
+}
+
 /**
  *
  */
 public class EnumUtilsTest {
 
-    @Test
-    public void testConstructable() {
-        // enforce public constructor
-        new EnumUtils();
-    }
-
-    @Test
-    public void test_getEnumMap() {
-        final Map<String, Traffic> test = EnumUtils.getEnumMap(Traffic.class);
-        assertEquals("{RED=RED, AMBER=AMBER, GREEN=GREEN}", test.toString(), 
"getEnumMap not created correctly");
-        assertEquals(3, test.size());
-        assertTrue(test.containsKey("RED"));
-        assertEquals(Traffic.RED, test.get("RED"));
-        assertTrue(test.containsKey("AMBER"));
-        assertEquals(Traffic.AMBER, test.get("AMBER"));
-        assertTrue(test.containsKey("GREEN"));
-        assertEquals(Traffic.GREEN, test.get("GREEN"));
-        assertFalse(test.containsKey("PURPLE"));
-    }
-
-    @Test
-    public void test_getEnumList() {
-        final List<Traffic> test = EnumUtils.getEnumList(Traffic.class);
-        assertEquals(3, test.size());
-        assertEquals(Traffic.RED, test.get(0));
-        assertEquals(Traffic.AMBER, test.get(1));
-        assertEquals(Traffic.GREEN, test.get(2));
-    }
-
-    @Test
-    public void test_isValidEnum() {
-        assertTrue(EnumUtils.isValidEnum(Traffic.class, "RED"));
-        assertTrue(EnumUtils.isValidEnum(Traffic.class, "AMBER"));
-        assertTrue(EnumUtils.isValidEnum(Traffic.class, "GREEN"));
-        assertFalse(EnumUtils.isValidEnum(Traffic.class, "PURPLE"));
-        assertFalse(EnumUtils.isValidEnum(Traffic.class, null));
-    }
-
-    @Test
-    public void test_isValidEnum_nullClass() {
-        assertThrows(NullPointerException.class, () -> 
EnumUtils.isValidEnum(null, "PURPLE"));
-    }
-
-    @Test
-    public void test_isValidEnumIgnoreCase() {
-        assertTrue(EnumUtils.isValidEnumIgnoreCase(Traffic.class, "red"));
-        assertTrue(EnumUtils.isValidEnumIgnoreCase(Traffic.class, "Amber"));
-        assertTrue(EnumUtils.isValidEnumIgnoreCase(Traffic.class, "grEEn"));
-        assertFalse(EnumUtils.isValidEnumIgnoreCase(Traffic.class, "purple"));
-        assertFalse(EnumUtils.isValidEnumIgnoreCase(Traffic.class, null));
-    }
-
-    @Test
-    public void test_isValidEnumIgnoreCase_nullClass() {
-        assertThrows(NullPointerException.class, () -> 
EnumUtils.isValidEnumIgnoreCase(null, "PURPLE"));
+    private void assertArrayEquals(final long[] actual, final long... 
expected) {
+        Assertions.assertArrayEquals(expected, actual);
     }
 
     @Test
-    public void test_getEnum() {
-        assertEquals(Traffic.RED, EnumUtils.getEnum(Traffic.class, "RED"));
-        assertEquals(Traffic.AMBER, EnumUtils.getEnum(Traffic.class, "AMBER"));
-        assertEquals(Traffic.GREEN, EnumUtils.getEnum(Traffic.class, "GREEN"));
-        assertNull(EnumUtils.getEnum(Traffic.class, "PURPLE"));
-        assertNull(EnumUtils.getEnum(Traffic.class, null));
-    }
+    public void test_generateBitVector() {
+        assertEquals(0L, EnumUtils.generateBitVector(Traffic.class, 
EnumSet.noneOf(Traffic.class)));
+        assertEquals(1L, EnumUtils.generateBitVector(Traffic.class, 
EnumSet.of(Traffic.RED)));
+        assertEquals(2L, EnumUtils.generateBitVector(Traffic.class, 
EnumSet.of(Traffic.AMBER)));
+        assertEquals(4L, EnumUtils.generateBitVector(Traffic.class, 
EnumSet.of(Traffic.GREEN)));
+        assertEquals(3L, EnumUtils.generateBitVector(Traffic.class, 
EnumSet.of(Traffic.RED, Traffic.AMBER)));
+        assertEquals(5L, EnumUtils.generateBitVector(Traffic.class, 
EnumSet.of(Traffic.RED, Traffic.GREEN)));
+        assertEquals(6L, EnumUtils.generateBitVector(Traffic.class, 
EnumSet.of(Traffic.AMBER, Traffic.GREEN)));
+        assertEquals(7L, EnumUtils.generateBitVector(Traffic.class, 
EnumSet.of(Traffic.RED, Traffic.AMBER, Traffic.GREEN)));
 
-    @Test
-    public void test_getEnum_nonEnumClass() {
-        final Class rawType = Object.class;
-        assertNull(EnumUtils.getEnum(rawType, "rawType"));
+        // 64 values Enum (to test whether no int<->long jdk conversion issue 
exists)
+        assertEquals((1L << 31), EnumUtils.generateBitVector(Enum64.class, 
EnumSet.of(Enum64.A31)));
+        assertEquals((1L << 32), EnumUtils.generateBitVector(Enum64.class, 
EnumSet.of(Enum64.A32)));
+        assertEquals((1L << 63), EnumUtils.generateBitVector(Enum64.class, 
EnumSet.of(Enum64.A63)));
+        assertEquals(Long.MIN_VALUE, EnumUtils.generateBitVector(Enum64.class, 
EnumSet.of(Enum64.A63)));
     }
 
     @Test
-    public void test_getEnum_nullClass() {
-        assertThrows(NullPointerException.class, () -> 
EnumUtils.getEnum((Class<Traffic>) null, "PURPLE"));
+    public void test_generateBitVector_longClass() {
+        assertThrows(IllegalArgumentException.class,
+                () -> EnumUtils.generateBitVector(TooMany.class, 
EnumSet.of(TooMany.A1)));
     }
 
     @Test
-    public void test_getEnum_defaultEnum() {
-        assertEquals(Traffic.RED, EnumUtils.getEnum(Traffic.class, "RED", 
Traffic.AMBER));
-        assertEquals(Traffic.AMBER, EnumUtils.getEnum(Traffic.class, "AMBER", 
Traffic.GREEN));
-        assertEquals(Traffic.GREEN, EnumUtils.getEnum(Traffic.class, "GREEN", 
Traffic.RED));
-        assertEquals(Traffic.AMBER, EnumUtils.getEnum(Traffic.class, "PURPLE", 
Traffic.AMBER));
-        assertEquals(Traffic.GREEN, EnumUtils.getEnum(Traffic.class, "PURPLE", 
Traffic.GREEN));
-        assertEquals(Traffic.RED, EnumUtils.getEnum(Traffic.class, "PURPLE", 
Traffic.RED));
-        assertEquals(Traffic.AMBER, EnumUtils.getEnum(Traffic.class, null, 
Traffic.AMBER));
-        assertEquals(Traffic.GREEN, EnumUtils.getEnum(Traffic.class, null, 
Traffic.GREEN));
-        assertEquals(Traffic.RED, EnumUtils.getEnum(Traffic.class, null, 
Traffic.RED));
-        assertNull(EnumUtils.getEnum(Traffic.class, "PURPLE", null));
+    public void test_generateBitVector_longClassWithArray() {
+        assertThrows(IllegalArgumentException.class, () -> 
EnumUtils.generateBitVector(TooMany.class, TooMany.A1));
     }
 
+    @SuppressWarnings("unchecked")
     @Test
-    public void test_getEnumIgnoreCase() {
-        assertEquals(Traffic.RED, EnumUtils.getEnumIgnoreCase(Traffic.class, 
"red"));
-        assertEquals(Traffic.AMBER, EnumUtils.getEnumIgnoreCase(Traffic.class, 
"Amber"));
-        assertEquals(Traffic.GREEN, EnumUtils.getEnumIgnoreCase(Traffic.class, 
"grEEn"));
-        assertNull(EnumUtils.getEnumIgnoreCase(Traffic.class, "purple"));
-        assertNull(EnumUtils.getEnumIgnoreCase(Traffic.class, null));
+    public void test_generateBitVector_nonEnumClass() {
+        @SuppressWarnings("rawtypes")
+        final
+        Class rawType = Object.class;
+        @SuppressWarnings("rawtypes")
+        final
+        List rawList = new ArrayList();
+        assertThrows(IllegalArgumentException.class, () -> 
EnumUtils.generateBitVector(rawType, rawList));
     }
 
+    @SuppressWarnings("unchecked")
     @Test
-    public void test_getEnumIgnoreCase_nonEnumClass() {
-        final Class rawType = Object.class;
-        assertNull(EnumUtils.getEnumIgnoreCase(rawType, "rawType"));
+    public void test_generateBitVector_nonEnumClassWithArray() {
+        @SuppressWarnings("rawtypes")
+        final
+        Class rawType = Object.class;
+        assertThrows(IllegalArgumentException.class, () -> 
EnumUtils.generateBitVector(rawType));
     }
 
     @Test
-    public void test_getEnumIgnoreCase_nullClass() {
-        assertThrows(NullPointerException.class, () -> 
EnumUtils.getEnumIgnoreCase((Class<Traffic>) null, "PURPLE"));
+    public void test_generateBitVector_nullArray() {
+        assertThrows(NullPointerException.class, () -> 
EnumUtils.generateBitVector(Traffic.class, (Traffic[]) null));
     }
 
     @Test
-    public void test_getEnumIgnoreCase_defaultEnum() {
-        assertEquals(Traffic.RED, EnumUtils.getEnumIgnoreCase(Traffic.class, 
"red", Traffic.AMBER));
-        assertEquals(Traffic.AMBER, EnumUtils.getEnumIgnoreCase(Traffic.class, 
"Amber", Traffic.GREEN));
-        assertEquals(Traffic.GREEN, EnumUtils.getEnumIgnoreCase(Traffic.class, 
"grEEn", Traffic.RED));
-        assertEquals(Traffic.AMBER, EnumUtils.getEnumIgnoreCase(Traffic.class, 
"PURPLE", Traffic.AMBER));
-        assertEquals(Traffic.GREEN, EnumUtils.getEnumIgnoreCase(Traffic.class, 
"purple", Traffic.GREEN));
-        assertEquals(Traffic.RED, EnumUtils.getEnumIgnoreCase(Traffic.class, 
"pUrPlE", Traffic.RED));
-        assertEquals(Traffic.AMBER, EnumUtils.getEnumIgnoreCase(Traffic.class, 
null, Traffic.AMBER));
-        assertEquals(Traffic.GREEN, EnumUtils.getEnumIgnoreCase(Traffic.class, 
null, Traffic.GREEN));
-        assertEquals(Traffic.RED, EnumUtils.getEnumIgnoreCase(Traffic.class, 
null, Traffic.RED));
-        assertNull(EnumUtils.getEnumIgnoreCase(Traffic.class, "PURPLE", null));
+    public void test_generateBitVector_nullArrayElement() {
+        assertThrows(IllegalArgumentException.class,
+                () -> EnumUtils.generateBitVector(Traffic.class, Traffic.RED, 
null));
     }
 
     @Test
@@ -169,19 +116,8 @@ public class EnumUtilsTest {
     }
 
     @Test
-    public void test_generateBitVectors_nullClass() {
-        assertThrows(NullPointerException.class, () -> 
EnumUtils.generateBitVectors(null, EnumSet.of(Traffic.RED)));
-    }
-
-    @Test
-    public void test_generateBitVector_nullIterable() {
-        assertThrows(NullPointerException.class,
-                () -> EnumUtils.generateBitVector(Traffic.class, 
(Iterable<Traffic>) null));
-    }
-
-    @Test
-    public void test_generateBitVectors_nullIterable() {
-        assertThrows(NullPointerException.class, () -> 
EnumUtils.generateBitVectors(null, (Iterable<Traffic>) null));
+    public void test_generateBitVector_nullClassWithArray() {
+        assertThrows(NullPointerException.class, () -> 
EnumUtils.generateBitVector(null, Traffic.RED));
     }
 
     @Test
@@ -191,64 +127,51 @@ public class EnumUtilsTest {
     }
 
     @Test
-    public void test_generateBitVectors_nullElement() {
+    public void test_generateBitVector_nullIterable() {
         assertThrows(NullPointerException.class,
-                () -> EnumUtils.generateBitVectors(Traffic.class, 
Arrays.asList(Traffic.RED, null)));
-    }
-
-    @Test
-    public void test_generateBitVector_nullClassWithArray() {
-        assertThrows(NullPointerException.class, () -> 
EnumUtils.generateBitVector(null, Traffic.RED));
-    }
-
-    @Test
-    public void test_generateBitVectors_nullClassWithArray() {
-        assertThrows(NullPointerException.class, () -> 
EnumUtils.generateBitVectors(null, Traffic.RED));
-    }
-
-    @Test
-    public void test_generateBitVector_nullArray() {
-        assertThrows(NullPointerException.class, () -> 
EnumUtils.generateBitVector(Traffic.class, (Traffic[]) null));
-    }
-
-    @Test
-    public void test_generateBitVectors_nullArray() {
-        assertThrows(NullPointerException.class, () -> 
EnumUtils.generateBitVectors(Traffic.class, (Traffic[]) null));
+                () -> EnumUtils.generateBitVector(Traffic.class, 
(Iterable<Traffic>) null));
     }
 
     @Test
-    public void test_generateBitVector_nullArrayElement() {
-        assertThrows(IllegalArgumentException.class,
-                () -> EnumUtils.generateBitVector(Traffic.class, Traffic.RED, 
null));
-    }
+    public void test_generateBitVectorFromArray() {
+        assertEquals(0L, EnumUtils.generateBitVector(Traffic.class));
+        assertEquals(1L, EnumUtils.generateBitVector(Traffic.class, 
Traffic.RED));
+        assertEquals(2L, EnumUtils.generateBitVector(Traffic.class, 
Traffic.AMBER));
+        assertEquals(4L, EnumUtils.generateBitVector(Traffic.class, 
Traffic.GREEN));
+        assertEquals(3L, EnumUtils.generateBitVector(Traffic.class, 
Traffic.RED, Traffic.AMBER));
+        assertEquals(5L, EnumUtils.generateBitVector(Traffic.class, 
Traffic.RED, Traffic.GREEN));
+        assertEquals(6L, EnumUtils.generateBitVector(Traffic.class, 
Traffic.AMBER, Traffic.GREEN));
+        assertEquals(7L, EnumUtils.generateBitVector(Traffic.class, 
Traffic.RED, Traffic.AMBER, Traffic.GREEN));
+        //gracefully handles duplicates:
+        assertEquals(7L, EnumUtils.generateBitVector(Traffic.class, 
Traffic.RED, Traffic.AMBER, Traffic.GREEN, Traffic.GREEN));
 
-    @Test
-    public void test_generateBitVectors_nullArrayElement() {
-        assertThrows(IllegalArgumentException.class,
-                () -> EnumUtils.generateBitVectors(Traffic.class, Traffic.RED, 
null));
+        // 64 values Enum (to test whether no int<->long jdk conversion issue 
exists)
+        assertEquals((1L << 31), EnumUtils.generateBitVector(Enum64.class, 
Enum64.A31));
+        assertEquals((1L << 32), EnumUtils.generateBitVector(Enum64.class, 
Enum64.A32));
+        assertEquals((1L << 63), EnumUtils.generateBitVector(Enum64.class, 
Enum64.A63));
+        assertEquals(Long.MIN_VALUE, EnumUtils.generateBitVector(Enum64.class, 
Enum64.A63));
     }
 
     @Test
-    public void test_generateBitVector_longClass() {
-        assertThrows(IllegalArgumentException.class,
-                () -> EnumUtils.generateBitVector(TooMany.class, 
EnumSet.of(TooMany.A1)));
-    }
+    public void test_generateBitVectors() {
+        assertArrayEquals(EnumUtils.generateBitVectors(Traffic.class, 
EnumSet.noneOf(Traffic.class)), 0L);
+        assertArrayEquals(EnumUtils.generateBitVectors(Traffic.class, 
EnumSet.of(Traffic.RED)), 1L);
+        assertArrayEquals(EnumUtils.generateBitVectors(Traffic.class, 
EnumSet.of(Traffic.AMBER)), 2L);
+        assertArrayEquals(EnumUtils.generateBitVectors(Traffic.class, 
EnumSet.of(Traffic.GREEN)), 4L);
+        assertArrayEquals(EnumUtils.generateBitVectors(Traffic.class, 
EnumSet.of(Traffic.RED, Traffic.AMBER)), 3L);
+        assertArrayEquals(EnumUtils.generateBitVectors(Traffic.class, 
EnumSet.of(Traffic.RED, Traffic.GREEN)), 5L);
+        assertArrayEquals(EnumUtils.generateBitVectors(Traffic.class, 
EnumSet.of(Traffic.AMBER, Traffic.GREEN)), 6L);
+        assertArrayEquals(EnumUtils.generateBitVectors(Traffic.class, 
EnumSet.of(Traffic.RED, Traffic.AMBER, Traffic.GREEN)), 7L);
 
-    @Test
-    public void test_generateBitVector_longClassWithArray() {
-        assertThrows(IllegalArgumentException.class, () -> 
EnumUtils.generateBitVector(TooMany.class, TooMany.A1));
-    }
+        // 64 values Enum (to test whether no int<->long jdk conversion issue 
exists)
+        assertArrayEquals(EnumUtils.generateBitVectors(Enum64.class, 
EnumSet.of(Enum64.A31)), (1L << 31));
+        assertArrayEquals(EnumUtils.generateBitVectors(Enum64.class, 
EnumSet.of(Enum64.A32)), (1L << 32));
+        assertArrayEquals(EnumUtils.generateBitVectors(Enum64.class, 
EnumSet.of(Enum64.A63)), (1L << 63));
+        assertArrayEquals(EnumUtils.generateBitVectors(Enum64.class, 
EnumSet.of(Enum64.A63)), Long.MIN_VALUE);
 
-    @SuppressWarnings("unchecked")
-    @Test
-    public void test_generateBitVector_nonEnumClass() {
-        @SuppressWarnings("rawtypes")
-        final
-        Class rawType = Object.class;
-        @SuppressWarnings("rawtypes")
-        final
-        List rawList = new ArrayList();
-        assertThrows(IllegalArgumentException.class, () -> 
EnumUtils.generateBitVector(rawType, rawList));
+        // More than 64 values Enum
+        assertArrayEquals(EnumUtils.generateBitVectors(TooMany.class, 
EnumSet.of(TooMany.M2)), 1L, 0L);
+        assertArrayEquals(EnumUtils.generateBitVectors(TooMany.class, 
EnumSet.of(TooMany.L2, TooMany.M2)), 1L, (1L << 63));
     }
 
     @SuppressWarnings("unchecked")
@@ -265,15 +188,6 @@ public class EnumUtilsTest {
 
     @SuppressWarnings("unchecked")
     @Test
-    public void test_generateBitVector_nonEnumClassWithArray() {
-        @SuppressWarnings("rawtypes")
-        final
-        Class rawType = Object.class;
-        assertThrows(IllegalArgumentException.class, () -> 
EnumUtils.generateBitVector(rawType));
-    }
-
-    @SuppressWarnings("unchecked")
-    @Test
     public void test_generateBitVectors_nonEnumClassWithArray() {
         @SuppressWarnings("rawtypes")
         final
@@ -282,63 +196,35 @@ public class EnumUtilsTest {
     }
 
     @Test
-    public void test_generateBitVector() {
-        assertEquals(0L, EnumUtils.generateBitVector(Traffic.class, 
EnumSet.noneOf(Traffic.class)));
-        assertEquals(1L, EnumUtils.generateBitVector(Traffic.class, 
EnumSet.of(Traffic.RED)));
-        assertEquals(2L, EnumUtils.generateBitVector(Traffic.class, 
EnumSet.of(Traffic.AMBER)));
-        assertEquals(4L, EnumUtils.generateBitVector(Traffic.class, 
EnumSet.of(Traffic.GREEN)));
-        assertEquals(3L, EnumUtils.generateBitVector(Traffic.class, 
EnumSet.of(Traffic.RED, Traffic.AMBER)));
-        assertEquals(5L, EnumUtils.generateBitVector(Traffic.class, 
EnumSet.of(Traffic.RED, Traffic.GREEN)));
-        assertEquals(6L, EnumUtils.generateBitVector(Traffic.class, 
EnumSet.of(Traffic.AMBER, Traffic.GREEN)));
-        assertEquals(7L, EnumUtils.generateBitVector(Traffic.class, 
EnumSet.of(Traffic.RED, Traffic.AMBER, Traffic.GREEN)));
-
-        // 64 values Enum (to test whether no int<->long jdk conversion issue 
exists)
-        assertEquals((1L << 31), EnumUtils.generateBitVector(Enum64.class, 
EnumSet.of(Enum64.A31)));
-        assertEquals((1L << 32), EnumUtils.generateBitVector(Enum64.class, 
EnumSet.of(Enum64.A32)));
-        assertEquals((1L << 63), EnumUtils.generateBitVector(Enum64.class, 
EnumSet.of(Enum64.A63)));
-        assertEquals(Long.MIN_VALUE, EnumUtils.generateBitVector(Enum64.class, 
EnumSet.of(Enum64.A63)));
+    public void test_generateBitVectors_nullArray() {
+        assertThrows(NullPointerException.class, () -> 
EnumUtils.generateBitVectors(Traffic.class, (Traffic[]) null));
     }
 
     @Test
-    public void test_generateBitVectors() {
-        assertArrayEquals(EnumUtils.generateBitVectors(Traffic.class, 
EnumSet.noneOf(Traffic.class)), 0L);
-        assertArrayEquals(EnumUtils.generateBitVectors(Traffic.class, 
EnumSet.of(Traffic.RED)), 1L);
-        assertArrayEquals(EnumUtils.generateBitVectors(Traffic.class, 
EnumSet.of(Traffic.AMBER)), 2L);
-        assertArrayEquals(EnumUtils.generateBitVectors(Traffic.class, 
EnumSet.of(Traffic.GREEN)), 4L);
-        assertArrayEquals(EnumUtils.generateBitVectors(Traffic.class, 
EnumSet.of(Traffic.RED, Traffic.AMBER)), 3L);
-        assertArrayEquals(EnumUtils.generateBitVectors(Traffic.class, 
EnumSet.of(Traffic.RED, Traffic.GREEN)), 5L);
-        assertArrayEquals(EnumUtils.generateBitVectors(Traffic.class, 
EnumSet.of(Traffic.AMBER, Traffic.GREEN)), 6L);
-        assertArrayEquals(EnumUtils.generateBitVectors(Traffic.class, 
EnumSet.of(Traffic.RED, Traffic.AMBER, Traffic.GREEN)), 7L);
+    public void test_generateBitVectors_nullArrayElement() {
+        assertThrows(IllegalArgumentException.class,
+                () -> EnumUtils.generateBitVectors(Traffic.class, Traffic.RED, 
null));
+    }
 
-        // 64 values Enum (to test whether no int<->long jdk conversion issue 
exists)
-        assertArrayEquals(EnumUtils.generateBitVectors(Enum64.class, 
EnumSet.of(Enum64.A31)), (1L << 31));
-        assertArrayEquals(EnumUtils.generateBitVectors(Enum64.class, 
EnumSet.of(Enum64.A32)), (1L << 32));
-        assertArrayEquals(EnumUtils.generateBitVectors(Enum64.class, 
EnumSet.of(Enum64.A63)), (1L << 63));
-        assertArrayEquals(EnumUtils.generateBitVectors(Enum64.class, 
EnumSet.of(Enum64.A63)), Long.MIN_VALUE);
+    @Test
+    public void test_generateBitVectors_nullClass() {
+        assertThrows(NullPointerException.class, () -> 
EnumUtils.generateBitVectors(null, EnumSet.of(Traffic.RED)));
+    }
 
-        // More than 64 values Enum
-        assertArrayEquals(EnumUtils.generateBitVectors(TooMany.class, 
EnumSet.of(TooMany.M2)), 1L, 0L);
-        assertArrayEquals(EnumUtils.generateBitVectors(TooMany.class, 
EnumSet.of(TooMany.L2, TooMany.M2)), 1L, (1L << 63));
+    @Test
+    public void test_generateBitVectors_nullClassWithArray() {
+        assertThrows(NullPointerException.class, () -> 
EnumUtils.generateBitVectors(null, Traffic.RED));
     }
 
     @Test
-    public void test_generateBitVectorFromArray() {
-        assertEquals(0L, EnumUtils.generateBitVector(Traffic.class));
-        assertEquals(1L, EnumUtils.generateBitVector(Traffic.class, 
Traffic.RED));
-        assertEquals(2L, EnumUtils.generateBitVector(Traffic.class, 
Traffic.AMBER));
-        assertEquals(4L, EnumUtils.generateBitVector(Traffic.class, 
Traffic.GREEN));
-        assertEquals(3L, EnumUtils.generateBitVector(Traffic.class, 
Traffic.RED, Traffic.AMBER));
-        assertEquals(5L, EnumUtils.generateBitVector(Traffic.class, 
Traffic.RED, Traffic.GREEN));
-        assertEquals(6L, EnumUtils.generateBitVector(Traffic.class, 
Traffic.AMBER, Traffic.GREEN));
-        assertEquals(7L, EnumUtils.generateBitVector(Traffic.class, 
Traffic.RED, Traffic.AMBER, Traffic.GREEN));
-        //gracefully handles duplicates:
-        assertEquals(7L, EnumUtils.generateBitVector(Traffic.class, 
Traffic.RED, Traffic.AMBER, Traffic.GREEN, Traffic.GREEN));
+    public void test_generateBitVectors_nullElement() {
+        assertThrows(NullPointerException.class,
+                () -> EnumUtils.generateBitVectors(Traffic.class, 
Arrays.asList(Traffic.RED, null)));
+    }
 
-        // 64 values Enum (to test whether no int<->long jdk conversion issue 
exists)
-        assertEquals((1L << 31), EnumUtils.generateBitVector(Enum64.class, 
Enum64.A31));
-        assertEquals((1L << 32), EnumUtils.generateBitVector(Enum64.class, 
Enum64.A32));
-        assertEquals((1L << 63), EnumUtils.generateBitVector(Enum64.class, 
Enum64.A63));
-        assertEquals(Long.MIN_VALUE, EnumUtils.generateBitVector(Enum64.class, 
Enum64.A63));
+    @Test
+    public void test_generateBitVectors_nullIterable() {
+        assertThrows(NullPointerException.class, () -> 
EnumUtils.generateBitVectors(null, (Iterable<Traffic>) null));
     }
 
     @Test
@@ -366,20 +252,123 @@ public class EnumUtilsTest {
 
     }
 
-    private void assertArrayEquals(final long[] actual, final long... 
expected) {
-        Assertions.assertArrayEquals(expected, actual);
+    @Test
+    public void test_getEnum() {
+        assertEquals(Traffic.RED, EnumUtils.getEnum(Traffic.class, "RED"));
+        assertEquals(Traffic.AMBER, EnumUtils.getEnum(Traffic.class, "AMBER"));
+        assertEquals(Traffic.GREEN, EnumUtils.getEnum(Traffic.class, "GREEN"));
+        assertNull(EnumUtils.getEnum(Traffic.class, "PURPLE"));
+        assertNull(EnumUtils.getEnum(Traffic.class, null));
     }
 
     @Test
-    public void test_processBitVector_nullClass() {
-        final Class<Traffic> empty = null;
-        assertThrows(NullPointerException.class, () -> 
EnumUtils.processBitVector(empty, 0L));
+    public void test_getEnum_defaultEnum() {
+        assertEquals(Traffic.RED, EnumUtils.getEnum(Traffic.class, "RED", 
Traffic.AMBER));
+        assertEquals(Traffic.AMBER, EnumUtils.getEnum(Traffic.class, "AMBER", 
Traffic.GREEN));
+        assertEquals(Traffic.GREEN, EnumUtils.getEnum(Traffic.class, "GREEN", 
Traffic.RED));
+        assertEquals(Traffic.AMBER, EnumUtils.getEnum(Traffic.class, "PURPLE", 
Traffic.AMBER));
+        assertEquals(Traffic.GREEN, EnumUtils.getEnum(Traffic.class, "PURPLE", 
Traffic.GREEN));
+        assertEquals(Traffic.RED, EnumUtils.getEnum(Traffic.class, "PURPLE", 
Traffic.RED));
+        assertEquals(Traffic.AMBER, EnumUtils.getEnum(Traffic.class, null, 
Traffic.AMBER));
+        assertEquals(Traffic.GREEN, EnumUtils.getEnum(Traffic.class, null, 
Traffic.GREEN));
+        assertEquals(Traffic.RED, EnumUtils.getEnum(Traffic.class, null, 
Traffic.RED));
+        assertNull(EnumUtils.getEnum(Traffic.class, "PURPLE", null));
     }
 
     @Test
-    public void test_processBitVectors_nullClass() {
-        final Class<Traffic> empty = null;
-        assertThrows(NullPointerException.class, () -> 
EnumUtils.processBitVectors(empty, 0L));
+    public void test_getEnum_nonEnumClass() {
+        final Class rawType = Object.class;
+        assertNull(EnumUtils.getEnum(rawType, "rawType"));
+    }
+
+    @Test
+    public void test_getEnum_nullClass() {
+        assertThrows(NullPointerException.class, () -> 
EnumUtils.getEnum((Class<Traffic>) null, "PURPLE"));
+    }
+
+    @Test
+    public void test_getEnumIgnoreCase() {
+        assertEquals(Traffic.RED, EnumUtils.getEnumIgnoreCase(Traffic.class, 
"red"));
+        assertEquals(Traffic.AMBER, EnumUtils.getEnumIgnoreCase(Traffic.class, 
"Amber"));
+        assertEquals(Traffic.GREEN, EnumUtils.getEnumIgnoreCase(Traffic.class, 
"grEEn"));
+        assertNull(EnumUtils.getEnumIgnoreCase(Traffic.class, "purple"));
+        assertNull(EnumUtils.getEnumIgnoreCase(Traffic.class, null));
+    }
+
+    @Test
+    public void test_getEnumIgnoreCase_defaultEnum() {
+        assertEquals(Traffic.RED, EnumUtils.getEnumIgnoreCase(Traffic.class, 
"red", Traffic.AMBER));
+        assertEquals(Traffic.AMBER, EnumUtils.getEnumIgnoreCase(Traffic.class, 
"Amber", Traffic.GREEN));
+        assertEquals(Traffic.GREEN, EnumUtils.getEnumIgnoreCase(Traffic.class, 
"grEEn", Traffic.RED));
+        assertEquals(Traffic.AMBER, EnumUtils.getEnumIgnoreCase(Traffic.class, 
"PURPLE", Traffic.AMBER));
+        assertEquals(Traffic.GREEN, EnumUtils.getEnumIgnoreCase(Traffic.class, 
"purple", Traffic.GREEN));
+        assertEquals(Traffic.RED, EnumUtils.getEnumIgnoreCase(Traffic.class, 
"pUrPlE", Traffic.RED));
+        assertEquals(Traffic.AMBER, EnumUtils.getEnumIgnoreCase(Traffic.class, 
null, Traffic.AMBER));
+        assertEquals(Traffic.GREEN, EnumUtils.getEnumIgnoreCase(Traffic.class, 
null, Traffic.GREEN));
+        assertEquals(Traffic.RED, EnumUtils.getEnumIgnoreCase(Traffic.class, 
null, Traffic.RED));
+        assertNull(EnumUtils.getEnumIgnoreCase(Traffic.class, "PURPLE", null));
+    }
+
+    @Test
+    public void test_getEnumIgnoreCase_nonEnumClass() {
+        final Class rawType = Object.class;
+        assertNull(EnumUtils.getEnumIgnoreCase(rawType, "rawType"));
+    }
+
+    @Test
+    public void test_getEnumIgnoreCase_nullClass() {
+        assertThrows(NullPointerException.class, () -> 
EnumUtils.getEnumIgnoreCase((Class<Traffic>) null, "PURPLE"));
+    }
+
+    @Test
+    public void test_getEnumList() {
+        final List<Traffic> test = EnumUtils.getEnumList(Traffic.class);
+        assertEquals(3, test.size());
+        assertEquals(Traffic.RED, test.get(0));
+        assertEquals(Traffic.AMBER, test.get(1));
+        assertEquals(Traffic.GREEN, test.get(2));
+    }
+
+    @Test
+    public void test_getEnumMap() {
+        final Map<String, Traffic> test = EnumUtils.getEnumMap(Traffic.class);
+        assertEquals("{RED=RED, AMBER=AMBER, GREEN=GREEN}", test.toString(), 
"getEnumMap not created correctly");
+        assertEquals(3, test.size());
+        assertTrue(test.containsKey("RED"));
+        assertEquals(Traffic.RED, test.get("RED"));
+        assertTrue(test.containsKey("AMBER"));
+        assertEquals(Traffic.AMBER, test.get("AMBER"));
+        assertTrue(test.containsKey("GREEN"));
+        assertEquals(Traffic.GREEN, test.get("GREEN"));
+        assertFalse(test.containsKey("PURPLE"));
+    }
+
+    @Test
+    public void test_isValidEnum() {
+        assertTrue(EnumUtils.isValidEnum(Traffic.class, "RED"));
+        assertTrue(EnumUtils.isValidEnum(Traffic.class, "AMBER"));
+        assertTrue(EnumUtils.isValidEnum(Traffic.class, "GREEN"));
+        assertFalse(EnumUtils.isValidEnum(Traffic.class, "PURPLE"));
+        assertFalse(EnumUtils.isValidEnum(Traffic.class, null));
+    }
+
+    @Test
+    public void test_isValidEnum_nullClass() {
+        assertThrows(NullPointerException.class, () -> 
EnumUtils.isValidEnum(null, "PURPLE"));
+    }
+
+    @Test
+    public void test_isValidEnumIgnoreCase() {
+        assertTrue(EnumUtils.isValidEnumIgnoreCase(Traffic.class, "red"));
+        assertTrue(EnumUtils.isValidEnumIgnoreCase(Traffic.class, "Amber"));
+        assertTrue(EnumUtils.isValidEnumIgnoreCase(Traffic.class, "grEEn"));
+        assertFalse(EnumUtils.isValidEnumIgnoreCase(Traffic.class, "purple"));
+        assertFalse(EnumUtils.isValidEnumIgnoreCase(Traffic.class, null));
+    }
+
+    @Test
+    public void test_isValidEnumIgnoreCase_nullClass() {
+        assertThrows(NullPointerException.class, () -> 
EnumUtils.isValidEnumIgnoreCase(null, "PURPLE"));
     }
 
     @Test
@@ -401,6 +390,17 @@ public class EnumUtilsTest {
     }
 
     @Test
+    public void test_processBitVector_longClass() {
+        assertThrows(IllegalArgumentException.class, () -> 
EnumUtils.processBitVector(TooMany.class, 0L));
+    }
+
+    @Test
+    public void test_processBitVector_nullClass() {
+        final Class<Traffic> empty = null;
+        assertThrows(NullPointerException.class, () -> 
EnumUtils.processBitVector(empty, 0L));
+    }
+
+    @Test
     public void test_processBitVectors() {
         assertEquals(EnumSet.noneOf(Traffic.class), 
EnumUtils.processBitVectors(Traffic.class, 0L));
         assertEquals(EnumSet.of(Traffic.RED), 
EnumUtils.processBitVectors(Traffic.class, 1L));
@@ -438,11 +438,6 @@ public class EnumUtilsTest {
     }
 
     @Test
-    public void test_processBitVector_longClass() {
-        assertThrows(IllegalArgumentException.class, () -> 
EnumUtils.processBitVector(TooMany.class, 0L));
-    }
-
-    @Test
     public void test_processBitVectors_longClass() {
         assertEquals(EnumSet.noneOf(TooMany.class), 
EnumUtils.processBitVectors(TooMany.class, 0L));
         assertEquals(EnumSet.of(TooMany.A), 
EnumUtils.processBitVectors(TooMany.class, 1L));
@@ -485,17 +480,18 @@ public class EnumUtilsTest {
         assertEquals(EnumSet.of(TooMany.A, TooMany.B, TooMany.C, TooMany.M2), 
EnumUtils.processBitVectors(TooMany.class, 9L, 7L));
     }
 
-}
+    @Test
+    public void test_processBitVectors_nullClass() {
+        final Class<Traffic> empty = null;
+        assertThrows(NullPointerException.class, () -> 
EnumUtils.processBitVectors(empty, 0L));
+    }
 
-enum Traffic {
-    RED, AMBER, GREEN
-}
+    @Test
+    public void testConstructable() {
+        // enforce public constructor
+        new EnumUtils();
+    }
 
-enum Enum64 {
-    A00, A01, A02, A03, A04, A05, A06, A07, A08, A09, A10, A11, A12, A13, A14, 
A15,
-    A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, 
A31,
-    A32, A33, A34, A35, A36, A37, A38, A39, A40, A41, A42, A43, A44, A45, A46, 
A47,
-    A48, A49, A50, A51, A52, A53, A54, A55, A56, A57, A58, A59, A60, A61, A62, 
A63
 }
 
 enum TooMany {
@@ -503,3 +499,7 @@ enum TooMany {
     A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, L1, M1, N1, O1, P1, Q1, R1, 
S1, T1,
     U1, V1, W1, X1, Y1, Z1, A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, L2, M2
 }
+
+enum Traffic {
+    RED, AMBER, GREEN
+}

Reply via email to