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
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
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.junit.Assert.*;
import java.lang.reflect.Field;
import java.util.Collections;
import java.util.Map;
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.mapping.context.AbstractMappingContext;
import org.springframework.data.mapping.model.MappingException;
import org.springframework.util.ReflectionUtils;
import com.mongodb.DBRef;
@@ -33,8 +40,12 @@ import com.mongodb.DBRef;
*
* @author Oliver Gierke
*/
@RunWith(MockitoJUnitRunner.class)
public class MongoMappingContextUnitTests {
@Mock
ApplicationContext applicationContext;
@Test
public void addsSelfReferencingPersistentEntityCorrectly() throws Exception {
@@ -58,6 +69,17 @@ public class MongoMappingContextUnitTests {
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 {
@Id