예제 #1
0
        public void FromXml_WrongVersion()
        {
            ServiceControllerPermission scp = new ServiceControllerPermission(PermissionState.None);
            SecurityElement             se  = scp.ToXml();

            se.Attributes.Remove("version");
            se.Attributes.Add("version", "2");
            scp.FromXml(se);
        }
예제 #2
0
        public void FromXml_NoVersion()
        {
            ServiceControllerPermission scp = new ServiceControllerPermission(PermissionState.None);
            SecurityElement             se  = scp.ToXml();

            SecurityElement w = new SecurityElement(se.Tag);

            w.AddAttribute("class", se.Attribute("class"));
            scp.FromXml(w);
        }
예제 #3
0
        public void FromXml_WrongTagCase()
        {
            ServiceControllerPermission scp = new ServiceControllerPermission(PermissionState.None);
            SecurityElement             se  = scp.ToXml();

            se.Tag = "IPERMISSION";             // instead of IPermission
            scp.FromXml(se);
            // note: normally IPermission classes (in corlib) DO care about the
            // IPermission tag
        }
예제 #4
0
        public void FromXml_NoClass()
        {
            ServiceControllerPermission scp = new ServiceControllerPermission(PermissionState.None);
            SecurityElement             se  = scp.ToXml();

            SecurityElement w = new SecurityElement(se.Tag);

            w.AddAttribute("version", se.Attribute("version"));
            scp.FromXml(w);
            // doesn't even care of the class attribute presence
        }
예제 #5
0
        public void FromXml_WrongClass()
        {
            ServiceControllerPermission scp = new ServiceControllerPermission(PermissionState.None);
            SecurityElement             se  = scp.ToXml();

            SecurityElement w = new SecurityElement(se.Tag);

            w.AddAttribute("class", "Wrong" + se.Attribute("class"));
            w.AddAttribute("version", se.Attribute("version"));
            scp.FromXml(w);
            // doesn't care of the class name at that stage
            // anyway the class has already be created so...
        }
예제 #6
0
        public void PermissionState_Unrestricted()
        {
            PermissionState             ps  = PermissionState.Unrestricted;
            ServiceControllerPermission scp = new ServiceControllerPermission(ps);

            Assert.AreEqual(0, scp.PermissionEntries.Count, "PermissionEntries");
            Assert.IsTrue(scp.IsUnrestricted(), "IsUnrestricted");

            SecurityElement se = scp.ToXml();

            // only class and version are present
            Assert.AreEqual("true", se.Attribute("Unrestricted"), "Xml-Unrestricted");
            Assert.IsNull(se.Children, "Xml-Children");

            ServiceControllerPermission copy = (ServiceControllerPermission)scp.Copy();

            Assert.IsFalse(Object.ReferenceEquals(scp, copy), "ReferenceEquals");
            Assert.AreEqual(scp.PermissionEntries.Count, copy.PermissionEntries.Count, "copy-PermissionEntries");
            Assert.AreEqual(scp.IsUnrestricted(), copy.IsUnrestricted(), "copy-IsUnrestricted ()");
        }