Add [JACKSON-756] unit tests

diff --git a/src/test/org/codehaus/jackson/map/deser/TestEnumDeserialization.java b/src/test/org/codehaus/jackson/map/deser/TestEnumDeserialization.java
index 7233c9b..e540004 100644
--- a/src/test/org/codehaus/jackson/map/deser/TestEnumDeserialization.java
+++ b/src/test/org/codehaus/jackson/map/deser/TestEnumDeserialization.java
@@ -1,6 +1,7 @@
 package org.codehaus.jackson.map.deser;
 
 import java.util.EnumMap;
+import java.util.EnumSet;
 import java.util.concurrent.TimeUnit;
 
 import org.codehaus.jackson.*;
@@ -49,7 +50,7 @@
             return null;
         }
     }
-
+    
     protected enum LowerCaseEnum {
         A, B, C;
         private LowerCaseEnum() { }
@@ -195,5 +196,31 @@
         assertEquals(String.valueOf(TestEnum.RULES.ordinal()), json);
         TestEnum result = mapper.readValue(json, TestEnum.class);
         assertSame(TestEnum.RULES, result);
-    }        
+    }
+
+   // [JACKSON-756]
+   public void testEnumWithCreatorEnumMaps() throws Exception
+   {
+	 ObjectMapper mapper = new ObjectMapper();
+	 EnumMap<EnumWithCreator,String> value = mapper.readValue("{\"enumA\":\"value\"}",
+		 new TypeReference<EnumMap<EnumWithCreator,String>>() {});
+	 assertEquals("value", value.get(EnumWithCreator.A));
+   }
+
+   // [JACKSON-756]
+   public void testEnumWithCreatorMaps() throws Exception
+   {
+	 ObjectMapper mapper = new ObjectMapper();
+	 java.util.HashMap<EnumWithCreator,String> value = mapper.readValue("{\"enumA\":\"value\"}",
+		 new TypeReference<java.util.HashMap<EnumWithCreator,String>>() {});
+	 assertEquals("value", value.get(EnumWithCreator.A));
+   }
+
+   public void testEnumWithCreatorEnumSets() throws Exception
+   {
+         ObjectMapper mapper = new ObjectMapper();
+         EnumSet<EnumWithCreator> value = mapper.readValue("[\"enumA\"]",
+                 new TypeReference<EnumSet<EnumWithCreator>>() {});
+         assertTrue(value.contains(EnumWithCreator.A));
+   }
 }