This is an automated email from the ASF dual-hosted git repository. dahn pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/main by this push: new 1a9efe8de3c Add unit tests for getConfigResources in ModuleDefinitionSet and improve context readability (#11042) 1a9efe8de3c is described below commit 1a9efe8de3c14fb85d3b4afa24b29088029117de Author: Suyang(Dawson) Chen <dawson0...@gmail.com> AuthorDate: Mon Jul 28 05:37:01 2025 -0400 Add unit tests for getConfigResources in ModuleDefinitionSet and improve context readability (#11042) --- .../factory/ModuleBasedContextFactoryTest.java | 79 +++++++++++++++++----- ...nheritable.xml => base-context-inheritable.xml} | 0 .../base/{test-context.xml => base-context.xml} | 0 .../{test-context.xml => child1-1-context.xml} | 0 ...override.xml => child1-context-inheritable.xml} | 12 +--- ...xt-override.xml => child1-context-override.xml} | 0 .../{test-context.xml => child1-context.xml} | 0 .../{test-context.xml => child2-context.xml} | 0 8 files changed, 64 insertions(+), 27 deletions(-) diff --git a/framework/spring/module/src/test/java/org/apache/cloudstack/spring/module/factory/ModuleBasedContextFactoryTest.java b/framework/spring/module/src/test/java/org/apache/cloudstack/spring/module/factory/ModuleBasedContextFactoryTest.java index d8d109f6575..884665efed2 100644 --- a/framework/spring/module/src/test/java/org/apache/cloudstack/spring/module/factory/ModuleBasedContextFactoryTest.java +++ b/framework/spring/module/src/test/java/org/apache/cloudstack/spring/module/factory/ModuleBasedContextFactoryTest.java @@ -18,27 +18,31 @@ */ package org.apache.cloudstack.spring.module.factory; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; - -import java.io.IOException; -import java.util.Collection; - +import org.apache.cloudstack.spring.module.locator.impl.ClasspathModuleDefinitionLocator; +import org.apache.cloudstack.spring.module.model.ModuleDefinition; +import org.apache.cloudstack.spring.module.model.ModuleDefinitionSet; import org.junit.Before; import org.junit.Test; import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.context.ApplicationContext; +import org.springframework.core.io.Resource; -import org.apache.cloudstack.spring.module.locator.impl.ClasspathModuleDefinitionLocator; -import org.apache.cloudstack.spring.module.model.ModuleDefinition; -import org.apache.cloudstack.spring.module.model.ModuleDefinitionSet; +import java.io.IOException; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; public class ModuleBasedContextFactoryTest { Collection<ModuleDefinition> defs; + ModuleBasedContextFactory factory = new ModuleBasedContextFactory(); @Before public void setUp() throws IOException { @@ -51,8 +55,6 @@ public class ModuleBasedContextFactoryTest { @Test public void testLoad() throws IOException { - ModuleBasedContextFactory factory = new ModuleBasedContextFactory(); - ModuleDefinitionSet set = factory.loadModules(defs, "base"); assertNotNull(set.getApplicationContext("base")); @@ -63,8 +65,6 @@ public class ModuleBasedContextFactoryTest { InitTest.initted = false; - ModuleBasedContextFactory factory = new ModuleBasedContextFactory(); - ModuleDefinitionSet set = factory.loadModules(defs, "base"); assertTrue(!InitTest.initted); @@ -73,7 +73,6 @@ public class ModuleBasedContextFactoryTest { @Test public void testExcluded() throws IOException { - ModuleBasedContextFactory factory = new ModuleBasedContextFactory(); ModuleDefinitionSet set = factory.loadModules(defs, "base"); assertNull(set.getApplicationContext("excluded")); @@ -83,7 +82,6 @@ public class ModuleBasedContextFactoryTest { @Test public void testBeans() throws IOException { - ModuleBasedContextFactory factory = new ModuleBasedContextFactory(); ModuleDefinitionSet set = factory.loadModules(defs, "base"); testBeansInContext(set, "base", 1, new String[] {"base"}, new String[] {"child1", "child2", "child1-1"}); @@ -92,6 +90,51 @@ public class ModuleBasedContextFactoryTest { testBeansInContext(set, "child1-1", 3, new String[] {"base", "child1", "child1-1"}, new String[] {"child2"}); } + @Test + public void testEmptyNameConfigResources() throws IOException { + ModuleDefinitionSet set = factory.loadModules(defs, "base"); + testConfigResourcesArray(new String[] {}, set.getConfigResources("")); + } + + @Test + public void testBaseConfigResources() throws IOException { + ModuleDefinitionSet set = factory.loadModules(defs, "base"); + testConfigResourcesArray(new String[] {"base-context.xml", "base-context-inheritable.xml"}, set.getConfigResources("base")); + } + + @Test + public void testChild1ConfigResources() throws IOException { + ModuleDefinitionSet set = factory.loadModules(defs, "base"); + testConfigResourcesArray(new String[] { + "child1-context.xml", "child1-context-inheritable.xml", + "base-context-inheritable.xml", "child1-context-override.xml" + }, set.getConfigResources("child1")); + } + + @Test + public void testChild2ConfigResources() throws IOException { + ModuleDefinitionSet set = factory.loadModules(defs, "base"); + testConfigResourcesArray(new String[] { + "child2-context.xml", "base-context-inheritable.xml" + }, set.getConfigResources("child2")); + } + + @Test + public void testChild1_1ConfigResources() throws IOException { + ModuleDefinitionSet set = factory.loadModules(defs, "base"); + testConfigResourcesArray(new String[] { + "child1-1-context.xml", "child1-context-inheritable.xml", "base-context-inheritable.xml" + }, set.getConfigResources("child1-1")); + } + + private void testConfigResourcesArray(String[] expected, Resource[] actual) { + assertEquals(expected.length, actual.length); + List<String> actualFileNameList = Arrays.stream(actual).map(Resource::getFilename).collect(Collectors.toList()); + for (int i = 0; i < expected.length; i++) { + assertEquals(expected[i], actualFileNameList.get(i)); + } + } + protected void testBeansInContext(ModuleDefinitionSet set, String name, int order, String[] parents, String[] notTheres) { ApplicationContext context = set.getApplicationContext(name); diff --git a/framework/spring/module/src/test/resources/testhierarchy/base/test-context-inheritable.xml b/framework/spring/module/src/test/resources/testhierarchy/base/base-context-inheritable.xml similarity index 100% rename from framework/spring/module/src/test/resources/testhierarchy/base/test-context-inheritable.xml rename to framework/spring/module/src/test/resources/testhierarchy/base/base-context-inheritable.xml diff --git a/framework/spring/module/src/test/resources/testhierarchy/base/test-context.xml b/framework/spring/module/src/test/resources/testhierarchy/base/base-context.xml similarity index 100% rename from framework/spring/module/src/test/resources/testhierarchy/base/test-context.xml rename to framework/spring/module/src/test/resources/testhierarchy/base/base-context.xml diff --git a/framework/spring/module/src/test/resources/testhierarchy/child1-1/test-context.xml b/framework/spring/module/src/test/resources/testhierarchy/child1-1/child1-1-context.xml similarity index 100% rename from framework/spring/module/src/test/resources/testhierarchy/child1-1/test-context.xml rename to framework/spring/module/src/test/resources/testhierarchy/child1-1/child1-1-context.xml diff --git a/framework/spring/module/src/test/resources/testhierarchy/child1/test-context-override.xml b/framework/spring/module/src/test/resources/testhierarchy/child1/child1-context-inheritable.xml similarity index 66% copy from framework/spring/module/src/test/resources/testhierarchy/child1/test-context-override.xml copy to framework/spring/module/src/test/resources/testhierarchy/child1/child1-context-inheritable.xml index 59820de453c..2cea17e97e3 100644 --- a/framework/spring/module/src/test/resources/testhierarchy/child1/test-context-override.xml +++ b/framework/spring/module/src/test/resources/testhierarchy/child1/child1-context-inheritable.xml @@ -17,14 +17,8 @@ under the License. --> <beans xmlns="http://www.springframework.org/schema/beans" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" - xsi:schemaLocation="http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd - http://www.springframework.org/schema/context - http://www.springframework.org/schema/context/spring-context.xsd"> - - <bean id="override" class="java.lang.String" > - <constructor-arg value="a string" /> - </bean> + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.springframework.org/schema/beans + http://www.springframework.org/schema/beans/spring-beans.xsd"> </beans> diff --git a/framework/spring/module/src/test/resources/testhierarchy/child1/test-context-override.xml b/framework/spring/module/src/test/resources/testhierarchy/child1/child1-context-override.xml similarity index 100% rename from framework/spring/module/src/test/resources/testhierarchy/child1/test-context-override.xml rename to framework/spring/module/src/test/resources/testhierarchy/child1/child1-context-override.xml diff --git a/framework/spring/module/src/test/resources/testhierarchy/child1/test-context.xml b/framework/spring/module/src/test/resources/testhierarchy/child1/child1-context.xml similarity index 100% rename from framework/spring/module/src/test/resources/testhierarchy/child1/test-context.xml rename to framework/spring/module/src/test/resources/testhierarchy/child1/child1-context.xml diff --git a/framework/spring/module/src/test/resources/testhierarchy/child2/test-context.xml b/framework/spring/module/src/test/resources/testhierarchy/child2/child2-context.xml similarity index 100% rename from framework/spring/module/src/test/resources/testhierarchy/child2/test-context.xml rename to framework/spring/module/src/test/resources/testhierarchy/child2/child2-context.xml