public void ToXml_Unrestricted()
        {
            NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase(PermissionState.Unrestricted);

            rp.TagNames = new string [1] {
                "Monkeys"
            };
            SecurityElement se = rp.ToXml();

            CheckCommonXml("empty", se);
            Assert.AreEqual(3, se.Attributes.Count, "#attributes");
            Assert.AreEqual("true", se.Attribute("Unrestricted"), "Unrestricted");
            Assert.IsNull(se.Children, "Children");

            ResourcePermissionBaseEntry entry = new ResourcePermissionBaseEntry(0, new string [1] {
                "Singes"
            });

            rp.AddPermissionAccess(entry);
            se = rp.ToXml();
            CheckCommonXml("one", se);
            Assert.AreEqual(3, se.Attributes.Count, "#attributes");
            // not XML output of childrens for unrestricted
            Assert.IsNull(se.Children, "Children");
        }
        public void ToXml()
        {
            NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase();

            rp.TagNames = new string [1] {
                "Monkeys"
            };
            SecurityElement se = rp.ToXml();

            CheckCommonXml("empty", se);
            Assert.AreEqual(2, se.Attributes.Count, "#attributes");
            Assert.IsNull(se.Children, "Children");

            ResourcePermissionBaseEntry entry = new ResourcePermissionBaseEntry(0, new string [1] {
                "Singes"
            });

            rp.AddPermissionAccess(entry);
            se = rp.ToXml();
            CheckCommonXml("one", se);
            Assert.AreEqual(2, se.Attributes.Count, "#attributes");
            Assert.AreEqual(1, se.Children.Count, "1-Children");
            SecurityElement child = (SecurityElement)se.Children [0];

            Assert.AreEqual("Monkeys", child.Tag, "Monkeys");
            Assert.AreEqual("Singes", child.Attribute("name"), "Singes");
        }
        public void FromXml_WrongTagCase()
        {
            NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase();
            SecurityElement se = rp.ToXml();

            se.Tag = "IPERMISSION";             // instead of IPermission
            rp.FromXml(se);
        }
        public void FromXml_NoVersion()
        {
            NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase();
            SecurityElement se = rp.ToXml();

            SecurityElement w = new SecurityElement(se.Tag);

            w.AddAttribute("class", se.Attribute("class"));
            rp.FromXml(w);
        }
        public void FromXml_NoClass()
        {
            NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase();
            SecurityElement se = rp.ToXml();

            SecurityElement w = new SecurityElement(se.Tag);

            w.AddAttribute("version", se.Attribute("version"));
            rp.FromXml(w);
            // doesn't even care of the class attribute presence
        }
        public void FromXml_WrongClass()
        {
            NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase();
            SecurityElement se = rp.ToXml();

            SecurityElement w = new SecurityElement(se.Tag);

            w.AddAttribute("class", "Wrong" + se.Attribute("class"));
            w.AddAttribute("version", se.Attribute("version"));
            rp.FromXml(w);
            // doesn't care of the class name at that stage
            // anyway the class has already be created so...
        }
		public void ToXml_Unrestricted ()
		{
			NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase (PermissionState.Unrestricted);
			rp.TagNames = new string [1] { "Monkeys" };
			SecurityElement se = rp.ToXml ();
			CheckCommonXml ("empty", se);
			Assert.AreEqual (3, se.Attributes.Count, "#attributes");
			Assert.AreEqual ("true", se.Attribute ("Unrestricted"), "Unrestricted");
			Assert.IsNull (se.Children, "Children");

			ResourcePermissionBaseEntry entry = new ResourcePermissionBaseEntry (0, new string [1] { "Singes" });
			rp.AddPermissionAccess (entry);
			se = rp.ToXml ();
			CheckCommonXml ("one", se);
			Assert.AreEqual (3, se.Attributes.Count, "#attributes");
			// not XML output of childrens for unrestricted
			Assert.IsNull (se.Children, "Children");
		}
		public void ToXml ()
		{
			NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase ();
			rp.TagNames = new string [1] { "Monkeys" };
			SecurityElement se = rp.ToXml ();
			CheckCommonXml ("empty", se);
			Assert.AreEqual (2, se.Attributes.Count, "#attributes");
			Assert.IsNull (se.Children, "Children");

			ResourcePermissionBaseEntry entry = new ResourcePermissionBaseEntry (0, new string [1] { "Singes" });
			rp.AddPermissionAccess (entry);
			se = rp.ToXml ();
			CheckCommonXml ("one", se);
			Assert.AreEqual (2, se.Attributes.Count, "#attributes");
			Assert.AreEqual (1, se.Children.Count, "1-Children");
			SecurityElement child = (SecurityElement) se.Children [0];
			Assert.AreEqual ("Monkeys", child.Tag, "Monkeys");
			Assert.AreEqual ("Singes", child.Attribute ("name"), "Singes");
		}
		public void FromXml_NoVersion ()
		{
			NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase ();
			SecurityElement se = rp.ToXml ();

			SecurityElement w = new SecurityElement (se.Tag);
			w.AddAttribute ("class", se.Attribute ("class"));
			rp.FromXml (w);
		}
		public void FromXml_NoClass ()
		{
			NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase ();
			SecurityElement se = rp.ToXml ();

			SecurityElement w = new SecurityElement (se.Tag);
			w.AddAttribute ("version", se.Attribute ("version"));
			rp.FromXml (w);
			// doesn't even care of the class attribute presence
		}
		public void FromXml_WrongClass ()
		{
			NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase ();
			SecurityElement se = rp.ToXml ();

			SecurityElement w = new SecurityElement (se.Tag);
			w.AddAttribute ("class", "Wrong" + se.Attribute ("class"));
			w.AddAttribute ("version", se.Attribute ("version"));
			rp.FromXml (w);
			// doesn't care of the class name at that stage
			// anyway the class has already be created so...
		}
		public void FromXml_WrongTagCase ()
		{
			NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase ();
			SecurityElement se = rp.ToXml ();
			se.Tag = "IPERMISSION"; // instead of IPermission
			rp.FromXml (se);
		}