Add some test cases for Enum to Enum coercion
authormarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Sat, 16 Jan 2010 10:49:25 +0000 (10:49 +0000)
committermarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Sat, 16 Jan 2010 10:49:25 +0000 (10:49 +0000)
git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@899918 13f79535-47bb-0310-9956-ffa450edef68

test/org/apache/el/lang/TestELSupport.java

index 4851931..4b1eed6 100644 (file)
@@ -19,6 +19,8 @@ package org.apache.el.lang;
 import java.math.BigDecimal;
 import java.math.BigInteger;
 
+import javax.el.ELException;
+
 import junit.framework.TestCase;
 
 public class TestELSupport extends TestCase {
@@ -66,8 +68,51 @@ public class TestELSupport extends TestCase {
         Object output = ELSupport.coerceToType(null, Number.class);
         assertEquals(Long.valueOf(0), output);
     }
+    
+    public void testCoerceEnumAToEnumA() {
+        Object output = null;
+        try {
+            output = ELSupport.coerceToEnum(TestEnumA.VALA1, TestEnumA.class);
+        } finally {
+            assertEquals(TestEnumA.VALA1, output);
+        }
+    }
+    
+    public void testCoerceEnumAToEnumB() {
+        Object output = null;
+        try {
+            output = ELSupport.coerceToEnum(TestEnumA.VALA1, TestEnumB.class);
+        } catch (ELException ele) {
+            // Ignore
+        }
+        assertNull(output);
+    }
+
+    public void testCoerceEnumAToEnumC() {
+        Object output = null;
+        try {
+            output = ELSupport.coerceToEnum(TestEnumA.VALA1, TestEnumC.class);
+        } finally {
+            assertEquals(TestEnumC.VALA1, output);
+        }
+    }
 
     private static void testIsSame(Object value) {
         assertEquals(value, ELSupport.coerceToNumber(value, value.getClass()));
     }
+    
+    private static enum TestEnumA {
+        VALA1,
+        VALA2
+    }
+    private static enum TestEnumB {
+        VALB1,
+        VALB2
+    }
+    private static enum TestEnumC {
+        VALA1,
+        VALA2,
+        VALB1,
+        VALB2
+    }
 }