diff --git a/src/main/java/org/springframework/data/mapping/context/AbstractMappingContext.java b/src/main/java/org/springframework/data/mapping/context/AbstractMappingContext.java index c0906df35..baee40405 100644 --- a/src/main/java/org/springframework/data/mapping/context/AbstractMappingContext.java +++ b/src/main/java/org/springframework/data/mapping/context/AbstractMappingContext.java @@ -239,6 +239,10 @@ public abstract class AbstractMappingContext typeInfo = persistentProperty.getTypeInformation(); return getPersistentEntity(typeInfo.getRequiredActualType()); } diff --git a/src/test/java/org/springframework/data/mapping/context/AbstractMappingContextUnitTests.java b/src/test/java/org/springframework/data/mapping/context/AbstractMappingContextUnitTests.java index 67d5ea4ed..418f7a689 100755 --- a/src/test/java/org/springframework/data/mapping/context/AbstractMappingContextUnitTests.java +++ b/src/test/java/org/springframework/data/mapping/context/AbstractMappingContextUnitTests.java @@ -20,6 +20,7 @@ import static org.mockito.Mockito.*; import groovy.lang.MetaClass; +import java.time.LocalDateTime; import java.util.Collections; import java.util.Iterator; import java.util.List; @@ -49,13 +50,12 @@ import org.springframework.util.StringUtils; */ public class AbstractMappingContextUnitTests { - final SimpleTypeHolder holder = SimpleTypeHolder.DEFAULT; SampleMappingContext context; @Before public void setUp() { context = new SampleMappingContext(); - context.setSimpleTypeHolder(holder); + context.setSimpleTypeHolder(new SimpleTypeHolder(Collections.singleton(LocalDateTime.class), true)); } @Test @@ -96,16 +96,15 @@ public class AbstractMappingContextUnitTests { @Test public void registersEntitiesOnInitialization() { - ApplicationContext context = mock(ApplicationContext.class); + ApplicationContext applicationContext = mock(ApplicationContext.class); - SampleMappingContext mappingContext = new SampleMappingContext(); - mappingContext.setInitialEntitySet(Collections.singleton(Person.class)); - mappingContext.setApplicationEventPublisher(context); + context.setInitialEntitySet(Collections.singleton(Person.class)); + context.setApplicationEventPublisher(applicationContext); - verify(context, times(0)).publishEvent(Mockito.any(ApplicationEvent.class)); + verify(applicationContext, times(0)).publishEvent(Mockito.any(ApplicationEvent.class)); - mappingContext.afterPropertiesSet(); - verify(context, times(1)).publishEvent(Mockito.any(ApplicationEvent.class)); + context.afterPropertiesSet(); + verify(applicationContext, times(1)).publishEvent(Mockito.any(ApplicationEvent.class)); } @Test // DATACMNS-214 @@ -247,13 +246,20 @@ public class AbstractMappingContextUnitTests { @Test // DATACMNS-1208 public void ensureHasPersistentEntityReportsFalseForTypesThatShouldntBeCreated() { - SampleMappingContext context = new SampleMappingContext(); - assertThat(context.hasPersistentEntityFor(String.class)).isFalse(); assertThat(context.getPersistentEntity(String.class)).isNull(); assertThat(context.hasPersistentEntityFor(String.class)).isFalse(); } + @Test // DATACMNS-1214 + public void doesNotReturnPersistentEntityForCustomSimpleTypeProperty() { + + PersistentEntity entity = context.getRequiredPersistentEntity(Person.class); + SamplePersistentProperty property = entity.getRequiredPersistentProperty("date"); + + assertThat(context.getPersistentEntity(property)).isNull(); + } + private static void assertHasEntityFor(Class type, SampleMappingContext context, boolean expected) { boolean found = false; @@ -272,6 +278,7 @@ public class AbstractMappingContextUnitTests { class Person { String name; + LocalDateTime date; } class Unsupported {