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 <[email protected]>
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