1 22 package org.jboss.test.web.metamodel.unit; 23 24 import java.net.URL ; 25 import java.util.Collection ; 26 import java.util.Iterator ; 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 55 56 public class WebXmlTestCase extends TestCase 57 { 58 59 private static final Logger log = Logger.getLogger(WebXmlTestCase.class); 60 61 public WebXmlTestCase(String name) 62 { 63 64 super(name); 65 66 } 67 68 public void testUnmarshalDDXsd() throws Exception 70 { 71 URL 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 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 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 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 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 servlets = dd.getServlets(); 116 assertEquals(2, servlets.size()); 117 Iterator 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 principals = servlet.getRunAsPrincipals(); 125 assertEquals(1, principals.size()); 126 String principal = (String )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 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 configs = dd.getSessionConfigs(); 150 assertEquals(1, configs.size()); 151 SessionConfig config = (SessionConfig)configs.iterator().next(); 152 assertEquals("1", config.getSessionTimeout()); 153 154 Collection 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 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 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 ejbRefs = dd.getEjbRefs(); 190 assertEquals(1, ejbRefs.size()); 191 Iterator 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 ejbLocalRefs = dd.getEjbLocalRefs(); 208 assertEquals(1, ejbLocalRefs.size()); 209 Iterator 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 resourceRefs = dd.getResourceRefs(); 226 assertEquals(1, resourceRefs.size()); 227 Iterator 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 messageDestinationRefs = dd.getMessageDestinationRefs(); 244 assertEquals(1, messageDestinationRefs.size()); 245 Iterator 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 messageDestinations = dd.getMessageDestinations(); 261 assertEquals(1, messageDestinations.size()); 262 MessageDestination destination = (MessageDestination)messageDestinations.iterator().next(); 263 assertEquals("TestQueue", destination.getMessageDestinationName()); 264 265 Collection dependencies = dd.getDependencies(); 266 assertEquals(1, dependencies.size()); 267 String dependency = (String )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 getResourceUrl(String name) 277 { 278 URL url = Thread.currentThread().getContextClassLoader() 279 .getResource(name); 280 if (url == null) 281 { 282 throw new IllegalStateException ("Resource not found: " + name); 283 } 284 return url; 285 } 286 287 public static Test suite() throws Exception 288 { 289 return new TestSuite(WebXmlTestCase.class); 290 } 291 292 } 293 | Popular Tags |