@@ -462,6 +462,29 @@ public void testCast() {
462462 assertEquals (5 , intToNumber .intValue ());
463463 }
464464
465+ /** Tests {@link Types#enumValue(String, Class)}. */
466+ @ Test
467+ public void testEnumValue () {
468+ final Words foo = Types .enumValue ("FOO" , Words .class );
469+ assertSame (Words .FOO , foo );
470+ final Words bar = Types .enumValue ("BAR" , Words .class );
471+ assertSame (Words .BAR , bar );
472+ final Words fubar = Types .enumValue ("FUBAR" , Words .class );
473+ assertSame (Words .FUBAR , fubar );
474+ }
475+
476+ /** Tests {@link Types#enumValue(String, Class)} for invalid value. */
477+ @ Test (expected = IllegalArgumentException .class )
478+ public void testEnumValueNoConstant () {
479+ Types .enumValue ("NONE" , Words .class );
480+ }
481+
482+ /** Tests {@link Types#enumValue(String, Class)} for non-enum class. */
483+ @ Test (expected = IllegalArgumentException .class )
484+ public void testEnumValueNonEnum () {
485+ Types .enumValue ("HOOYAH" , String .class );
486+ }
487+
465488 // -- Helper classes --
466489
467490 private static class Thing <T > {
@@ -483,6 +506,11 @@ private static class ComplexThing<T extends Serializable & Cloneable> extends
483506 // NB: No implementation needed.
484507 }
485508
509+ /** Enumeration for testing conversion to enum types. */
510+ public static enum Words {
511+ FOO , BAR , FUBAR
512+ }
513+
486514 // -- Helper methods --
487515
488516 /** Convenience method to get the {@link Type} of a field. */
0 commit comments