Skip to content

Commit 03900e6

Browse files
committed
Add Spring factories test for initializers
Add a unit test that verifies ApplicationContextInitializer implementations are discovered via Spring factories. The test uses SpringFactoriesLoaderUtils.loadFactoryClasses to load ApplicationContextInitializer classes, asserts there are four entries, checks they are assignable from ConfigurableApplicationContextInitializer, and verifies the specific initializer classes (AutoRegistrationBeanInitializer, EventPublishingBeanInitializer, ListenableAutowireCandidateResolverInitializer, ListenableConfigurableEnvironmentInitializer) are present. Necessary imports and a static import were added to the test file.
1 parent b5f9071 commit 03900e6

1 file changed

Lines changed: 20 additions & 0 deletions

File tree

microsphere-spring-context/src/test/java/io/microsphere/spring/context/ConfigurableApplicationContextInitializerTest.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,21 @@
1818
package io.microsphere.spring.context;
1919

2020

21+
import io.microsphere.spring.beans.factory.support.ListenableAutowireCandidateResolverInitializer;
22+
import io.microsphere.spring.context.annotation.AutoRegistrationBeanInitializer;
23+
import io.microsphere.spring.context.event.EventPublishingBeanInitializer;
24+
import io.microsphere.spring.core.env.ListenableConfigurableEnvironmentInitializer;
2125
import org.junit.Before;
2226
import org.junit.Test;
27+
import org.springframework.context.ApplicationContextInitializer;
2328
import org.springframework.context.ConfigurableApplicationContext;
2429
import org.springframework.context.support.GenericApplicationContext;
2530
import org.springframework.core.env.ConfigurableEnvironment;
2631
import org.springframework.mock.env.MockEnvironment;
2732

33+
import java.util.Set;
34+
35+
import static io.microsphere.spring.core.io.support.SpringFactoriesLoaderUtils.loadFactoryClasses;
2836
import static org.junit.Assert.assertEquals;
2937
import static org.junit.Assert.assertFalse;
3038
import static org.junit.Assert.assertSame;
@@ -80,6 +88,18 @@ public void testGetEnabledPropertyName() {
8088
getEnabledPropertyName());
8189
}
8290

91+
@Test
92+
public void testSpringFactories() {
93+
Set<Class<ApplicationContextInitializer>> factoryClasses = loadFactoryClasses(ApplicationContextInitializer.class);
94+
assertEquals(4, factoryClasses.size());
95+
factoryClasses.forEach(factoryClass ->
96+
assertTrue(ConfigurableApplicationContextInitializer.class.isAssignableFrom(factoryClass)));
97+
assertTrue(factoryClasses.contains(AutoRegistrationBeanInitializer.class));
98+
assertTrue(factoryClasses.contains(EventPublishingBeanInitializer.class));
99+
assertTrue(factoryClasses.contains(ListenableAutowireCandidateResolverInitializer.class));
100+
assertTrue(factoryClasses.contains(ListenableConfigurableEnvironmentInitializer.class));
101+
}
102+
83103
@Override
84104
protected void initialize(ConfigurableApplicationContext context, ConfigurableEnvironment environment) {
85105
this.context = context;

0 commit comments

Comments
 (0)