@@ -0,0 +1,3013 @@
+/*%0A * Copyright 2012-2022 the original author or authors.%0A *%0A * Licensed under the Apache License, Version 2.0 (the %22License%22);%0A * you may not use this file except in compliance with the License.%0A * You may obtain a copy of the License at%0A *%0A *      https://www.apache.org/licenses/LICENSE-2.0%0A *%0A * Unless required by applicable law or agreed to in writing, software%0A * distributed under the License is distributed on an %22AS IS%22 BASIS,%0A * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A * See the License for the specific language governing permissions and%0A * limitations under the License.%0A */%0A%0Apackage org.springframework.boot.context.properties.bind;%0A%0Aimport org.junit.jupiter.api.Test;%0Aimport org.springframework.aot.hint.RuntimeHints;%0Aimport org.springframework.aot.hint.predicate.RuntimeHintsPredicates;%0Aimport org.springframework.boot.context.properties.BoundConfigurationProperties;%0Aimport org.springframework.boot.context.properties.ConfigurationPropertiesBean;%0A%0Aimport java.util.Arrays;%0Aimport java.util.List;%0Aimport java.util.Set;%0A%0Aimport static org.assertj.core.api.Assertions.assertThat;%0A%0A/**%0A * Tests for %7B@link BindableRuntimeHintsRegistrar%7D.%0A *%0A * @author Tumit Watcharapol%0A */%0Aclass BindableRuntimeHintsRegistrarTests %7B%0A%0A%09@Test%0A%09void shouldRegisterHints() %7B%0A%0A%09%09RuntimeHints runtimeHints = new RuntimeHints();%0A%0A%09%09Class%3C?%3E%5B%5D types = %7B BoundConfigurationProperties.class, ConfigurationPropertiesBean.class %7D;%0A%0A%09%09BindableRuntimeHintsRegistrar registrar = new BindableRuntimeHintsRegistrar(types);%0A%0A%09%09registrar.registerHints(runtimeHints, getClass().getClassLoader());%0A%0A%09%09for (Class%3C?%3E type : types) %7B%0A%09%09%09assertThat(RuntimeHintsPredicates.reflection().onType(type)).accepts(runtimeHints);%0A%09%09%7D%0A%0A%09%7D%0A%0A%09@Test%0A%09void shouldNoRegisterHints() %7B%0A%0A%09%09RuntimeHints runtimeHints = new RuntimeHints();%0A%09%09BindableRuntimeHintsRegistrar registrar = new BindableRuntimeHintsRegistrar();%0A%0A%09%09registrar.registerHints(runtimeHints);%0A%0A%09%09assertThat(RuntimeHintsPredicates.reflection().onType(BoundConfigurationProperties.class))%0A%09%09%09%09.rejects(runtimeHints);%0A%09%7D%0A%0A%09@Test%0A%09void shouldRegisterHintsForTypes() %7B%0A%0A%09%09RuntimeHints runtimeHints = new RuntimeHints();%0A%0A%09%09Class%3C?%3E%5B%5D types = %7B BoundConfigurationProperties.class, ConfigurationPropertiesBean.class %7D;%0A%0A%09%09BindableRuntimeHintsRegistrar registrar = BindableRuntimeHintsRegistrar.forTypes(types);%0A%0A%09%09registrar.registerHints(runtimeHints);%0A%0A%09%09for (Class%3C?%3E type : types) %7B%0A%09%09%09assertThat(RuntimeHintsPredicates.reflection().onType(type)).accepts(runtimeHints);%0A%09%09%7D%0A%0A%09%7D%0A%0A%09@Test%0A%09void shouldRegisterHintsForTypesIterable() %7B%0A%0A%09%09RuntimeHints runtimeHints = new RuntimeHints();%0A%0A%09%09List%3CClass%3C?%3E%3E types = Arrays.asList(BoundConfigurationProperties.class, ConfigurationPropertiesBean.class);%0A%0A%09%09BindableRuntimeHintsRegistrar registrar = BindableRuntimeHintsRegistrar.forTypes(types);%0A%0A%09%09registrar.registerHints(runtimeHints);%0A%0A%09%09for (Class%3C?%3E type : types) %7B%0A%09%09%09assertThat(RuntimeHintsPredicates.reflection().onType(type)).accepts(runtimeHints);%0A%09%09%7D%0A%0A%09%7D%0A%0A%7D%0A

Add tests for BindableRuntimeHintsRegistrar