mx4j/src/test/test/mx4j/server MBeanPermissionTest.java,1.14,1.15
Simone Bordet <[email protected]> Sat, 28 Aug 2004 20:23:16 +0000
| Newsgroups | gmane.comp.java.mx4j.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/mx4j/mx4j/src/test/test/mx4j/server In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6443/src/test/test/mx4j/server Modified Files: MBeanPermissionTest.java Log Message: Removed constructor in MBeanPermission, updated tests Index: MBeanPermissionTest.java =================================================================== RCS file: /cvsroot/mx4j/mx4j/src/test/test/mx4j/server/MBeanPermissionTest.java,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** MBeanPermissionTest.java 20 Dec 2003 17:04:34 -0000 1.14 --- MBeanPermissionTest.java 28 Aug 2004 20:23:02 -0000 1.15 *************** *** 13,22 **** import java.io.ObjectInputStream; import java.io.ObjectOutputStream; - import javax.management.MBeanPermission; import test.javax.management.PermissionTestCase; /** - * * @author <a href="mailto:[email protected]">Simone Bordet</a> * @author <a href="mailto:[email protected]">Damien Evans</a> --- 13,21 ---- import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import javax.management.MBeanPermission; + import test.javax.management.PermissionTestCase; /** * @author <a href="mailto:[email protected]">Simone Bordet</a> * @author <a href="mailto:[email protected]">Damien Evans</a> *************** *** 25,381 **** public class MBeanPermissionTest extends PermissionTestCase { ! public MBeanPermissionTest(String s) ! { ! super(s); ! } ! public void testInvalidMBeanPermissionBecauseInvalidName() throws Exception ! { ! try ! { ! new MBeanPermission(null); ! fail("Invalid MBeanPermission"); ! } ! catch (IllegalArgumentException ignored) ! { ! } ! try ! { ! new MBeanPermission(""); ! fail("Invalid MBeanPermission"); ! } ! catch (IllegalArgumentException ignored) ! { ! } ! try ! { ! new MBeanPermission(" "); ! fail("Invalid MBeanPermission"); ! } ! catch (IllegalArgumentException ignored) ! { ! } ! try ! { ! new MBeanPermission(" ", "*"); ! fail("Invalid MBeanPermission"); ! } ! catch (IllegalArgumentException ignored) ! { ! } ! try ! { ! new MBeanPermission("", "*"); ! fail("Invalid MBeanPermission"); ! } ! catch (IllegalArgumentException ignored) ! { ! } ! // Invalid ObjectName ! try ! { ! new MBeanPermission("[d?k=v]", "*"); ! fail("Invalid MBeanPermission"); ! } ! catch (IllegalArgumentException ignored) ! { ! } ! try ! { ! new MBeanPermission("[*]", "*"); ! fail("Invalid MBeanPermission"); ! } ! catch (IllegalArgumentException ignored) ! { ! } ! } ! public void testInvalidMBeanPermissionBecauseInvalidActions() throws Exception ! { ! try ! { ! new MBeanPermission("*"); ! fail("Invalid MBeanPermission"); ! } ! catch (IllegalArgumentException ignored) ! { ! } ! try ! { ! new MBeanPermission("com.*[d:k=v]"); ! fail("Invalid MBeanPermission"); ! } ! catch (IllegalArgumentException ignored) ! { ! } ! try ! { ! new MBeanPermission("com.*[d:k=v]", null); ! fail("Invalid MBeanPermission"); ! } ! catch (IllegalArgumentException ignored) ! { ! } ! try ! { ! new MBeanPermission("com.*[d:k=v]", ""); ! fail("Invalid MBeanPermission"); ! } ! catch (IllegalArgumentException ignored) ! { ! } ! try ! { ! new MBeanPermission("com.*[d:k=v]", " "); ! fail("Invalid MBeanPermission"); ! } ! catch (IllegalArgumentException ignored) ! { ! } ! try ! { ! new MBeanPermission("com.*[d:k=v]", " , "); ! fail("Invalid MBeanPermission"); ! } ! catch (IllegalArgumentException ignored) ! { ! } ! } ! public void testValidMBeanPermissionZero() throws Exception ! { ! MBeanPermission mbp1 = new MBeanPermission("*", "*"); ! MBeanPermission mbp2 = new MBeanPermission(" *", "*"); ! MBeanPermission mbp3 = new MBeanPermission(" *", "* "); ! MBeanPermission mbp4 = new MBeanPermission("*[*:*]", "*"); ! MBeanPermission mbp5 = new MBeanPermission("*#*[*:*]", "*"); ! // Test equality ! shouldBeEqual(mbp1, mbp2); ! shouldBeEqual(mbp2, mbp3); ! shouldBeEqual(mbp3, mbp4); ! shouldBeEqual(mbp4, mbp5); ! } ! public void testValidMBeanPermissionOne() throws Exception ! { ! MBeanPermission mbp1 = new MBeanPermission("[d:k=v]", "invoke"); ! MBeanPermission mbp2 = new MBeanPermission("*[d:k=v]", "invoke"); ! MBeanPermission mbp3 = new MBeanPermission("*#*[d:k=v]", "invoke"); ! shouldBeEqual(mbp1, mbp2); ! shouldBeEqual(mbp2, mbp3); ! } ! public void testValidMBeanPermissionTwo() throws Exception ! { ! MBeanPermission mbp1 = new MBeanPermission("com.package.MyClass", "getAttribute"); ! MBeanPermission mbp2 = new MBeanPermission("com.package.MyClass#*", "getAttribute"); ! MBeanPermission mbp3 = new MBeanPermission("com.package.MyClass#*[*:*]", "getAttribute"); ! shouldBeEqual(mbp1, mbp2); ! shouldBeEqual(mbp2, mbp3); ! } ! public void testValidMBeanPermissionThree() throws Exception ! { ! MBeanPermission mbp1 = new MBeanPermission("com.package.MyClass[d:k=v]", "setAttribute"); ! MBeanPermission mbp2 = new MBeanPermission("com.package.MyClass#*[d:k=v]", "setAttribute"); ! shouldBeEqual(mbp1, mbp2); ! } ! public void testValidMBeanPermissionFour() throws Exception ! { ! MBeanPermission mbp1 = new MBeanPermission("#Name[d:k=v]", "isInstanceOf"); ! MBeanPermission mbp2 = new MBeanPermission("*#Name[d:k=v]", "isInstanceOf"); ! shouldBeEqual(mbp1, mbp2); ! } ! public void testValidMBeanPermissionFive() throws Exception ! { ! MBeanPermission mbp1 = new MBeanPermission("-", "getMBeanInfo"); ! MBeanPermission mbp2 = new MBeanPermission("-#*[*:*]", "getMBeanInfo"); ! shouldBeEqual(mbp1, mbp2); ! } ! public void testValidMBeanPermissionSix() throws Exception ! { ! MBeanPermission mbp1 = new MBeanPermission("-#-", "getMBeanInfo"); ! MBeanPermission mbp2 = new MBeanPermission("-#-[*:*]", "getMBeanInfo"); ! shouldBeEqual(mbp1, mbp2); ! } ! public void testValidMBeanPermissionSeven() throws Exception ! { ! MBeanPermission mbp1 = new MBeanPermission("-#-[-]", "getMBeanInfo"); ! } ! public void testValidMBeanPermissionEight() throws Exception ! { ! MBeanPermission mbp1 = new MBeanPermission("com.package.MyClass#Attr[d:k=v]", "*"); ! MBeanPermission mbp2 = new MBeanPermission("com.package.MyClass#Attr[d:k=v]", "invoke,*"); ! shouldBeEqual(mbp1, mbp2); ! } ! public void testValidMBeanPermissionNine() throws Exception ! { ! new MBeanPermission("*[d:k=v]", "addNotificationListener, *"); ! new MBeanPermission("*[d:k1=v1,k2=v2]", "removeNotificationListener, *"); ! new MBeanPermission("mx4j.*", "addNotificationListener, removeNotificationListener"); ! new MBeanPermission("mx4j.Foo#*", "addNotificationListener, removeNotificationListener"); ! new MBeanPermission("mx4j.Foo$Inner#*", "addNotificationListener, removeNotificationListener"); ! new MBeanPermission("mx4j.Foo#*[*:*]", "addNotificationListener, removeNotificationListener"); ! new MBeanPermission("mx4j.Foo$Inner#*[*:*]", "addNotificationListener, removeNotificationListener"); ! new MBeanPermission("mx4j.Foo#Bar[d:k=v]", "addNotificationListener, removeNotificationListener"); ! new MBeanPermission("mx4j.Foo$Inner#Bar[d:k=v]", "addNotificationListener, removeNotificationListener"); ! } ! public void testMBeanPermissionWildcardAlwaysImplies() throws Exception ! { ! MBeanPermission wild = new MBeanPermission("*", "*"); ! shouldImply(wild, wild); ! shouldImply(new MBeanPermission("*[*:*]", "*"), wild); ! shouldImply(wild, new MBeanPermission("*[*:*]", "*")); ! shouldImply(new MBeanPermission("*#*[*:*]", "*"), wild); ! shouldImply(wild, new MBeanPermission("*#*[*:*]", "*")); ! implies(wild, new MBeanPermission("com.*", "*")); ! shouldImply(wild, new MBeanPermission("com.package.MyClass", "*")); ! shouldImply(wild, new MBeanPermission("com.package.MyClass#Attribute", "*")); ! shouldImply(wild, new MBeanPermission("com.package.MyClass#Attribute[d:k=v]", "*")); ! shouldImply(wild, new MBeanPermission("com.package.MyClass#Attribute[d:k=v]", "getObjectInstance")); ! shouldImply(wild, new MBeanPermission("-#-[-]", "*")); ! } ! public void testMBeanPermissionNilCardIsAlwaysImplied() throws Exception ! { ! String action = "queryNames"; ! MBeanPermission nil = new MBeanPermission("-#-[-]", action); ! shouldImply(nil, nil); ! shouldImply(new MBeanPermission("com.package.MyClass#Attr[d:k=v]", action), nil); ! } ! public void testMBeanPermissionQueryMBeansImpliesQueryNames() throws Exception ! { ! shouldImply(new MBeanPermission("*", "queryMBeans"), new MBeanPermission("*", "queryNames")); ! shouldNotImply(new MBeanPermission("*", "queryMBeans"), new MBeanPermission("*", "queryNames, invoke")); ! } ! public void testMBeanPermissionShuffledActionsAreEquals() throws Exception ! { ! MBeanPermission mbp1 = new MBeanPermission("*", "addNotificationListener, removeNotificationListener"); ! MBeanPermission mbp2 = new MBeanPermission("*", "removeNotificationListener, addNotificationListener"); ! shouldBeEqual(mbp1, mbp2); ! } ! public void testMBeanPermissionImpliesOne() throws Exception ! { ! MBeanPermission implied = new MBeanPermission("mx4j.Foo#Bar[domain:k1=v1,k2=v2]", "invoke"); ! shouldImply(implied, implied); ! shouldImply(new MBeanPermission("mx4j.Foo#Bar[domain:k2=v2,k1=v1]", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo#Bar[domain:k1=v1,k2=v2]", "invoke,getAttribute"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo#Bar[domain:k1=v1,k2=v2]", "setAttribute,invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo#Bar[domain:k1=v1,k2=v2]", "invoke,*"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo#Bar[domain:k1=v1,k2=v2]", "*"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo#Bar[domain:k1=v1,*]", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo#Bar[domain:k2=v2,*]", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo#Bar[domain:*]", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo#Bar[dom?in:k1=v1,k2=v2]", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo#Bar[do*in:k1=v1,k2=v2]", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo#Bar[*:k1=v1,k2=v2]", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo#Bar[*:*]", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo#Bar", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo#Bar*[domain:k1=v1,k2=v2]", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo#B*[domain:k1=v1,k2=v2]", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo#*[domain:k1=v1,k2=v2]", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo[domain:k1=v1,k2=v2]", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo#Bar*", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo#B*", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo#*", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo*#Bar[domain:k1=v1,k2=v2]", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.*#Bar[domain:k1=v1,k2=v2]", "invoke"), implied); ! shouldImply(new MBeanPermission("*#Bar[domain:k1=v1,k2=v2]", "invoke"), implied); ! shouldImply(new MBeanPermission("#Bar[domain:k1=v1,k2=v2]", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.*#Bar", "invoke"), implied); ! shouldImply(new MBeanPermission("*#Bar", "invoke"), implied); ! shouldImply(new MBeanPermission("#Bar", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.*", "invoke"), implied); ! shouldImply(new MBeanPermission("*", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo*#*[domain:k1=v1,k2=v2]", "invoke"), implied); ! shouldImply(new MBeanPermission("[domain:k1=v1,k2=v2]", "invoke"), implied); ! shouldImply(new MBeanPermission("*", "*"), implied); ! } ! public void testMBeanPermissionNotImpliesOne() throws Exception ! { ! MBeanPermission notImplied = new MBeanPermission("mx4j.Foo#Bar[d:k=v]", "invoke, getObjectInstance"); ! // Different actions ! shouldNotImply(new MBeanPermission("mx4j.Foo#Bar[d:k=v]", "getAttribute"), notImplied); ! shouldNotImply(new MBeanPermission("mx4j.Foo#Bar[d:k=v]", "getAttribute,setAttribute"), notImplied); ! shouldNotImply(new MBeanPermission("mx4j.Foo#Bar[d:k=v]", "invoke,setAttribute"), notImplied); ! shouldNotImply(new MBeanPermission("mx4j.Foo#Bar[d:k=v]", "setAttribute,getObjectInstance"), notImplied); ! shouldNotImply(new MBeanPermission("mx4j.Foo#Bar[d:k=v]", "getObjectInstance,getAttribute"), notImplied); ! // Different objectname ! shouldNotImply(new MBeanPermission("mx4j.Foo#Bar[d:k=v1]", "invoke, getObjectInstance"), notImplied); ! shouldNotImply(new MBeanPermission("mx4j.Foo#Bar[d:k=v,k1=v1]", "invoke, getObjectInstance"), notImplied); ! shouldNotImply(new MBeanPermission("mx4j.Foo#Bar[:k=v]", "invoke, getObjectInstance"), notImplied); ! // Different attribute ! shouldNotImply(new MBeanPermission("mx4j.Foo#Baz[d:k=v]", "invoke, getObjectInstance"), notImplied); ! // Different class ! shouldNotImply(new MBeanPermission("mx4j.Foo.Baz#Bar[d:k=v]", "invoke, getObjectInstance"), notImplied); ! shouldNotImply(new MBeanPermission("mx4j.Foo$Inner#Bar[d:k=v]", "invoke, getObjectInstance"), notImplied); ! shouldNotImply(new MBeanPermission("dummy.Foo#Bar[d:k=v]", "invoke, getObjectInstance"), notImplied); ! } ! public void testMBeanPermissionSerialization() throws Exception ! { ! MBeanPermission permission = new MBeanPermission("mx4j.Foo#Bar[domain:key=value]", "invoke"); ! ByteArrayOutputStream baos = new ByteArrayOutputStream(); ! ObjectOutputStream oos = new ObjectOutputStream(baos); ! oos.writeObject(permission); ! oos.close(); ! ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); ! ObjectInputStream ois = new ObjectInputStream(bais); ! MBeanPermission deserialized = (MBeanPermission)ois.readObject(); ! ois.close(); ! if (!(deserialized.equals(permission))) fail("Serialization/Deserialization failed"); ! } ! private void implies(MBeanPermission p1, MBeanPermission p2) ! { ! if (!imply(p1, p2)) fail("Permission " + p1 + " should imply Permission " + p2); ! } } --- 24,380 ---- public class MBeanPermissionTest extends PermissionTestCase { ! public MBeanPermissionTest(String s) ! { ! super(s); ! } ! public void testInvalidMBeanPermissionBecauseInvalidName() throws Exception ! { ! try ! { ! new MBeanPermission(null, null); ! fail("Invalid MBeanPermission"); ! } ! catch (IllegalArgumentException ignored) ! { ! } ! try ! { ! new MBeanPermission("", null); ! fail("Invalid MBeanPermission"); ! } ! catch (IllegalArgumentException ignored) ! { ! } ! try ! { ! new MBeanPermission(" ", null); ! fail("Invalid MBeanPermission"); ! } ! catch (IllegalArgumentException ignored) ! { ! } ! try ! { ! new MBeanPermission(" ", "*"); ! fail("Invalid MBeanPermission"); ! } ! catch (IllegalArgumentException ignored) ! { ! } ! try ! { ! new MBeanPermission("", "*"); ! fail("Invalid MBeanPermission"); ! } ! catch (IllegalArgumentException ignored) ! { ! } ! // Invalid ObjectName ! try ! { ! new MBeanPermission("[d?k=v]", "*"); ! fail("Invalid MBeanPermission"); ! } ! catch (IllegalArgumentException ignored) ! { ! } ! try ! { ! new MBeanPermission("[*]", "*"); ! fail("Invalid MBeanPermission"); ! } ! catch (IllegalArgumentException ignored) ! { ! } ! } ! public void testInvalidMBeanPermissionBecauseInvalidActions() throws Exception ! { ! try ! { ! new MBeanPermission("*", null); ! fail("Invalid MBeanPermission"); ! } ! catch (IllegalArgumentException ignored) ! { ! } ! try ! { ! new MBeanPermission("com.*[d:k=v]", null); ! fail("Invalid MBeanPermission"); ! } ! catch (IllegalArgumentException ignored) ! { ! } ! try ! { ! new MBeanPermission("com.*[d:k=v]", null); ! fail("Invalid MBeanPermission"); ! } ! catch (IllegalArgumentException ignored) ! { ! } ! try ! { ! new MBeanPermission("com.*[d:k=v]", ""); ! fail("Invalid MBeanPermission"); ! } ! catch (IllegalArgumentException ignored) ! { ! } ! try ! { ! new MBeanPermission("com.*[d:k=v]", " "); ! fail("Invalid MBeanPermission"); ! } ! catch (IllegalArgumentException ignored) ! { ! } ! try ! { ! new MBeanPermission("com.*[d:k=v]", " , "); ! fail("Invalid MBeanPermission"); ! } ! catch (IllegalArgumentException ignored) ! { ! } ! } ! public void testValidMBeanPermissionZero() throws Exception ! { ! MBeanPermission mbp1 = new MBeanPermission("*", "*"); ! MBeanPermission mbp2 = new MBeanPermission(" *", "*"); ! MBeanPermission mbp3 = new MBeanPermission(" *", "* "); ! MBeanPermission mbp4 = new MBeanPermission("*[*:*]", "*"); ! MBeanPermission mbp5 = new MBeanPermission("*#*[*:*]", "*"); ! // Test equality ! shouldBeEqual(mbp1, mbp2); ! shouldBeEqual(mbp2, mbp3); ! shouldBeEqual(mbp3, mbp4); ! shouldBeEqual(mbp4, mbp5); ! } ! public void testValidMBeanPermissionOne() throws Exception ! { ! MBeanPermission mbp1 = new MBeanPermission("[d:k=v]", "invoke"); ! MBeanPermission mbp2 = new MBeanPermission("*[d:k=v]", "invoke"); ! MBeanPermission mbp3 = new MBeanPermission("*#*[d:k=v]", "invoke"); ! shouldBeEqual(mbp1, mbp2); ! shouldBeEqual(mbp2, mbp3); ! } ! public void testValidMBeanPermissionTwo() throws Exception ! { ! MBeanPermission mbp1 = new MBeanPermission("com.package.MyClass", "getAttribute"); ! MBeanPermission mbp2 = new MBeanPermission("com.package.MyClass#*", "getAttribute"); ! MBeanPermission mbp3 = new MBeanPermission("com.package.MyClass#*[*:*]", "getAttribute"); ! shouldBeEqual(mbp1, mbp2); ! shouldBeEqual(mbp2, mbp3); ! } ! public void testValidMBeanPermissionThree() throws Exception ! { ! MBeanPermission mbp1 = new MBeanPermission("com.package.MyClass[d:k=v]", "setAttribute"); ! MBeanPermission mbp2 = new MBeanPermission("com.package.MyClass#*[d:k=v]", "setAttribute"); ! shouldBeEqual(mbp1, mbp2); ! } ! public void testValidMBeanPermissionFour() throws Exception ! { ! MBeanPermission mbp1 = new MBeanPermission("#Name[d:k=v]", "isInstanceOf"); ! MBeanPermission mbp2 = new MBeanPermission("*#Name[d:k=v]", "isInstanceOf"); ! shouldBeEqual(mbp1, mbp2); ! } ! public void testValidMBeanPermissionFive() throws Exception ! { ! MBeanPermission mbp1 = new MBeanPermission("-", "getMBeanInfo"); ! MBeanPermission mbp2 = new MBeanPermission("-#*[*:*]", "getMBeanInfo"); ! shouldBeEqual(mbp1, mbp2); ! } ! public void testValidMBeanPermissionSix() throws Exception ! { ! MBeanPermission mbp1 = new MBeanPermission("-#-", "getMBeanInfo"); ! MBeanPermission mbp2 = new MBeanPermission("-#-[*:*]", "getMBeanInfo"); ! shouldBeEqual(mbp1, mbp2); ! } ! public void testValidMBeanPermissionSeven() throws Exception ! { ! MBeanPermission mbp1 = new MBeanPermission("-#-[-]", "getMBeanInfo"); ! } ! public void testValidMBeanPermissionEight() throws Exception ! { ! MBeanPermission mbp1 = new MBeanPermission("com.package.MyClass#Attr[d:k=v]", "*"); ! MBeanPermission mbp2 = new MBeanPermission("com.package.MyClass#Attr[d:k=v]", "invoke,*"); ! shouldBeEqual(mbp1, mbp2); ! } ! public void testValidMBeanPermissionNine() throws Exception ! { ! new MBeanPermission("*[d:k=v]", "addNotificationListener, *"); ! new MBeanPermission("*[d:k1=v1,k2=v2]", "removeNotificationListener, *"); ! new MBeanPermission("mx4j.*", "addNotificationListener, removeNotificationListener"); ! new MBeanPermission("mx4j.Foo#*", "addNotificationListener, removeNotificationListener"); ! new MBeanPermission("mx4j.Foo$Inner#*", "addNotificationListener, removeNotificationListener"); ! new MBeanPermission("mx4j.Foo#*[*:*]", "addNotificationListener, removeNotificationListener"); ! new MBeanPermission("mx4j.Foo$Inner#*[*:*]", "addNotificationListener, removeNotificationListener"); ! new MBeanPermission("mx4j.Foo#Bar[d:k=v]", "addNotificationListener, removeNotificationListener"); ! new MBeanPermission("mx4j.Foo$Inner#Bar[d:k=v]", "addNotificationListener, removeNotificationListener"); ! } ! public void testMBeanPermissionWildcardAlwaysImplies() throws Exception ! { ! MBeanPermission wild = new MBeanPermission("*", "*"); ! shouldImply(wild, wild); ! shouldImply(new MBeanPermission("*[*:*]", "*"), wild); ! shouldImply(wild, new MBeanPermission("*[*:*]", "*")); ! shouldImply(new MBeanPermission("*#*[*:*]", "*"), wild); ! shouldImply(wild, new MBeanPermission("*#*[*:*]", "*")); ! implies(wild, new MBeanPermission("com.*", "*")); ! shouldImply(wild, new MBeanPermission("com.package.MyClass", "*")); ! shouldImply(wild, new MBeanPermission("com.package.MyClass#Attribute", "*")); ! shouldImply(wild, new MBeanPermission("com.package.MyClass#Attribute[d:k=v]", "*")); ! shouldImply(wild, new MBeanPermission("com.package.MyClass#Attribute[d:k=v]", "getObjectInstance")); ! shouldImply(wild, new MBeanPermission("-#-[-]", "*")); ! } ! public void testMBeanPermissionNilCardIsAlwaysImplied() throws Exception ! { ! String action = "queryNames"; ! MBeanPermission nil = new MBeanPermission("-#-[-]", action); ! shouldImply(nil, nil); ! shouldImply(new MBeanPermission("com.package.MyClass#Attr[d:k=v]", action), nil); ! } ! public void testMBeanPermissionQueryMBeansImpliesQueryNames() throws Exception ! { ! shouldImply(new MBeanPermission("*", "queryMBeans"), new MBeanPermission("*", "queryNames")); ! shouldNotImply(new MBeanPermission("*", "queryMBeans"), new MBeanPermission("*", "queryNames, invoke")); ! } ! public void testMBeanPermissionShuffledActionsAreEquals() throws Exception ! { ! MBeanPermission mbp1 = new MBeanPermission("*", "addNotificationListener, removeNotificationListener"); ! MBeanPermission mbp2 = new MBeanPermission("*", "removeNotificationListener, addNotificationListener"); ! shouldBeEqual(mbp1, mbp2); ! } ! public void testMBeanPermissionImpliesOne() throws Exception ! { ! MBeanPermission implied = new MBeanPermission("mx4j.Foo#Bar[domain:k1=v1,k2=v2]", "invoke"); ! shouldImply(implied, implied); ! shouldImply(new MBeanPermission("mx4j.Foo#Bar[domain:k2=v2,k1=v1]", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo#Bar[domain:k1=v1,k2=v2]", "invoke,getAttribute"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo#Bar[domain:k1=v1,k2=v2]", "setAttribute,invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo#Bar[domain:k1=v1,k2=v2]", "invoke,*"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo#Bar[domain:k1=v1,k2=v2]", "*"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo#Bar[domain:k1=v1,*]", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo#Bar[domain:k2=v2,*]", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo#Bar[domain:*]", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo#Bar[dom?in:k1=v1,k2=v2]", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo#Bar[do*in:k1=v1,k2=v2]", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo#Bar[*:k1=v1,k2=v2]", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo#Bar[*:*]", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo#Bar", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo#Bar*[domain:k1=v1,k2=v2]", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo#B*[domain:k1=v1,k2=v2]", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo#*[domain:k1=v1,k2=v2]", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo[domain:k1=v1,k2=v2]", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo#Bar*", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo#B*", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo#*", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo*#Bar[domain:k1=v1,k2=v2]", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.*#Bar[domain:k1=v1,k2=v2]", "invoke"), implied); ! shouldImply(new MBeanPermission("*#Bar[domain:k1=v1,k2=v2]", "invoke"), implied); ! shouldImply(new MBeanPermission("#Bar[domain:k1=v1,k2=v2]", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.*#Bar", "invoke"), implied); ! shouldImply(new MBeanPermission("*#Bar", "invoke"), implied); ! shouldImply(new MBeanPermission("#Bar", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.*", "invoke"), implied); ! shouldImply(new MBeanPermission("*", "invoke"), implied); ! shouldImply(new MBeanPermission("mx4j.Foo*#*[domain:k1=v1,k2=v2]", "invoke"), implied); ! shouldImply(new MBeanPermission("[domain:k1=v1,k2=v2]", "invoke"), implied); ! shouldImply(new MBeanPermission("*", "*"), implied); ! } ! public void testMBeanPermissionNotImpliesOne() throws Exception ! { ! MBeanPermission notImplied = new MBeanPermission("mx4j.Foo#Bar[d:k=v]", "invoke, getObjectInstance"); ! // Different actions ! shouldNotImply(new MBeanPermission("mx4j.Foo#Bar[d:k=v]", "getAttribute"), notImplied); ! shouldNotImply(new MBeanPermission("mx4j.Foo#Bar[d:k=v]", "getAttribute,setAttribute"), notImplied); ! shouldNotImply(new MBeanPermission("mx4j.Foo#Bar[d:k=v]", "invoke,setAttribute"), notImplied); ! shouldNotImply(new MBeanPermission("mx4j.Foo#Bar[d:k=v]", "setAttribute,getObjectInstance"), notImplied); ! shouldNotImply(new MBeanPermission("mx4j.Foo#Bar[d:k=v]", "getObjectInstance,getAttribute"), notImplied); ! // Different objectname ! shouldNotImply(new MBeanPermission("mx4j.Foo#Bar[d:k=v1]", "invoke, getObjectInstance"), notImplied); ! shouldNotImply(new MBeanPermission("mx4j.Foo#Bar[d:k=v,k1=v1]", "invoke, getObjectInstance"), notImplied); ! shouldNotImply(new MBeanPermission("mx4j.Foo#Bar[:k=v]", "invoke, getObjectInstance"), notImplied); ! // Different attribute ! shouldNotImply(new MBeanPermission("mx4j.Foo#Baz[d:k=v]", "invoke, getObjectInstance"), notImplied); ! // Different class ! shouldNotImply(new MBeanPermission("mx4j.Foo.Baz#Bar[d:k=v]", "invoke, getObjectInstance"), notImplied); ! shouldNotImply(new MBeanPermission("mx4j.Foo$Inner#Bar[d:k=v]", "invoke, getObjectInstance"), notImplied); ! shouldNotImply(new MBeanPermission("dummy.Foo#Bar[d:k=v]", "invoke, getObjectInstance"), notImplied); ! } ! public void testMBeanPermissionSerialization() throws Exception ! { ! MBeanPermission permission = new MBeanPermission("mx4j.Foo#Bar[domain:key=value]", "invoke"); ! ByteArrayOutputStream baos = new ByteArrayOutputStream(); ! ObjectOutputStream oos = new ObjectOutputStream(baos); ! oos.writeObject(permission); ! oos.close(); ! ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); ! ObjectInputStream ois = new ObjectInputStream(bais); ! MBeanPermission deserialized = (MBeanPermission)ois.readObject(); ! ois.close(); ! if (!(deserialized.equals(permission))) fail("Serialization/Deserialization failed"); ! } ! private void implies(MBeanPermission p1, MBeanPermission p2) ! { ! if (!imply(p1, p2)) fail("Permission " + p1 + " should imply Permission " + p2); ! } } ------------------------------------------------------- This SF.Net email is sponsored by BEA Weblogic Workshop FREE Java Enterprise J2EE developer tools! Get your free copy of BEA WebLogic Workshop 8.1 today. http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click