Bunch o' bug fixes, all IdP configuration files now load.
[java-idp.git] / tests / edu / internet2 / middleware / shibboleth / idp / config / BaseConfigTestCase.java
1 package edu.internet2.middleware.shibboleth.idp.config;
2
3
4 import java.util.ArrayList;
5 import java.util.List;
6
7 import org.opensaml.util.resource.ClasspathResource;
8 import org.opensaml.util.resource.Resource;
9 import org.opensaml.util.resource.ResourceException;
10 import org.springframework.context.ApplicationContext;
11 import org.springframework.context.support.GenericApplicationContext;
12
13 import edu.internet2.middleware.shibboleth.common.BaseTestCase;
14 import edu.internet2.middleware.shibboleth.common.config.SpringConfigurationUtils;
15
16 /**
17  * Base unit test case for Spring configuration tests.
18  */
19 public class BaseConfigTestCase extends BaseTestCase {
20
21     /** Configuration resources to be loaded for all unit tests. */
22     private List<Resource> configResources;
23
24     /** {@inheritDoc} */
25     protected void setUp() throws Exception {
26         configResources = new ArrayList<Resource>();
27     }
28
29     /**
30      * Creates a Spring application context from the instance defined config resources.
31      * 
32      * @return the created context
33      * 
34      * @throws ResourceException thrown if there is a problem reading the configuration resources
35      */
36     protected ApplicationContext createSpringContext() throws ResourceException {
37         return createSpringContext(configResources);
38     }
39
40     /**
41      * Creates a Spring application context from the given configuration and any instance registered configurations.
42      * 
43      * @param config spring configuration file to be located on the classpath
44      * 
45      * @return the configured spring context
46      * 
47      * @throws ResourceException thrown if the given resources can not be located
48      */
49     protected ApplicationContext createSpringContext(String config) throws ResourceException {
50         String[] configs = new String[1];
51         configs[0] = config;
52         return createSpringContext(configs);
53     }
54
55     /**
56      * Creates a Spring application context from the given configurations and any instance registered configurations.
57      * 
58      * @param configs spring configuration files to be located on the classpath
59      * 
60      * @return the configured spring context
61      * 
62      * @throws ResourceException thrown if the given resources can not be located
63      */
64     protected ApplicationContext createSpringContext(String[] configs) throws ResourceException {
65         ArrayList<Resource> resources = new ArrayList<Resource>();
66         resources.addAll(configResources);
67         if (configs != null) {
68             for (String config : configs) {
69                 resources.add(new ClasspathResource(config));
70             }
71         }
72
73         return createSpringContext(resources);
74     }
75
76     /**
77      * Creates a Spring context from the given resources.
78      * 
79      * @param configs context configuration resources
80      * 
81      * @return the created context
82      * 
83      * @throws ResourceException thrown if there is a problem reading the configuration resources
84      */
85     protected ApplicationContext createSpringContext(List<Resource> configs) throws ResourceException {
86         GenericApplicationContext gContext = new GenericApplicationContext();
87         SpringConfigurationUtils.populateRegistry(gContext, configs);
88         gContext.refresh();
89         return gContext;
90     }
91 }