DATAMONGO-717 - Forward port of test case.

Added a testcase to show the lifecycle callbacks are invoked in the appropriate order.
This commit is contained in:
Oliver Gierke
2013-07-10 23:07:08 +02:00
parent 84df02ae38
commit de7120d8dd

View File

@@ -25,8 +25,11 @@ import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.MongoDbFactory;
import org.springframework.data.mongodb.core.mapping.BasicMongoPersistentEntity;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.MongoMappingContext;
import org.springframework.expression.spel.support.StandardEvaluationContext;
import org.springframework.test.util.ReflectionTestUtils;
import com.mongodb.Mongo;
@@ -37,8 +40,7 @@ import com.mongodb.Mongo;
*/
public class AbstractMongoConfigurationUnitTests {
@Rule
public ExpectedException exception = ExpectedException.none();
@Rule public ExpectedException exception = ExpectedException.none();
/**
* @see DATAMONGO-496
@@ -97,6 +99,20 @@ public class AbstractMongoConfigurationUnitTests {
assertThat(context.getPersistentEntities(), is(not(emptyIterable())));
}
/**
* @see DATAMONGO-717
*/
@Test
public void lifecycleCallbacksAreInvokedInAppropriateOrder() {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(SampleMongoConfiguration.class);
MongoMappingContext mappingContext = context.getBean(MongoMappingContext.class);
BasicMongoPersistentEntity<?> entity = mappingContext.getPersistentEntity(Entity.class);
StandardEvaluationContext spElContext = (StandardEvaluationContext) ReflectionTestUtils.getField(entity, "context");
assertThat(spElContext.getBeanResolver(), is(notNullValue()));
}
private static void assertScanningDisabled(final String value) throws ClassNotFoundException {
AbstractMongoConfiguration configuration = new SampleMongoConfiguration() {