diff --git a/generators/spring-boot/generator.ts b/generators/spring-boot/generator.ts index 6a6e7a9e679..5c6c29d0ed3 100644 --- a/generators/spring-boot/generator.ts +++ b/generators/spring-boot/generator.ts @@ -282,14 +282,18 @@ export default class SpringBootGenerator extends BaseApplicationGenerator { (application.backendType ?? 'Java') === 'Java' && (ADD_SPRING_MILESTONE_REPOSITORY || SPRING_BOOT_VERSION.includes('M') || SPRING_BOOT_VERSION.includes('RC')); }, - prepare({ application }) { - application.requiresDeleteAllUsers = - application.authenticationTypeOauth2 || - (application.reactive && application.databaseTypeSql) || - (!application.reactive && application.databaseTypeMongodb); - - application.reactorBlock = application.reactive ? '.block()' : ''; - application.reactorBlockOptional = application.reactive ? '.blockOptional()' : ''; + prepare({ application, applicationDefaults }) { + const { reactive } = application; + applicationDefaults({ + __override__: false, + requiresDeleteAllUsers: data => + data.authenticationTypeOauth2 || + (reactive && data.databaseTypeSql) || + (!reactive && data.databaseTypeMongodb) || + (!reactive && data.databaseTypeCassandra), + reactorBlock: reactive ? '.block()' : '', + reactorBlockOptional: reactive ? '.blockOptional()' : '', + }); }, registerSpringFactory({ source, application }) { source.addTestSpringFactory = ({ key, value }) => { diff --git a/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/service/UserServiceIT.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/service/UserServiceIT.java.ejs index 01bdab1690c..9f5188226d4 100644 --- a/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/service/UserServiceIT.java.ejs +++ b/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/service/UserServiceIT.java.ejs @@ -128,6 +128,11 @@ import static org.mockito.Mockito.any; <%_ if (databaseTypeSql && !reactive && !authenticationTypeOauth2) { _%> import static org.mockito.Mockito.when; <%_ } _%> +<%_ if (cacheProviderAny) { _%> +import org.springframework.cache.CacheManager; +import org.springframework.cache.Cache; +import java.util.Objects; +<%_ } _%> /** * Integration tests for {@link UserService}. @@ -146,6 +151,11 @@ class UserServiceIT { private static final String DEFAULT_LASTNAME = "doe"; +<%_ if (cacheProviderAny) { _%> + @Autowired + private CacheManager cacheManager; + +<%_ } _%> <%_ if (!databaseTypeCassandra) { _%> private static final String DEFAULT_IMAGEURL = "http://placehold.it/50x50"; @@ -246,6 +256,12 @@ class UserServiceIT { @AfterEach public void cleanupAndCheck() { +<%_ if (cacheProviderAny) { _%> + cacheManager.getCacheNames().stream() + .map(cacheName -> this.cacheManager.getCache(cacheName)) + .filter(Objects::nonNull) + .forEach(Cache::clear); +<%_ } _%> <%_ if ((databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j || databaseTypeCouchbase) && authenticationTypeSession && !reactive) { _%> persistentTokenRepository.deleteAll(); <%_ } _%> diff --git a/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/PublicUserResourceIT.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/PublicUserResourceIT.java.ejs index f9edba2678b..ef720da7b5c 100644 --- a/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/PublicUserResourceIT.java.ejs +++ b/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/PublicUserResourceIT.java.ejs @@ -50,6 +50,8 @@ import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMock <%_ } _%> <%_ if (cacheProviderAny) { _%> import org.springframework.cache.CacheManager; +import org.springframework.cache.Cache; +import java.util.Objects; <%_ } _%> <%_ if (cacheProviderMemcached) { _%> import org.springframework.cache.support.NoOpCacheManager; @@ -161,14 +163,6 @@ class PublicUserResourceIT { numberOfUsers = userRepository.count()<%- reactorBlock %>; } -<%_ } _%> -<%_ if (cacheProviderAny) { _%> - @BeforeEach - public void setup() { - cacheManager.getCache(UserRepository.USERS_BY_LOGIN_CACHE).clear(); - cacheManager.getCache(UserRepository.USERS_BY_EMAIL_CACHE).clear(); - } - <%_ } _%> <%_ if (reactive && authenticationUsesCsrf) { _%> @BeforeEach @@ -184,6 +178,12 @@ class PublicUserResourceIT { @AfterEach public void cleanupAndCheck() { +<%_ if (cacheProviderAny) { _%> + cacheManager.getCacheNames().stream() + .map(cacheName -> this.cacheManager.getCache(cacheName)) + .filter(Objects::nonNull) + .forEach(Cache::clear); +<%_ } _%> <%_ if (requiresDeleteAllUsers) { _%> <%_ if (databaseTypeSql && reactive) { _%> userRepository.deleteAllUserAuthorities()<%- reactorBlock %>; diff --git a/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/UserResourceIT.java.ejs b/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/UserResourceIT.java.ejs index cb8d5f92660..68e8222dad1 100644 --- a/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/UserResourceIT.java.ejs +++ b/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/UserResourceIT.java.ejs @@ -62,6 +62,8 @@ import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMock <%_ } _%> <%_ if (cacheProviderAny) { _%> import org.springframework.cache.CacheManager; +import org.springframework.cache.Cache; +import java.util.Objects; <%_ } _%> <%_ if (cacheProviderMemcached) { _%> import org.springframework.cache.support.NoOpCacheManager; @@ -215,14 +217,6 @@ class UserResourceIT { numberOfUsers = userRepository.count()<%- reactorBlock %>; } -<%_ } _%> -<%_ if (cacheProviderAny) { _%> - @BeforeEach - public void setup() { - cacheManager.getCache(UserRepository.USERS_BY_LOGIN_CACHE).clear(); - cacheManager.getCache(UserRepository.USERS_BY_EMAIL_CACHE).clear(); - } - <%_ } _%> <%_ if (reactive && authenticationUsesCsrf) { _%> @BeforeEach @@ -287,6 +281,12 @@ class UserResourceIT { @AfterEach public void cleanupAndCheck() { +<%_ if (cacheProviderAny) { _%> + cacheManager.getCacheNames().stream() + .map(cacheName -> this.cacheManager.getCache(cacheName)) + .filter(Objects::nonNull) + .forEach(Cache::clear); +<%_ } _%> <%_ if (requiresDeleteAllUsers) { _%> <%_ if (databaseTypeSql && reactive) { _%> userRepository.deleteAllUserAuthorities()<%- reactorBlock %>;