1 22 package org.jboss.test.ejbconf.test; 23 24 import java.net.URL ; 25 import java.util.Iterator ; 26 import java.util.Set ; 27 28 import junit.framework.Test; 29 import junit.framework.TestCase; 30 import junit.framework.TestSuite; 31 32 import org.jboss.invocation.InvocationType; 33 import org.jboss.metadata.ApplicationMetaData; 34 import org.jboss.metadata.BeanMetaData; 35 import org.jboss.metadata.MethodMetaData; 36 import org.jboss.metadata.XmlFileLoader; 37 import org.jboss.security.SimplePrincipal; 38 39 import org.w3c.dom.Document ; 40 import org.w3c.dom.Element ; 41 42 47 public class MetaDataUnitTestCase extends TestCase 48 { 49 public MetaDataUnitTestCase(String name) 50 { 51 super(name); 52 } 53 54 public static Test suite() throws Exception 55 { 56 TestSuite suite = new TestSuite(MetaDataUnitTestCase.class); 57 return suite; 58 } 59 60 public void testMethodPermissions() throws Exception 61 { 62 URL configURL = getClass().getResource("/ejbconf/ejb-jar-permission.xml"); 63 if( configURL == null ) 64 throw new Exception ("Failed to find /ejbconf/ejb-jar-permission.xml"); 65 Document configDoc = XmlFileLoader.getDocument(configURL, true); 66 ApplicationMetaData appData = new ApplicationMetaData(); 67 appData.importEjbJarXml(configDoc.getDocumentElement()); 68 69 SimplePrincipal echo = new SimplePrincipal("Echo"); 70 SimplePrincipal echoLocal = new SimplePrincipal("EchoLocal"); 71 SimplePrincipal internal = new SimplePrincipal("InternalRole"); 72 73 BeanMetaData ss = appData.getBeanByEjbName("StatelessSession"); 74 Class [] sig = {}; 75 Set perms = ss.getMethodPermissions("create", sig, InvocationType.HOME); 76 assertTrue("Echo can invoke StatelessSessionHome.create", perms.contains(echo)); 77 assertTrue("EchoLocal cannot invoke StatelessSessionHome.create", perms.contains(echoLocal) == false); 78 79 perms = ss.getMethodPermissions("create", sig, InvocationType.LOCALHOME); 80 assertTrue("Echo can invoke StatelessSessionLocalHome.create", perms.contains(echo)); 81 assertTrue("EchoLocal can invoke StatelessSessionLocalHome.create", perms.contains(echoLocal)); 82 } 83 84 } 85 | Popular Tags |