File: ObjectSecurity_TTest.cs

package info (click to toggle)
mono-reference-assemblies 3.12.1%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 604,240 kB
  • ctags: 625,505
  • sloc: cs: 3,967,741; xml: 2,793,081; ansic: 418,042; java: 60,435; sh: 14,833; makefile: 11,576; sql: 7,956; perl: 1,467; cpp: 1,446; yacc: 1,203; python: 598; asm: 422; sed: 16; php: 1
file content (105 lines) | stat: -rw-r--r-- 3,067 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
// ObjectSecurity_TTest.cs - NUnit Test Cases for ObjectSecurity<T>
//
// Authors:
//	James Bellinger (jfb@zer7.com)

#if NET_4_0

using System;
using System.Security.AccessControl;
using System.Security.Principal;
using NUnit.Framework;

namespace MonoTests.System.Security.AccessControl
{
	[TestFixture]
	public class ObjectSecurity_TTest
	{
		enum WillWorkRights
		{
			Value = 1
		}

		class WillWorkSecurity : ObjectSecurity<WillWorkRights>
		{
			public WillWorkSecurity ()
				: base (false, ResourceType.Unknown)
			{

			}
		}

		struct WillFailRights
		{

		}

		class WillFailSecurity : ObjectSecurity<WillFailRights>
		{
			public WillFailSecurity ()
				: base (false, ResourceType.Unknown)
			{

			}
		}

		[Test]
		public void TypesAreCorrect ()
		{
			WillWorkSecurity security = new WillWorkSecurity ();
			Assert.AreEqual (security.AccessRightType, typeof (WillWorkRights));
			Assert.AreEqual (security.AccessRuleType, typeof (AccessRule<WillWorkRights>));
			Assert.AreEqual (security.AuditRuleType, typeof (AuditRule<WillWorkRights>));
		}

		[Test]
		public void WillWorkOKUsingAccessFactory ()
		{
			WillWorkSecurity security = new WillWorkSecurity ();
			SecurityIdentifier id = new SecurityIdentifier (WellKnownSidType.WorldSid, null);
			AccessRule<WillWorkRights> rule = (AccessRule<WillWorkRights>)
				security.AccessRuleFactory (id, 1, false,
					InheritanceFlags.None, PropagationFlags.None,
					AccessControlType.Allow);
			Assert.AreEqual (rule.AccessControlType, AccessControlType.Allow);
			Assert.AreEqual (rule.IdentityReference, id);
			Assert.AreEqual (rule.InheritanceFlags, InheritanceFlags.None);
			Assert.AreEqual (rule.PropagationFlags, PropagationFlags.None);
			Assert.AreEqual (rule.Rights, WillWorkRights.Value);
		}

		[Test]
		public void WillWorkOKUsingConstructor()
		{
			SecurityIdentifier id = new SecurityIdentifier (WellKnownSidType.WorldSid, null);
			AccessRule<WillWorkRights> rule = new AccessRule<WillWorkRights> (id, WillWorkRights.Value,
											  AccessControlType.Allow);
			Assert.AreEqual (rule.AccessControlType, AccessControlType.Allow);
			Assert.AreEqual (rule.IdentityReference, id);
			Assert.AreEqual (rule.Rights, WillWorkRights.Value);
		}

		[Test, ExpectedException (typeof (InvalidCastException))]
		public void WillFailFailsUsingFactoryOnGetter()
		{
			WillFailSecurity security = new WillFailSecurity ();
			SecurityIdentifier id = new SecurityIdentifier (WellKnownSidType.WorldSid, null);
			AccessRule<WillFailRights> rule = (AccessRule<WillFailRights>)
				security.AccessRuleFactory (id, 1, false,
					InheritanceFlags.None, PropagationFlags.None,
					AccessControlType.Allow);
			WillFailRights rights = rule.Rights;
		}

		[Test, ExpectedException (typeof (InvalidCastException))]
		public void WillFailFailsUsingConstructor()
		{
			SecurityIdentifier id = new SecurityIdentifier (WellKnownSidType.WorldSid, null);
			AccessRule<WillFailRights> rule = new AccessRule<WillFailRights> (id, new WillFailRights(),
											  AccessControlType.Allow);
		}
	}
}

#endif