コード例 #1
0
        public void Constructor()
        {
            MyCodeGroup cg = new MyCodeGroup(new AllMembershipCondition(), new PolicyStatement(new PermissionSet(PermissionState.None)));

            Assert.IsNotNull(cg.PolicyStatement, "PolicyStatement property not set correctly by constructor.");
            Assert.IsNotNull(cg.MembershipCondition, "MembershipCondition property not set correctly by constructor.");
        }
コード例 #2
0
		public void AddChild ()
		{
			MyCodeGroup cg = new MyCodeGroup(new AllMembershipCondition (), new PolicyStatement(new PermissionSet (PermissionState.None)));
			Assert.AreEqual (0, cg.Children.Count, "Unexpected number of children (before add)");
			cg.AddChild (new MyCodeGroup (new AllMembershipCondition (), new PolicyStatement(new PermissionSet (PermissionState.Unrestricted))));
			Assert.AreEqual (1, cg.Children.Count, "Unexpected number of children (after add)");
		}
コード例 #3
0
		public void Description ()
		{
			const string description = "Test Description";
			MyCodeGroup cg = new MyCodeGroup (new AllMembershipCondition(), new PolicyStatement(new PermissionSet(PermissionState.None)));
			cg.Description = description;
			Assert.AreEqual (description, cg.Description, "Description not the expected value");
		}
コード例 #4
0
		public void Name ()
		{
			const string name = "Test Name";
			MyCodeGroup cg = new MyCodeGroup (new AllMembershipCondition(), new PolicyStatement(new PermissionSet(PermissionState.None)));
			cg.Name = name;
			Assert.AreEqual (name, cg.Name, "Description not the expected value");
		}
コード例 #5
0
        public void RemoveChild_Null()
        {
            MyCodeGroup cg = new MyCodeGroup(new AllMembershipCondition(), new PolicyStatement(new PermissionSet(PermissionState.None)));

            cg.RemoveChild(null);
            // no exception
        }
コード例 #6
0
        public void FromXml_Bad()
        {
            MyCodeGroup     cg = new MyCodeGroup(new AllMembershipCondition(), new PolicyStatement(new PermissionSet(PermissionState.None)));
            SecurityElement se = cg.ToXml();

            se.Tag = "Mono";
            // strangely this works :(
            cg.FromXml(se);
            // let's get weirder :)
            foreach (SecurityElement child in se.Children)
            {
                child.Tag = "Mono";
            }
            cg.FromXml(se);
            // it's not enough :(( - very relax parsing
            se.Attributes = new Hashtable();
            cg.FromXml(se);
            // arghh - I will prevail!
            foreach (SecurityElement child in se.Children)
            {
                child.Attributes = new Hashtable();
            }
            cg.FromXml(se);
            // huh ? well maybe not (but this is both cruel and injust)
        }
コード例 #7
0
        public void RemoveChild()
        {
            PolicyStatement ps = new PolicyStatement(new NamedPermissionSet(ps_Name));
            MyCodeGroup     cg = new MyCodeGroup(new AllMembershipCondition(), ps);

            cg.Name        = "SomeName";
            cg.Description = "Some Description";

            MyCodeGroup cgChild = new MyCodeGroup(new ApplicationDirectoryMembershipCondition(), ps);

            cgChild.Name        = "ChildName";
            cgChild.Description = "Child Descripiton";
            cg.AddChild(cgChild);

            MyCodeGroup cgChild2 = new MyCodeGroup(new ApplicationDirectoryMembershipCondition(), ps);

            cgChild2.Name        = "ChildName2";
            cgChild2.Description = "Child Descripiton 2";
            cg.AddChild(cgChild2);

            Assert.AreEqual(2, cg.Children.Count, "Should be two children before the call to Remove()");
            cg.RemoveChild(cgChild);
            Assert.AreEqual(1, cg.Children.Count, "Should be one children after the call to Remove()");
            Assert.AreEqual("ChildName2", ((CodeGroup)cg.Children[0]).Name, "Remaining child does not have correct name");
        }
コード例 #8
0
        public void EqualsWithChildren()
        {
            PolicyStatement ps = new PolicyStatement(new NamedPermissionSet(ps_Name));

            MyCodeGroup cgChild = new MyCodeGroup(new ApplicationDirectoryMembershipCondition(), ps);

            cgChild.Name        = "ChildName";
            cgChild.Description = "Child Descripiton";

            MyCodeGroup cg = new MyCodeGroup(new AllMembershipCondition(), ps);

            cg.Name        = "SomeName";
            cg.Description = "Some Description";
            cg.AddChild(cgChild);

            MyCodeGroup cg2 = new MyCodeGroup(cg.MembershipCondition, cg.PolicyStatement);

            cg2.Name        = cg.Name;
            cg2.Description = cg.Description;

            Assert.IsTrue(cg.Equals(cg2), "Should be equal when Children are ignored");
            Assert.IsTrue(!cg.Equals(cg2, true), "Should not be equal when Child count is different");

            cg2.AddChild(cgChild);
            Assert.IsTrue(cg2.Equals(cg, true), "Should be equal when children are equal");
        }
コード例 #9
0
        public void PermissionSetName()
        {
            PolicyStatement ps = new PolicyStatement(new NamedPermissionSet(ps_Name));
            MyCodeGroup     cg = new MyCodeGroup(new AllMembershipCondition(), ps);

            Assert.AreEqual(ps_Name, cg.PermissionSetName, "PermissionSetName");
        }
コード例 #10
0
        public void Constructor_MembershipConditionPolicyStatementNull()
        {
            // legal
            MyCodeGroup cg = new MyCodeGroup(new AllMembershipCondition(), null);

            Assert.IsNull(cg.PolicyStatement, "PolicyStatement");
        }
コード例 #11
0
		public void AttributeString ()
		{
			PolicyStatementAttribute psa = PolicyStatementAttribute.LevelFinal;
			PolicyStatement ps = new PolicyStatement (new PermissionSet (PermissionState.None));
			ps.Attributes = psa;
			MyCodeGroup cg = new MyCodeGroup(new AllMembershipCondition (), ps);
			Assert.AreEqual (psa.ToString(), cg.AttributeString, "AttributeString");
		}
コード例 #12
0
		public void ToXml () 
		{
			MyCodeGroup cg = new MyCodeGroup (new AllMembershipCondition (), new PolicyStatement(new PermissionSet (PermissionState.None)));
			SecurityElement se = cg.ToXml ();
			string s = se.ToString ();
			Assert.IsTrue (s.StartsWith ("<CodeGroup class=\"MonoTests.System.Security.Policy.MyCodeGroup,"), "ToXml-Starts");
			Assert.IsTrue (s.EndsWith ("version=\"1\"/>" + Environment.NewLine + "</CodeGroup>" + Environment.NewLine), "ToXml-Ends");

			cg.AddChild (new MyCodeGroup (new AllMembershipCondition (), new PolicyStatement(new PermissionSet (PermissionState.Unrestricted))));
			se = cg.ToXml ();
			s = se.ToString ();
			Assert.IsTrue (s.IndexOf ("<CodeGroup class=\"MonoTests.System.Security.Policy.MyCodeGroup,", 1) > 0, "ToXml-Child");
		}
コード例 #13
0
		public void RemoveChild_NonExistant () 
		{
			PolicyStatement ps = new PolicyStatement (new NamedPermissionSet (ps_Name));

			MyCodeGroup cgChild = new MyCodeGroup (new ApplicationDirectoryMembershipCondition (), ps);
			cgChild.Name = "ChildName";
			cgChild.Description = "Child Descripiton";

			MyCodeGroup cg = new MyCodeGroup (new AllMembershipCondition (), ps);
			cg.AddChild (cgChild);
			cg.RemoveChild (cgChild);
			cg.RemoveChild (cgChild);
			// no exception
		}
コード例 #14
0
		public void ToFromXmlRoundtrip () 
		{
			PolicyStatement ps = new PolicyStatement (new NamedPermissionSet (ps_Name));
			MyCodeGroup cg = new MyCodeGroup (new AllMembershipCondition (), ps);
			cg.Name = "SomeName";
			cg.Description = "Some Description";
			Assert.IsTrue (cg.Equals (cg), "Equals (itself)");
			SecurityElement se = cg.ToXml ();

			MyCodeGroup cg2 = new MyCodeGroup (new AllMembershipCondition(), ps);
			cg2.Name = "SomeOtherName";
			cg2.Description = "Some Other Description";
			Assert.IsTrue (!cg.Equals (cg2), "Equals (another)");

			cg2.FromXml (se);
			Assert.IsTrue (cg.Equals (cg2), "Equals (FromXml)");
		}
コード例 #15
0
		public void Equals ()
		{
			PolicyStatement ps = new PolicyStatement (new NamedPermissionSet (ps_Name));
			MyCodeGroup cg = new MyCodeGroup (new AllMembershipCondition (), ps);
			cg.Name = "SomeName";
			cg.Description = "Some Description";
			Assert.IsTrue (cg.Equals (cg), "Equals (itself)");
			Assert.IsTrue (!cg.Equals ("Not Equal to this"), "Equals (string)");

			MyCodeGroup cg2 = new MyCodeGroup(new AllMembershipCondition(), ps);
			cg2.Name = "SomeOtherName";
			cg2.Description = "Some Other Description";
			Assert.IsTrue (!cg.Equals (cg2), "Equals (another)");

			cg2 = new MyCodeGroup (new ApplicationDirectoryMembershipCondition(), ps);
			cg2.Name = cg.Name;
			cg2.Description = cg.Description;
			Assert.IsTrue (!cg.Equals (cg2), "Equals (different Membership Condition)");
		}
コード例 #16
0
		public void ToFromXmlRoundtrip_WithChildren_Second () 
		{
			PolicyStatement ps = new PolicyStatement (new NamedPermissionSet (ps_Name));

			// only the child is MySecondCodeGroup
			MySecondCodeGroup cgChild = new MySecondCodeGroup (new ApplicationDirectoryMembershipCondition (), ps);
			cgChild.Name = "ChildName";
			cgChild.Description = "Child Descripiton";

			MyCodeGroup cg = new MyCodeGroup (new AllMembershipCondition (), ps);
			cg.Name = "SomeName";
			cg.Description = "Some Description";
			cg.AddChild (cgChild);
			Assert.IsTrue (cg.Equals (cg), "Equals (itself)");
			SecurityElement se = cg.ToXml ();

			MyCodeGroup cg2 = (MyCodeGroup) cg.Copy ();
			cg2.FromXml (se);
			Assert.IsTrue (cg.Equals (cg2, true), "Equals (FromXml)");
		}
コード例 #17
0
		public void ToFromXmlRoundtrip_WithChildren () 
		{
			PolicyStatement ps = new PolicyStatement (new NamedPermissionSet (ps_Name));

			MyCodeGroup cgChild = new MyCodeGroup (new ApplicationDirectoryMembershipCondition (), ps);
			cgChild.Name = "ChildName";
			cgChild.Description = "Child Descripiton";

			MyCodeGroup cg = new MyCodeGroup (new AllMembershipCondition (), ps);
			cg.Name = "SomeName";
			cg.Description = "Some Description";
			cg.AddChild (cgChild);
			cg.AddChild (cgChild);
			Assert.IsTrue (cg.Equals (cg), "Equals (itself)");
			SecurityElement se = cg.ToXml ();

			MyCodeGroup cg2 = (MyCodeGroup) cg.Copy ();
			cg2.FromXml (se);
			// MissingMethodException down here (stangely not up here ?!? delayed ?)
			Assert.IsTrue (cg.Equals (cg2, true), "Equals (FromXml)");
		}
コード例 #18
0
ファイル: CodeGroupTest.cs プロジェクト: nlhepler/mono
		public void Constructor ()
		{
			MyCodeGroup cg = new MyCodeGroup (new AllMembershipCondition(), new PolicyStatement(new PermissionSet(PermissionState.None)));
			Assert.IsNotNull (cg.PolicyStatement, "PolicyStatement property not set correctly by constructor.");
			Assert.IsNotNull (cg.MembershipCondition, "MembershipCondition property not set correctly by constructor.");
		}
コード例 #19
0
ファイル: CodeGroupTest.cs プロジェクト: nlhepler/mono
		public void Constructor_MembershipConditionPolicyStatementNull () 
		{
			// legal
			MyCodeGroup cg = new MyCodeGroup (new AllMembershipCondition(), null);
			Assert.IsNull (cg.PolicyStatement, "PolicyStatement");
		}
コード例 #20
0
		public void Constructor_MembershipConditionNullPolicyStatement ()
		{
			MyCodeGroup cg = new MyCodeGroup (null, new PolicyStatement(new PermissionSet(PermissionState.None)));
		}
コード例 #21
0
ファイル: CodeGroupTest.cs プロジェクト: nlhepler/mono
		public void FromXml_Bad () 
		{
			MyCodeGroup cg = new MyCodeGroup (new AllMembershipCondition (), new PolicyStatement(new PermissionSet (PermissionState.None)));
			SecurityElement se = cg.ToXml ();
			se.Tag = "Mono";
			// strangely this works :(
			cg.FromXml (se);
			// let's get weirder :)
			foreach (SecurityElement child in se.Children) {
				child.Tag = "Mono";
			}
			cg.FromXml (se);
			// it's not enough :(( - very relax parsing
			se.Attributes = new Hashtable ();
			cg.FromXml (se);
			// arghh - I will prevail!
			foreach (SecurityElement child in se.Children) {
				child.Attributes = new Hashtable ();
			}
			cg.FromXml (se);
			// huh ? well maybe not (but this is both cruel and injust)
		}
コード例 #22
0
		public void Children_Null () 
		{
			MyCodeGroup cg = new MyCodeGroup (new AllMembershipCondition (), new PolicyStatement(new PermissionSet (PermissionState.None)));
			cg.Children = null;
		}
コード例 #23
0
ファイル: CodeGroupTest.cs プロジェクト: nlhepler/mono
		public void PermissionSetName ()
		{
			PolicyStatement ps = new PolicyStatement(new NamedPermissionSet (ps_Name));
			MyCodeGroup cg = new MyCodeGroup (new AllMembershipCondition (), ps);
			Assert.AreEqual (ps_Name, cg.PermissionSetName, "PermissionSetName");
		}
コード例 #24
0
ファイル: CodeGroupTest.cs プロジェクト: nlhepler/mono
		public void RemoveChild_Null () 
		{
			MyCodeGroup cg = new MyCodeGroup (new AllMembershipCondition (), new PolicyStatement(new PermissionSet (PermissionState.None)));
			cg.RemoveChild (null);
			// no exception
		}
コード例 #25
0
ファイル: CodeGroupTest.cs プロジェクト: nlhepler/mono
		public void EqualsWithChildren ()
		{
			PolicyStatement ps = new PolicyStatement (new NamedPermissionSet (ps_Name));
			
			MyCodeGroup cgChild = new MyCodeGroup(new ApplicationDirectoryMembershipCondition(), ps);
			cgChild.Name = "ChildName";
			cgChild.Description = "Child Descripiton";

			MyCodeGroup cg = new MyCodeGroup (new AllMembershipCondition (), ps);
			cg.Name = "SomeName";
			cg.Description = "Some Description";
			cg.AddChild (cgChild);

			MyCodeGroup cg2 = new MyCodeGroup (cg.MembershipCondition, cg.PolicyStatement);
			cg2.Name = cg.Name;
			cg2.Description = cg.Description;

			Assert.IsTrue (cg.Equals (cg2), "Should be equal when Children are ignored");
			Assert.IsTrue (!cg.Equals(cg2, true), "Should not be equal when Child count is different");

			cg2.AddChild(cgChild);
			Assert.IsTrue (cg2.Equals(cg, true), "Should be equal when children are equal");
		}
コード例 #26
0
ファイル: CodeGroupTest.cs プロジェクト: nlhepler/mono
		public void RemoveChild ()
		{
			PolicyStatement ps = new PolicyStatement (new NamedPermissionSet (ps_Name));
			MyCodeGroup cg = new MyCodeGroup (new AllMembershipCondition (), ps);
			cg.Name = "SomeName";
			cg.Description = "Some Description";

			MyCodeGroup cgChild = new MyCodeGroup (new ApplicationDirectoryMembershipCondition (), ps);
			cgChild.Name = "ChildName";
			cgChild.Description = "Child Descripiton";
			cg.AddChild (cgChild);

			MyCodeGroup cgChild2 = new MyCodeGroup (new ApplicationDirectoryMembershipCondition (), ps);
			cgChild2.Name = "ChildName2";
			cgChild2.Description = "Child Descripiton 2";
			cg.AddChild (cgChild2);

			Assert.AreEqual (2, cg.Children.Count, "Should be two children before the call to Remove()");
			cg.RemoveChild(cgChild);
			Assert.AreEqual (1, cg.Children.Count, "Should be one children after the call to Remove()");
			Assert.AreEqual("ChildName2", ((CodeGroup)cg.Children[0]).Name, "Remaining child does not have correct name");
		}