This commit was manufactured by cvs2svn to create branch 'mono-1-0'.
[mono.git] / mcs / class / corlib / Test / System.Security.Policy / NetCodeGroupTest.cs
1 //
2 // MonoTests.System.Security.Policy.NetCodeGroupTest
3 //
4 // Author:
5 //      Sebastien Pouliot (spouliot@motus.com)
6 //
7 // (C) 2004 Motus Technologies Inc. (http://www.motus.com)
8 //
9
10 using NUnit.Framework;
11 using System;
12 using System.Collections;
13 using System.Security;
14 using System.Security.Policy;
15 using System.Security.Permissions;
16
17 namespace MonoTests.System.Security.Policy {
18
19         [TestFixture]
20         public class NetCodeGroupTest : Assertion {
21
22                 [Test]
23                 [ExpectedException (typeof (ArgumentNullException))]
24                 public void Constructor_Null () 
25                 {
26                         NetCodeGroup cg = new NetCodeGroup ((IMembershipCondition)null);
27                 }
28
29                 [Test]
30                 public void Constructor () 
31                 {
32                         NetCodeGroup cg = new NetCodeGroup (new AllMembershipCondition ());
33                         AssertNotNull ("MembershipCondition", cg.MembershipCondition);
34                         AssertNull ("PolicyStatement", cg.PolicyStatement);
35                         // documented as always null
36                         AssertNull ("AttributeString", cg.AttributeString);
37                         // documented as always "Same site Web" but it's "Same site Web." (missing .)
38                         AssertEquals ("PermissionSetName", "Same site Web.", cg.PermissionSetName);
39                 }
40
41                 [Test]
42                 public void MergeLogic () 
43                 {
44                         NetCodeGroup cg = new NetCodeGroup (new AllMembershipCondition ());
45                         AssertEquals ("MergeLogic", "Union", cg.MergeLogic);
46                 }
47
48                 [Test]
49                 public void Copy () 
50                 {
51                         NetCodeGroup cg = new NetCodeGroup (new AllMembershipCondition ());
52                         NetCodeGroup cg2 = (NetCodeGroup) cg.Copy ();
53                         AssertEquals ("AttributeString", cg.AttributeString, cg2.AttributeString);
54                         AssertEquals ("Children", cg.Children.Count, cg2.Children.Count);
55                         AssertEquals ("Description", cg.Description, cg2.Description);
56                         AssertEquals ("MergeLogic", cg.MergeLogic, cg2.MergeLogic);
57                         AssertEquals ("Name", cg.Name, cg2.Name);
58                         AssertEquals ("PermissionSetName", cg.PermissionSetName, cg2.PermissionSetName);
59                         AssertEquals ("ToXml", cg.ToXml ().ToString (), cg2.ToXml ().ToString ());
60                 }
61
62                 [Test]
63                 public void CopyWithChildren () 
64                 {
65                         NetCodeGroup cgChild = new NetCodeGroup (new AllMembershipCondition ());
66                         NetCodeGroup cg = new NetCodeGroup (new AllMembershipCondition ());
67                         cg.AddChild (cgChild);
68                         NetCodeGroup cg2 = (NetCodeGroup) cg.Copy ();
69                         AssertEquals ("Children", cg.Children.Count, cg2.Children.Count);
70                         AssertEquals ("ToXml", cg.ToXml ().ToString (), cg2.ToXml ().ToString ());
71                 }
72
73                 [Test]
74                 [ExpectedException (typeof (ArgumentNullException))]
75                 public void Resolve_Null () 
76                 {
77                         NetCodeGroup cg = new NetCodeGroup (new AllMembershipCondition ());
78                         cg.Resolve (null);
79                 }
80
81                 [Test]
82                 [ExpectedException (typeof (ArgumentNullException))]
83                 public void ResolveMatchingCodeGroups_Null () 
84                 {
85                         NetCodeGroup cg = new NetCodeGroup (new AllMembershipCondition ());
86                         cg.ResolveMatchingCodeGroups (null);
87                 }
88
89                 [Test]
90                 public void ToFromXmlRoundtrip () 
91                 {
92                         NetCodeGroup cg = new NetCodeGroup (new AllMembershipCondition ());
93                         cg.Name = "SomeName";
94                         cg.Description = "Some Description";
95                         Assert ("Equals (itself)", cg.Equals (cg));
96                         SecurityElement se = cg.ToXml ();
97
98                         NetCodeGroup cg2 = new NetCodeGroup (new AllMembershipCondition());
99                         cg2.Name = "SomeOtherName";
100                         cg2.Description = "Some Other Description";
101                         Assert ("Equals (another)", !cg.Equals (cg2));
102
103                         cg2.FromXml (se);
104                         Assert ("Equals (FromXml)", cg.Equals (cg2));
105                 }
106         }
107 }