KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > portal > test > core > plugins > security > ModelPluginTestCase


1 /*****************************************
2  * *
3  * JBoss Portal: The OpenSource Portal *
4  * *
5  * Distributable under LGPL license. *
6  * See terms of license at gnu.org. *
7  * *
8  *****************************************/

9 package org.jboss.portal.test.core.plugins.security;
10
11 import java.util.HashSet JavaDoc;
12
13 import org.jboss.portal.common.util.Tools;
14 import org.jboss.portal.core.metadata.ItemMetaData;
15 import org.jboss.portal.core.metadata.ModelMetaData;
16 import org.jboss.portal.core.metadata.PermissionDescriptionMetaData;
17 import org.jboss.portal.core.metadata.PermissionMetaData;
18 import org.jboss.portal.core.metadata.SchemeMetaData;
19 import org.jboss.portal.core.plugins.security.ModelPlugin;
20 import org.jboss.portal.core.security.Scheme;
21
22 import junit.framework.TestCase;
23
24 /**
25  * @author <a HREF="mailto:julien@jboss.org">Julien Viet</a>
26  * @version $Revision: 1.3 $
27  */

28 public class ModelPluginTestCase extends TestCase
29 {
30
31    public ModelPluginTestCase(String JavaDoc name)
32    {
33       super(name);
34    }
35    
36    private ModelMetaData modelMD;
37    
38    public void setUp() throws Exception JavaDoc
39    {
40       modelMD = new ModelMetaData();
41       modelMD.setPermissionDescriptions(new HashSet JavaDoc());
42       
43       PermissionDescriptionMetaData permissionDescription1MD = new PermissionDescriptionMetaData("p1");
44       permissionDescription1MD.setDescription("this is p1");
45       permissionDescription1MD.setImpliedSet(Tools.toSet(new Object JavaDoc[]{"p2"}));
46       modelMD.getPermissionDescriptions().add(permissionDescription1MD);
47       
48       PermissionDescriptionMetaData permissionDescription2MD = new PermissionDescriptionMetaData("p2");
49       permissionDescription2MD.setDescription("this is p2");
50       permissionDescription2MD.setImpliedSet(Tools.toSet(new Object JavaDoc[]{"p3"}));
51       modelMD.getPermissionDescriptions().add(permissionDescription2MD);
52
53       PermissionDescriptionMetaData permissionDescription3MD = new PermissionDescriptionMetaData("p3");
54       permissionDescription3MD.setDescription("this is p3");
55       permissionDescription3MD.setImpliedSet(Tools.toSet(new Object JavaDoc[]{}));
56       modelMD.getPermissionDescriptions().add(permissionDescription3MD);
57       
58       SchemeMetaData schemeMD = new SchemeMetaData("default");
59       schemeMD.setItems(new HashSet JavaDoc());
60       modelMD.setScheme(schemeMD);
61       
62       ItemMetaData itemMD = new ItemMetaData("/");
63       itemMD.setPermissions(new HashSet JavaDoc());
64       PermissionMetaData permission1MD = new PermissionMetaData("p1");
65       permission1MD.setRoleNames(Tools.toSet(new Object JavaDoc[]{"Admins"}));
66       itemMD.getPermissions().add(permission1MD);
67       PermissionMetaData permission2MD = new PermissionMetaData("p2");
68       permission2MD.setRoleNames(Tools.toSet(new Object JavaDoc[]{"Admins","Users"}));
69       itemMD.getPermissions().add(permission2MD);
70       PermissionMetaData permission3MD = new PermissionMetaData("p3");
71       permission3MD.setRoleNames(Tools.toSet(new Object JavaDoc[]{"Users"}));
72       itemMD.getPermissions().add(permission3MD);
73       schemeMD.getItems().add(itemMD);
74    }
75    
76    public void tearDown()
77    {
78       modelMD = null;
79    }
80    
81    public void testScheme() throws Exception JavaDoc
82    {
83       ModelPlugin model = new ModelPlugin();
84       model.setMetaData(modelMD);
85       model.create();
86       model.start();
87       
88       Scheme scheme = model.getDefaultScheme();
89       assertEquals(Tools.toSet(new Object JavaDoc[]{"p1","p2"}), scheme.get(new String JavaDoc[0], "Admins"));
90       assertEquals(Tools.toSet(new Object JavaDoc[]{"p2","p3"}), scheme.get(new String JavaDoc[0], "Users"));
91       assertEquals(Tools.toSet(new Object JavaDoc[]{"p1","p2","p3"}), scheme.get(new String JavaDoc[0], Tools.toSet(new Object JavaDoc[]{"Admins","Users"})));
92    }
93    
94    public void testImplies() throws Exception JavaDoc
95    {
96       ModelPlugin model = new ModelPlugin();
97       model.setMetaData(modelMD);
98       model.create();
99       model.start();
100
101       assertTrue(model.implies("p1", "p2"));
102       assertTrue(model.implies("p2", "p3"));
103       assertTrue(model.implies("p1", "p3"));
104       
105       assertFalse(model.implies("p2", "p1"));
106       assertFalse(model.implies("p3", "p1"));
107       assertFalse(model.implies("p3", "p2"));
108       
109       assertFalse(model.implies("p1", ""));
110       assertFalse(model.implies("p", "p1"));
111       assertFalse(model.implies("p2", ""));
112       assertFalse(model.implies("p", "p2"));
113       assertFalse(model.implies("p2", ""));
114       assertFalse(model.implies("p", "p2"));
115
116       try { assertFalse(model.implies("p1", null)); fail(); } catch(Exception JavaDoc expected) { }
117       try { assertFalse(model.implies(null, "p1")); fail(); } catch(Exception JavaDoc expected) { }
118       
119       model.stop();
120       model.destroy();
121    }
122    
123    public void testMissingTargetDetection()
124    {
125       try
126       {
127          PermissionDescriptionMetaData permissionDescription3MD = new PermissionDescriptionMetaData("p3");
128          permissionDescription3MD.setDescription("this is p3");
129          permissionDescription3MD.setImpliedSet(Tools.toSet(new Object JavaDoc[]{"p4"}));
130          modelMD.getPermissionDescriptions().remove(permissionDescription3MD);
131          modelMD.getPermissionDescriptions().add(permissionDescription3MD);
132          
133          ModelPlugin model = new ModelPlugin();
134          model.setMetaData(modelMD);
135          model.create();
136          model.start();
137          fail();
138       }
139       catch (Exception JavaDoc expected)
140       {
141       }
142    }
143    
144    public void testCycleDetection()
145    {
146       try
147       {
148          PermissionDescriptionMetaData permissionDescription3MD = new PermissionDescriptionMetaData("p3");
149          permissionDescription3MD.setDescription("this is p3");
150          permissionDescription3MD.setImpliedSet(Tools.toSet(new Object JavaDoc[]{"p1"}));
151          modelMD.getPermissionDescriptions().remove(permissionDescription3MD);
152          modelMD.getPermissionDescriptions().add(permissionDescription3MD);
153          
154          ModelPlugin model = new ModelPlugin();
155          model.setMetaData(modelMD);
156          model.create();
157          model.start();
158          fail();
159       }
160       catch (Exception JavaDoc expected)
161       {
162       }
163    }
164
165 }
166
Popular Tags