diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/SimpleMongoConverterTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/SimpleMongoConverterTests.java index 3ebe394b0..38531243d 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/SimpleMongoConverterTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/SimpleMongoConverterTests.java @@ -30,6 +30,8 @@ import java.util.Map; import org.junit.Assert; import org.junit.Test; import org.springframework.data.document.mongodb.SimpleMongoConverter; +import org.springframework.data.document.mongodb.SomeEnumTest.NumberEnum; +import org.springframework.data.document.mongodb.SomeEnumTest.StringEnum; import org.springframework.util.ReflectionUtils; import com.mongodb.BasicDBObject; @@ -164,6 +166,25 @@ public class SimpleMongoConverterTests { return tb; } + @Test + public void objectWithEnumTypes() { + SomeEnumTest test = new SomeEnumTest(); + test.setId("123AAA"); + test.setName("Sven"); + test.setStringEnum(StringEnum.ONE); + test.setNumberEnum(NumberEnum.FIVE); + SimpleMongoConverter converter = createConverter(); + DBObject dbo = new BasicDBObject(); + converter.write(test, dbo); + + SomeEnumTest results = (SomeEnumTest) converter.read(SomeEnumTest.class, dbo); + Assert.assertNotNull(results); + Assert.assertEquals(test.getId(), results.getId()); + Assert.assertEquals(test.getName(), results.getName()); + Assert.assertEquals(test.getStringEnum(), results.getStringEnum()); + Assert.assertEquals(test.getNumberEnum(), results.getNumberEnum()); +} + @Test public void testReflection() { Portfolio p = createPortfolioWithManagers(); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/SomeEnumTest.java b/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/SomeEnumTest.java new file mode 100644 index 000000000..c2a8b03fb --- /dev/null +++ b/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/SomeEnumTest.java @@ -0,0 +1,64 @@ +package org.springframework.data.document.mongodb; + +public class SomeEnumTest { + + public enum StringEnum { + ONE, TWO, FIVE; + } + + public enum NumberEnum { + ONE (1), TWO (2), FIVE(5); + + private int value; + + public int value() { + return value; + } + + NumberEnum(int value) { + this.value = value; + } + + } + + private StringEnum stringEnum; + + private NumberEnum numberEnum; + + private String id; + + private String name; + + public StringEnum getStringEnum() { + return stringEnum; + } + + public void setStringEnum(StringEnum stringEnum) { + this.stringEnum = stringEnum; + } + + public NumberEnum getNumberEnum() { + return numberEnum; + } + + public void setNumberEnum(NumberEnum numberEnum) { + this.numberEnum = numberEnum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + +}