KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > test > web > metamodel > unit > WebXmlTestCase


1 /*
2   * JBoss, Home of Professional Open Source
3   * Copyright 2005, JBoss Inc., and individual contributors as indicated
4   * by the @authors tag. See the copyright.txt in the distribution for a
5   * full listing of individual contributors.
6   *
7   * This is free software; you can redistribute it and/or modify it
8   * under the terms of the GNU Lesser General Public License as
9   * published by the Free Software Foundation; either version 2.1 of
10   * the License, or (at your option) any later version.
11   *
12   * This software is distributed in the hope that it will be useful,
13   * but WITHOUT ANY WARRANTY; without even the implied warranty of
14   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15   * Lesser General Public License for more details.
16   *
17   * You should have received a copy of the GNU Lesser General Public
18   * License along with this software; if not, write to the Free
19   * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20   * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
21   */

22 package org.jboss.test.web.metamodel.unit;
23
24 import java.net.URL JavaDoc;
25 import java.util.Collection JavaDoc;
26 import java.util.Iterator JavaDoc;
27 import org.jboss.logging.Logger;
28 import junit.framework.Test;
29 import junit.framework.TestCase;
30 import junit.framework.TestSuite;
31
32 import org.jboss.metamodel.descriptor.DDObjectFactory;
33 import org.jboss.metamodel.descriptor.EjbRef;
34 import org.jboss.metamodel.descriptor.EjbLocalRef;
35 import org.jboss.metamodel.descriptor.EnvEntry;
36 import org.jboss.metamodel.descriptor.InjectionTarget;
37 import org.jboss.metamodel.descriptor.Listener;
38 import org.jboss.metamodel.descriptor.MessageDestination;
39 import org.jboss.metamodel.descriptor.MessageDestinationRef;
40 import org.jboss.metamodel.descriptor.NameValuePair;
41 import org.jboss.metamodel.descriptor.ResourceEnvRef;
42 import org.jboss.metamodel.descriptor.ResourceRef;
43 import org.jboss.metamodel.descriptor.RunAs;
44 import org.jboss.metamodel.descriptor.SecurityRoleRef;
45
46 import org.jboss.web.metamodel.descriptor.*;
47
48 /**
49  * JUnit TestCase for JbossXB usage for web deployment descriptor for
50  * version 2.5 schema
51  *
52  * @version <tt>$Revision: 45417 $</tt>
53  * @author <a HREF="mailto:bdecoste@jboss.com">William DeCoste</a>
54  */

55
56 public class WebXmlTestCase extends TestCase
57 {
58
59    private static final Logger log = Logger.getLogger(WebXmlTestCase.class);
60
61    public WebXmlTestCase(String JavaDoc name)
62    {
63
64       super(name);
65
66    }
67
68    // Tests
69
public void testUnmarshalDDXsd() throws Exception JavaDoc
70    {
71       // create an object model factory
72
URL JavaDoc xmlUrl = getResourceUrl("metamodel/WEB-INF/web.xml");
73       assertNotNull(xmlUrl);
74       
75       WebDD dd = WebDDObjectFactory.parse(xmlUrl);
76       assertNotNull(dd);
77       
78       xmlUrl = getResourceUrl("metamodel/WEB-INF/jboss-web.xml");
79       assertNotNull(xmlUrl);
80       
81       dd = JBossWebDDObjectFactory.parse(xmlUrl, dd);
82       assertNotNull(dd);
83
84       checkUnmarshalledDD(dd);
85    }
86   
87    private void checkUnmarshalledDD(WebDD dd)
88    {
89       log.debug("unmarshalled DD: " + dd);
90       
91       assertEquals("java:/jaas/jbosstest-web", dd.getSecurityDomain());
92       
93       Collection JavaDoc filters = dd.getFilters();
94       assertEquals(1, filters.size());
95       Filter filter = (Filter)filters.iterator().next();
96       assertEquals("JASPISecurityFilter", filter.getName());
97       assertEquals("org.jboss.test.web.security.JASPISecurityFilter", filter.getFilterClass());
98       Collection JavaDoc initParams = filter.getInitParams();
99       assertEquals(1, initParams.size());
100       NameValuePair param = (NameValuePair)initParams.iterator().next();
101       assertEquals("testJASPIServerAuthContext", param.getName());
102       assertEquals("TRUE", param.getValue());
103       
104       Collection JavaDoc mappings = dd.getFilterMappings();
105       assertEquals(1, mappings.size());
106       FilterMapping filterMapping = (FilterMapping)mappings.iterator().next();
107       assertEquals("SubjectFilter", filterMapping.getFilterName());
108       assertEquals("SubjectServlet", filterMapping.getServletName());
109       
110       Collection JavaDoc listeners = dd.getListeners();
111       assertEquals(1, listeners.size());
112       Listener listener = (Listener)listeners.iterator().next();
113       assertEquals("org.jboss.test.cluster.web.SessionListener", listener.getListenerClass());
114       
115       Collection JavaDoc servlets = dd.getServlets();
116       assertEquals(2, servlets.size());
117       Iterator JavaDoc servletIterator = servlets.iterator();
118       Servlet servlet = (Servlet)servletIterator.next();
119       assertEquals("EJBJsp", servlet.getName());
120       assertEquals("/test.jsp", servlet.getJspFile());
121       servlet = (Servlet)servletIterator.next();
122       assertEquals("EJBServlet", servlet.getName());
123       assertEquals("org.jboss.ejb3.test.servlet.servlets.EJBServlet", servlet.getServletClass());
124       Collection JavaDoc principals = servlet.getRunAsPrincipals();
125       assertEquals(1, principals.size());
126       String JavaDoc principal = (String JavaDoc)principals.iterator().next();
127       assertEquals("runAsUser", principal);
128       assertEquals("1", servlet.getLoadOnStartup());
129       RunAs runAs = servlet.getRunAs();
130       assertNotNull(runAs);
131       assertEquals("identitySubstitutionCaller", runAs.getRoleName());
132       Collection JavaDoc roleRefs = servlet.getSecurityRoleRefs();
133       assertEquals(1, roleRefs.size());
134       SecurityRoleRef roleRef = (SecurityRoleRef)roleRefs.iterator().next();
135       assertEquals("ServletUser", roleRef.getRoleName());
136       assertEquals("ServletUserRole", roleRef.getRoleLink());
137       initParams = servlet.getInitParams();
138       assertEquals(1, initParams.size());
139       param = (NameValuePair)initParams.iterator().next();
140       assertEquals("scope", param.getName());
141       assertEquals("1", param.getValue());
142       
143       mappings = dd.getServletMappings();
144       assertEquals(1, mappings.size());
145       ServletMapping servletMapping = (ServletMapping)mappings.iterator().next();
146       assertEquals("EJBServlet", servletMapping.getName());
147       assertEquals("/EJBServlet", servletMapping.getUrlPattern());
148       
149       Collection JavaDoc configs = dd.getSessionConfigs();
150       assertEquals(1, configs.size());
151       SessionConfig config = (SessionConfig)configs.iterator().next();
152       assertEquals("1", config.getSessionTimeout());
153       
154       Collection JavaDoc roles = dd.getSecurityRoles();
155       assertEquals(2, roles.size());
156       SecurityRole role = (SecurityRole)roles.iterator().next();
157       assertEquals("JBossUser", role.getRoleName());
158       assertEquals("UnsecureRunAsServletWithPrincipalNameAndRolesPrincipal", role.getPrincipalName());
159       
160       Collection JavaDoc constraints = dd.getSecurityConstraints();
161       assertEquals(1, constraints.size());
162       SecurityConstraint constraint = (SecurityConstraint)constraints.iterator().next();
163       WebResourceCollection collection = constraint.getWebResourceCollection();
164       assertNotNull(collection);
165       assertEquals("Restricted", collection.getWebResourceName());
166       assertEquals("/*", collection.getUrlPattern());
167       AuthConstraint auth = constraint.getAuthConstraint();
168       assertNotNull(auth);
169       assertEquals("AuthorizedUser", auth.getRoleName());
170       UserDataConstraint user = constraint.getUserDataConstraint();
171       assertNotNull(user);
172       assertEquals("NONE", user.getTransportGuarantee());
173       
174       LoginConfig loginConfig = dd.getLoginConfig();
175       assertNotNull(loginConfig);
176       assertEquals("FORM", loginConfig.getAuthMethod());
177       assertEquals("WebConstraintsUnitTestCase", loginConfig.getRealmName());
178       FormLoginConfig formLoginConfig = loginConfig.getFormLoginConfig();
179       assertNotNull(formLoginConfig);
180       assertEquals("/login.html", formLoginConfig.getLoginPage());
181       assertEquals("/error.html", formLoginConfig.getErrorPage());
182       
183       Collection JavaDoc errorPages = dd.getErrorPages();
184       assertEquals(1, errorPages.size());
185       ErrorPage page = (ErrorPage)errorPages.iterator().next();
186       assertEquals("404", page.getErrorCode());
187       assertEquals("/ErrorPagesServlet/404.jsp", page.getLocation());
188       
189       Collection JavaDoc ejbRefs = dd.getEjbRefs();
190       assertEquals(1, ejbRefs.size());
191       Iterator JavaDoc ejbRefIterator = ejbRefs.iterator();
192       while (ejbRefIterator.hasNext())
193       {
194          EjbRef ref = (EjbRef)ejbRefIterator.next();
195          assertEquals("ejb/remote/Session30", ref.getEjbRefName());
196          assertEquals("Session", ref.getEjbRefType());
197          assertEquals("org.jboss.ejb3.test.servlet.Session30Home", ref.getHome());
198          assertEquals("org.jboss.ejb3.test.servlet.Session30", ref.getRemote());
199          assertEquals("jbosstest/ejbs/UnsecuredEJB", ref.getMappedName());
200          
201          InjectionTarget target = ref.getInjectionTarget();
202          assertNotNull(target);
203          assertEquals("org.jboss.ejb3.test.metamodel.EjbRef", target.getTargetClass());
204          assertEquals("ejbRef", target.getTargetName());
205       }
206       
207       Collection JavaDoc ejbLocalRefs = dd.getEjbLocalRefs();
208       assertEquals(1, ejbLocalRefs.size());
209       Iterator JavaDoc ejbLocalRefIterator = ejbLocalRefs.iterator();
210       while (ejbLocalRefIterator.hasNext())
211       {
212          EjbLocalRef ref = (EjbLocalRef)ejbLocalRefIterator.next();
213          assertEquals("ejb/local/Session30", ref.getEjbRefName());
214          assertEquals("Session", ref.getEjbRefType());
215          assertEquals("org.jboss.ejb3.test.servlet.Session30LocalHome", ref.getLocalHome());
216          assertEquals("org.jboss.ejb3.test.servlet.Session30", ref.getLocal());
217          assertEquals("jbosstest/ejbs/local/ENCBean1", ref.getMappedName());
218          
219          InjectionTarget target = ref.getInjectionTarget();
220          assertNotNull(target);
221          assertEquals("org.jboss.ejb3.test.metamodel.EjbLocalRef", target.getTargetClass());
222          assertEquals("ejbLocalRef", target.getTargetName());
223       }
224       
225       Collection JavaDoc resourceRefs = dd.getResourceRefs();
226       assertEquals(1, resourceRefs.size());
227       Iterator JavaDoc resourceRefIterator = resourceRefs.iterator();
228       while (ejbLocalRefIterator.hasNext())
229       {
230          ResourceRef ref = (ResourceRef)resourceRefIterator.next();
231          assertEquals("jms/ConnectionFactory", ref.getResRefName());
232          assertEquals("javax.jms.ConnectionFactory", ref.getResType());
233          assertEquals("Container", ref.getResAuth());
234          assertEquals("Shareable", ref.getResSharingScope());
235          assertEquals("java:ConnectionFactory", ref.getMappedName());
236          
237          InjectionTarget target = ref.getInjectionTarget();
238          assertNotNull(target);
239          assertEquals("org.jboss.ejb3.test.metamodel.ResourceRef", target.getTargetClass());
240          assertEquals("resourceRef", target.getTargetName());
241       }
242       
243       Collection JavaDoc messageDestinationRefs = dd.getMessageDestinationRefs();
244       assertEquals(1, messageDestinationRefs.size());
245       Iterator JavaDoc messageDestinationRefIterator = messageDestinationRefs.iterator();
246       while (messageDestinationRefIterator.hasNext())
247       {
248          MessageDestinationRef ref = (MessageDestinationRef)messageDestinationRefIterator.next();
249          assertEquals("jms/callerQueue", ref.getMessageDestinationRefName());
250          assertEquals("javax.jms.Queue", ref.getMessageDestinationType());
251          assertEquals("ConsumesProduces", ref.getMessageDestinationUsage());
252          assertEquals("queue/testQueue", ref.getMappedName());
253          
254          InjectionTarget target = ref.getInjectionTarget();
255          assertNotNull(target);
256          assertEquals("org.jboss.ejb3.test.metamodel.MessageDestinationRef", target.getTargetClass());
257          assertEquals("messageDestinationRef", target.getTargetName());
258       }
259       
260       Collection JavaDoc messageDestinations = dd.getMessageDestinations();
261       assertEquals(1, messageDestinations.size());
262       MessageDestination destination = (MessageDestination)messageDestinations.iterator().next();
263       assertEquals("TestQueue", destination.getMessageDestinationName());
264       
265       Collection JavaDoc dependencies = dd.getDependencies();
266       assertEquals(1, dependencies.size());
267       String JavaDoc dependency = (String JavaDoc)dependencies.iterator().next();
268       assertEquals("jboss.ws:service=WebServiceDeployerJSE", dependency);
269       
270       ReplicationConfig replication = dd.getReplicationConfig();
271       assertNotNull(replication);
272       assertEquals("SET_AND_GET", replication.getTrigger());
273       assertEquals("SESSION", replication.getGranularity());
274    }
275
276    private static URL JavaDoc getResourceUrl(String JavaDoc name)
277    {
278       URL JavaDoc url = Thread.currentThread().getContextClassLoader()
279             .getResource(name);
280       if (url == null)
281       {
282          throw new IllegalStateException JavaDoc("Resource not found: " + name);
283       }
284       return url;
285    }
286
287    public static Test suite() throws Exception JavaDoc
288    {
289       return new TestSuite(WebXmlTestCase.class);
290    }
291
292 }
293
Popular Tags