From 96922735a51d57ba0b7cfc398c8f86bcd54a7a64 Mon Sep 17 00:00:00 2001 From: Oliver Drotbohm Date: Thu, 20 Dec 2018 16:13:14 +0100 Subject: [PATCH] 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. --- ...MetamodelCacheCleanupIntegrationTests.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/test/java/org/springframework/data/jpa/util/JpaMetamodelCacheCleanupIntegrationTests.java b/src/test/java/org/springframework/data/jpa/util/JpaMetamodelCacheCleanupIntegrationTests.java index 72f848ecc..1e6e81e0e 100644 --- a/src/test/java/org/springframework/data/jpa/util/JpaMetamodelCacheCleanupIntegrationTests.java +++ b/src/test/java/org/springframework/data/jpa/util/JpaMetamodelCacheCleanupIntegrationTests.java @@ -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(); + } }