DATAMONGO-530 - Fixed propagation of setApplicationContext(…) in MappingMongoConverter.

This commit is contained in:
Oliver Gierke
2012-09-06 16:06:47 +02:00
parent aaa44b3369
commit 05a8148084
2 changed files with 24 additions and 0 deletions

View File

@@ -83,6 +83,8 @@ public class MongoMappingContext extends AbstractMappingContext<BasicMongoPersis
*/ */
@Override @Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.context = applicationContext; this.context = applicationContext;
super.setApplicationContext(applicationContext);
} }
} }

View File

@@ -19,12 +19,19 @@ package org.springframework.data.mongodb.core.mapping;
import static org.hamcrest.CoreMatchers.*; import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.*; import static org.junit.Assert.*;
import java.lang.reflect.Field;
import java.util.Collections; import java.util.Collections;
import java.util.Map; import java.util.Map;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.springframework.context.ApplicationContext;
import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Id;
import org.springframework.data.mapping.context.AbstractMappingContext;
import org.springframework.data.mapping.model.MappingException; import org.springframework.data.mapping.model.MappingException;
import org.springframework.util.ReflectionUtils;
import com.mongodb.DBRef; import com.mongodb.DBRef;
@@ -33,8 +40,12 @@ import com.mongodb.DBRef;
* *
* @author Oliver Gierke * @author Oliver Gierke
*/ */
@RunWith(MockitoJUnitRunner.class)
public class MongoMappingContextUnitTests { public class MongoMappingContextUnitTests {
@Mock
ApplicationContext applicationContext;
@Test @Test
public void addsSelfReferencingPersistentEntityCorrectly() throws Exception { public void addsSelfReferencingPersistentEntityCorrectly() throws Exception {
@@ -58,6 +69,17 @@ public class MongoMappingContextUnitTests {
assertThat(context.getPersistentEntity(DBRef.class), is(nullValue())); assertThat(context.getPersistentEntity(DBRef.class), is(nullValue()));
} }
@Test
public void populatesAbstractMappingContextsApplicationCorrectly() {
MongoMappingContext context = new MongoMappingContext();
context.setApplicationContext(applicationContext);
Field field = ReflectionUtils.findField(AbstractMappingContext.class, "applicationContext");
ReflectionUtils.makeAccessible(field);
assertThat(ReflectionUtils.getField(field, context), is(notNullValue()));
}
class ClassWithMultipleIdProperties { class ClassWithMultipleIdProperties {
@Id @Id