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

Reply via email to