From e35140d54f697f93dfccda344727857328c82a4f Mon Sep 17 00:00:00 2001 From: Moritz Halbritter Date: Tue, 19 Jul 2022 16:29:21 +0200 Subject: [PATCH] Add tests for SpringApplicationRuntimeHints --- .../boot/SpringApplicationTests.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/SpringApplicationTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/SpringApplicationTests.java index 732ba63cdf..5326bddcb4 100644 --- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/SpringApplicationTests.java +++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/SpringApplicationTests.java @@ -41,6 +41,9 @@ import org.mockito.InOrder; import org.mockito.Mockito; import reactor.core.publisher.Mono; +import org.springframework.aot.hint.MemberCategory; +import org.springframework.aot.hint.RuntimeHints; +import org.springframework.aot.hint.predicate.RuntimeHintsPredicates; import org.springframework.beans.CachedIntrospectionResults; import org.springframework.beans.factory.BeanCreationException; import org.springframework.beans.factory.BeanCurrentlyInCreationException; @@ -53,6 +56,7 @@ import org.springframework.beans.factory.support.BeanDefinitionRegistry; import org.springframework.beans.factory.support.BeanNameGenerator; import org.springframework.beans.factory.support.DefaultBeanNameGenerator; import org.springframework.boot.BootstrapRegistry.InstanceSupplier; +import org.springframework.boot.SpringApplication.SpringApplicationRuntimeHints; import org.springframework.boot.SpringApplicationHooks.Hook; import org.springframework.boot.availability.AvailabilityChangeEvent; import org.springframework.boot.availability.AvailabilityState; @@ -1301,6 +1305,15 @@ class SpringApplicationTests { assertThat(this.context.isRunning()).isFalse(); } + @Test + void shouldRegisterHints() { + RuntimeHints hints = new RuntimeHints(); + new SpringApplicationRuntimeHints().registerHints(hints, getClass().getClassLoader()); + assertThat(RuntimeHintsPredicates.reflection().onType(SpringApplication.class) + .withMemberCategories(MemberCategory.INVOKE_DECLARED_METHODS, MemberCategory.INVOKE_PUBLIC_METHODS)) + .accepts(hints); + } + private ArgumentMatcher isAvailabilityChangeEventWithState( S state) { return (argument) -> (argument instanceof AvailabilityChangeEvent)