diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/mapping/BasicMongoPersistentEntity.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/mapping/BasicMongoPersistentEntity.java index c99c0eef8..b4f4f1a2b 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/mapping/BasicMongoPersistentEntity.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/mapping/BasicMongoPersistentEntity.java @@ -284,7 +284,7 @@ public class BasicMongoPersistentEntity extends BasicPersistentEntity entity = new BasicMongoPersistentEntity( + ClassTypeInformation.from(AnyDocument.class)); + + when(propertyMock.isExplicitLanguageProperty()).thenReturn(true); + when(propertyMock.getActualType()).thenReturn((Class) Number.class); + + entity.addPersistentProperty(propertyMock); + entity.verify(); + } + + /** + * @see DATAMONGO-1053 + */ + @SuppressWarnings({ "unchecked", "rawtypes" }) + @Test + public void verifyShouldPassForStringAsExplicitLanguageProperty() { + + BasicMongoPersistentEntity entity = new BasicMongoPersistentEntity( + ClassTypeInformation.from(AnyDocument.class)); + when(propertyMock.isExplicitLanguageProperty()).thenReturn(true); + when(propertyMock.getActualType()).thenReturn((Class) String.class); + entity.addPersistentProperty(propertyMock); + + entity.verify(); + + verify(propertyMock, times(1)).isExplicitLanguageProperty(); + verify(propertyMock, times(1)).getActualType(); + } + + /** + * @see DATAMONGO-1053 + */ + @SuppressWarnings({ "unchecked", "rawtypes" }) + @Test + public void verifyShouldIgnoreNonExplicitLanguageProperty() { + + BasicMongoPersistentEntity entity = new BasicMongoPersistentEntity( + ClassTypeInformation.from(AnyDocument.class)); + when(propertyMock.isExplicitLanguageProperty()).thenReturn(false); + when(propertyMock.getActualType()).thenReturn((Class) Number.class); + entity.addPersistentProperty(propertyMock); + + entity.verify(); + + verify(propertyMock, times(1)).isExplicitLanguageProperty(); + verify(propertyMock, never()).getActualType(); + } + @Document(collection = "contacts") class Contact { @@ -111,4 +168,8 @@ public class BasicMongoPersistentEntityUnitTests { static class DocumentWithLanguage { } + + static class AnyDocument { + + } }