1818 */
1919package org .apache .cloudstack .spring .module .factory ;
2020
21- import static org .junit .Assert .assertEquals ;
22- import static org .junit .Assert .assertNotNull ;
23- import static org .junit .Assert .assertNull ;
24- import static org .junit .Assert .assertTrue ;
25- import static org .junit .Assert .fail ;
26-
27- import java .io .IOException ;
28- import java .util .Collection ;
29-
21+ import org .apache .cloudstack .spring .module .locator .impl .ClasspathModuleDefinitionLocator ;
22+ import org .apache .cloudstack .spring .module .model .ModuleDefinition ;
23+ import org .apache .cloudstack .spring .module .model .ModuleDefinitionSet ;
3024import org .junit .Before ;
3125import org .junit .Test ;
3226import org .springframework .beans .factory .NoSuchBeanDefinitionException ;
3327import org .springframework .context .ApplicationContext ;
28+ import org .springframework .core .io .Resource ;
3429
35- import org .apache .cloudstack .spring .module .locator .impl .ClasspathModuleDefinitionLocator ;
36- import org .apache .cloudstack .spring .module .model .ModuleDefinition ;
37- import org .apache .cloudstack .spring .module .model .ModuleDefinitionSet ;
30+ import java .io .IOException ;
31+ import java .util .Arrays ;
32+ import java .util .Collection ;
33+ import java .util .List ;
34+ import java .util .stream .Collectors ;
35+
36+ import static org .junit .Assert .assertEquals ;
37+ import static org .junit .Assert .assertNotNull ;
38+ import static org .junit .Assert .assertNull ;
39+ import static org .junit .Assert .assertTrue ;
40+ import static org .junit .Assert .fail ;
3841
3942public class ModuleBasedContextFactoryTest {
4043
4144 Collection <ModuleDefinition > defs ;
45+ ModuleBasedContextFactory factory = new ModuleBasedContextFactory ();
4246
4347 @ Before
4448 public void setUp () throws IOException {
@@ -51,8 +55,6 @@ public void setUp() throws IOException {
5155 @ Test
5256 public void testLoad () throws IOException {
5357
54- ModuleBasedContextFactory factory = new ModuleBasedContextFactory ();
55-
5658 ModuleDefinitionSet set = factory .loadModules (defs , "base" );
5759
5860 assertNotNull (set .getApplicationContext ("base" ));
@@ -63,8 +65,6 @@ public void testOverride() throws IOException {
6365
6466 InitTest .initted = false ;
6567
66- ModuleBasedContextFactory factory = new ModuleBasedContextFactory ();
67-
6868 ModuleDefinitionSet set = factory .loadModules (defs , "base" );
6969
7070 assertTrue (!InitTest .initted );
@@ -73,7 +73,6 @@ public void testOverride() throws IOException {
7373
7474 @ Test
7575 public void testExcluded () throws IOException {
76- ModuleBasedContextFactory factory = new ModuleBasedContextFactory ();
7776 ModuleDefinitionSet set = factory .loadModules (defs , "base" );
7877
7978 assertNull (set .getApplicationContext ("excluded" ));
@@ -83,7 +82,6 @@ public void testExcluded() throws IOException {
8382
8483 @ Test
8584 public void testBeans () throws IOException {
86- ModuleBasedContextFactory factory = new ModuleBasedContextFactory ();
8785 ModuleDefinitionSet set = factory .loadModules (defs , "base" );
8886
8987 testBeansInContext (set , "base" , 1 , new String [] {"base" }, new String [] {"child1" , "child2" , "child1-1" });
@@ -92,6 +90,51 @@ public void testBeans() throws IOException {
9290 testBeansInContext (set , "child1-1" , 3 , new String [] {"base" , "child1" , "child1-1" }, new String [] {"child2" });
9391 }
9492
93+ @ Test
94+ public void testEmptyNameConfigResources () throws IOException {
95+ ModuleDefinitionSet set = factory .loadModules (defs , "base" );
96+ testConfigResourcesArray (new String [] {}, set .getConfigResources ("" ));
97+ }
98+
99+ @ Test
100+ public void testBaseConfigResources () throws IOException {
101+ ModuleDefinitionSet set = factory .loadModules (defs , "base" );
102+ testConfigResourcesArray (new String [] {"base-context.xml" , "base-context-inheritable.xml" }, set .getConfigResources ("base" ));
103+ }
104+
105+ @ Test
106+ public void testChild1ConfigResources () throws IOException {
107+ ModuleDefinitionSet set = factory .loadModules (defs , "base" );
108+ testConfigResourcesArray (new String [] {
109+ "child1-context.xml" , "child1-context-inheritable.xml" ,
110+ "base-context-inheritable.xml" , "child1-context-override.xml"
111+ }, set .getConfigResources ("child1" ));
112+ }
113+
114+ @ Test
115+ public void testChild2ConfigResources () throws IOException {
116+ ModuleDefinitionSet set = factory .loadModules (defs , "base" );
117+ testConfigResourcesArray (new String [] {
118+ "child2-context.xml" , "base-context-inheritable.xml"
119+ }, set .getConfigResources ("child2" ));
120+ }
121+
122+ @ Test
123+ public void testChild1_1ConfigResources () throws IOException {
124+ ModuleDefinitionSet set = factory .loadModules (defs , "base" );
125+ testConfigResourcesArray (new String [] {
126+ "child1-1-context.xml" , "child1-context-inheritable.xml" , "base-context-inheritable.xml"
127+ }, set .getConfigResources ("child1-1" ));
128+ }
129+
130+ private void testConfigResourcesArray (String [] expected , Resource [] actual ) {
131+ assertEquals (expected .length , actual .length );
132+ List <String > actualFileNameList = Arrays .stream (actual ).map (Resource ::getFilename ).collect (Collectors .toList ());
133+ for (int i = 0 ; i < expected .length ; i ++) {
134+ assertEquals (expected [i ], actualFileNameList .get (i ));
135+ }
136+ }
137+
95138 protected void testBeansInContext (ModuleDefinitionSet set , String name , int order , String [] parents , String [] notTheres ) {
96139 ApplicationContext context = set .getApplicationContext (name );
97140
0 commit comments