aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/Tests/ACLTest.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Framework/Tests/ACLTest.cs')
-rw-r--r--OpenSim/Framework/Tests/ACLTest.cs98
1 files changed, 98 insertions, 0 deletions
diff --git a/OpenSim/Framework/Tests/ACLTest.cs b/OpenSim/Framework/Tests/ACLTest.cs
new file mode 100644
index 0000000..d11f307
--- /dev/null
+++ b/OpenSim/Framework/Tests/ACLTest.cs
@@ -0,0 +1,98 @@
1using System;
2using NUnit.Framework;
3using System.Collections.Generic;
4
5
6namespace OpenSim.Framework.Tests
7{
8 [TestFixture]
9 public class ACLTest
10 {
11 #region Tests
12
13 /// <summary>
14 /// ACL Test class
15 /// </summary>
16 [Test]
17 public void ACLTest01()
18 {
19 ACL acl = new ACL();
20
21 Role Guests = new Role("Guests");
22 acl.AddRole(Guests);
23
24 Role[] parents = new Role[1];
25 parents[0] = Guests;
26
27 Role JoeGuest = new Role("JoeGuest", parents);
28 acl.AddRole(JoeGuest);
29
30 Resource CanBuild = new Resource("CanBuild");
31 acl.AddResource(CanBuild);
32
33
34 acl.GrantPermission("Guests", "CanBuild");
35
36 Permission perm = acl.HasPermission("JoeGuest", "CanBuild");
37 Assert.That(perm == Permission.Allow, "JoeGuest should have permission to build");
38 perm = Permission.None;
39 try
40 {
41 perm = acl.HasPermission("unknownGuest", "CanBuild");
42
43 }
44 catch (KeyNotFoundException)
45 {
46
47
48 }
49 catch (Exception)
50 {
51 Assert.That(false,"Exception thrown should have been KeyNotFoundException");
52 }
53 Assert.That(perm == Permission.None,"Permission None should be set because exception should have been thrown");
54
55 }
56
57 [Test]
58 public void KnownButPermissionDenyAndPermissionNoneUserTest()
59 {
60 ACL acl = new ACL();
61
62 Role Guests = new Role("Guests");
63 acl.AddRole(Guests);
64 Role Administrators = new Role("Administrators");
65 acl.AddRole(Administrators);
66 Role[] Guestparents = new Role[1];
67 Role[] Adminparents = new Role[1];
68
69 Guestparents[0] = Guests;
70 Adminparents[0] = Administrators;
71
72 Role JoeGuest = new Role("JoeGuest", Guestparents);
73 acl.AddRole(JoeGuest);
74
75 Resource CanBuild = new Resource("CanBuild");
76 acl.AddResource(CanBuild);
77
78 Resource CanScript = new Resource("CanScript");
79 acl.AddResource(CanScript);
80
81 Resource CanRestart = new Resource("CanRestart");
82 acl.AddResource(CanRestart);
83
84 acl.GrantPermission("Guests", "CanBuild");
85 acl.DenyPermission("Guests", "CanRestart");
86
87 acl.GrantPermission("Administrators", "CanScript");
88
89 acl.GrantPermission("Administrators", "CanRestart");
90 Permission setPermission = acl.HasPermission("JoeGuest", "CanRestart");
91 Assert.That(setPermission == Permission.Deny, "Guests Should not be able to restart");
92 Assert.That(acl.HasPermission("JoeGuest", "CanScript") == Permission.None,
93 "No Explicit Permissions set so should be Permission.None");
94 }
95
96 #endregion
97 }
98}