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