DATAJPA-1487 - Added integration tests for bean definition registration for JpaMetamodelCacheCleanup.

Back-ported integration tests for eager bean definition registration of JpaMetamodelCacheCleanup.

Related tickets: DATAJPA-1446.
This commit is contained in:
Oliver Drotbohm
2018-12-20 16:13:14 +01:00
parent ac84770483
commit 96922735a5

View File

@@ -16,6 +16,7 @@
package org.springframework.data.jpa.util;
import static org.assertj.core.api.Assertions.*;
import static org.mockito.Mockito.*;
import javax.persistence.metamodel.Metamodel;
@@ -23,7 +24,11 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.context.support.GenericApplicationContext;
import org.springframework.data.jpa.repository.config.JpaRepositoryConfigExtension;
import org.springframework.data.repository.config.RepositoryConfigurationExtension;
import org.springframework.data.repository.config.RepositoryConfigurationSource;
/**
* Integration tests for {@link JpaMetamodelCacheCleanup}.
@@ -50,4 +55,19 @@ public class JpaMetamodelCacheCleanupIntegrationTests {
assertThat(model).isNotSameAs(JpaMetamodel.of(metamodel));
}
@Test // DATAJPA-1487, DATAJPA-1446
public void registersCleanupBeanAsNonLazy() {
DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
RepositoryConfigurationSource configurationSource = mock(RepositoryConfigurationSource.class);
RepositoryConfigurationExtension extension = new JpaRepositoryConfigExtension();
extension.registerBeansForRoot(beanFactory, configurationSource);
String[] cleanupBeanNames = beanFactory.getBeanNamesForType(JpaMetamodelCacheCleanup.class);
assertThat(cleanupBeanNames.length).isEqualTo(1);
assertThat(beanFactory.getBeanDefinition(cleanupBeanNames[0]).isLazyInit()).isFalse();
}
}