2 // MonoTests.System.Security.Policy.FirstMatchCodeGroupTest
5 // Sebastien Pouliot (spouliot@motus.com)
7 // (C) 2004 Motus Technologies Inc. (http://www.motus.com)
10 using NUnit
.Framework
;
12 using System
.Collections
;
13 using System
.Security
;
14 using System
.Security
.Policy
;
15 using System
.Security
.Permissions
;
17 namespace MonoTests
.System
.Security
.Policy
{
20 public class FirstMatchCodeGroupTest
{
23 [ExpectedException (typeof (ArgumentNullException
))]
24 public void Constructor_MembershipConditionNullPolicyStatement ()
26 FirstMatchCodeGroup cg
= new FirstMatchCodeGroup (null, new PolicyStatement (new PermissionSet (PermissionState
.None
)));
30 public void Constructor_MembershipConditionPolicyStatementNull ()
33 FirstMatchCodeGroup cg
= new FirstMatchCodeGroup (new AllMembershipCondition (), null);
34 Assert
.IsNull (cg
.PolicyStatement
, "PolicyStatement");
38 public void Constructor ()
40 FirstMatchCodeGroup cg
= new FirstMatchCodeGroup (new AllMembershipCondition (), new PolicyStatement (new PermissionSet (PermissionState
.None
)));
41 Assert
.IsNotNull (cg
.PolicyStatement
, "PolicyStatement");
42 Assert
.IsNotNull (cg
.MembershipCondition
, "MembershipCondition");
46 public void MergeLogic ()
48 FirstMatchCodeGroup cg
= new FirstMatchCodeGroup (new AllMembershipCondition (), new PolicyStatement (new PermissionSet (PermissionState
.None
)));
49 Assert
.AreEqual ("First Match", cg
.MergeLogic
, "MergeLogic");
55 FirstMatchCodeGroup cg
= new FirstMatchCodeGroup (new AllMembershipCondition (), new PolicyStatement (new PermissionSet (PermissionState
.None
)));
56 FirstMatchCodeGroup cg2
= (FirstMatchCodeGroup
) cg
.Copy ();
57 Assert
.AreEqual (cg
.AttributeString
, cg2
.AttributeString
, "AttributeString");
58 Assert
.AreEqual (cg
.Children
.Count
, cg2
.Children
.Count
, "Children");
59 Assert
.AreEqual (cg
.Description
, cg2
.Description
, "Description");
60 Assert
.AreEqual (cg
.MergeLogic
, cg2
.MergeLogic
, "MergeLogic");
61 Assert
.AreEqual (cg
.Name
, cg2
.Name
, "Name");
62 Assert
.AreEqual (cg
.PermissionSetName
, cg2
.PermissionSetName
, "PermissionSetName");
63 Assert
.AreEqual (cg
.ToXml ().ToString (), cg2
.ToXml ().ToString (), "ToXml");
67 public void CopyWithChildren ()
69 FirstMatchCodeGroup cgChild
= new FirstMatchCodeGroup (new AllMembershipCondition (), new PolicyStatement (new PermissionSet (PermissionState
.Unrestricted
)));
70 FirstMatchCodeGroup cg
= new FirstMatchCodeGroup (new AllMembershipCondition (), new PolicyStatement (new PermissionSet (PermissionState
.None
)));
71 cg
.AddChild (cgChild
);
72 FirstMatchCodeGroup cg2
= (FirstMatchCodeGroup
) cg
.Copy ();
73 Assert
.AreEqual (cg
.Children
.Count
, cg2
.Children
.Count
, "Children");
74 Assert
.AreEqual (cg
.ToXml ().ToString (), cg2
.ToXml ().ToString (), "ToXml");
78 [ExpectedException (typeof (ArgumentNullException
))]
79 public void Resolve_Null ()
81 FirstMatchCodeGroup cg
= new FirstMatchCodeGroup (new AllMembershipCondition (), new PolicyStatement (new PermissionSet (PermissionState
.None
)));
86 [ExpectedException (typeof (ArgumentNullException
))]
87 public void ResolveMatchingCodeGroups_Null ()
89 FirstMatchCodeGroup cg
= new FirstMatchCodeGroup (new AllMembershipCondition (), new PolicyStatement (new PermissionSet (PermissionState
.None
)));
90 cg
.ResolveMatchingCodeGroups (null);
94 public void ToFromXmlRoundtrip ()
96 const string ps_Name
= "TestName";
97 PolicyStatement ps
= new PolicyStatement (new NamedPermissionSet (ps_Name
));
98 FirstMatchCodeGroup cg
= new FirstMatchCodeGroup (new AllMembershipCondition (), ps
);
100 cg
.Description
= "Some Description";
101 Assert
.IsTrue (cg
.Equals (cg
), "Equals (itself)");
102 SecurityElement se
= cg
.ToXml ();
104 FirstMatchCodeGroup cg2
= new FirstMatchCodeGroup (new AllMembershipCondition(), ps
);
105 cg2
.Name
= "SomeOtherName";
106 cg2
.Description
= "Some Other Description";
107 Assert
.IsTrue (!cg
.Equals (cg2
), "Equals (another)");
110 Assert
.IsTrue (cg
.Equals (cg2
), "Equals (FromXml)");