public void FromXml_NameEmpty() { StrongNameIdentityPermission snip = new StrongNameIdentityPermission(PermissionState.None); SecurityElement se = snip.ToXml(); snip.FromXml(se); snip.PublicKey = new StrongNamePublicKeyBlob(ecma); snip.Version = new Version("1.2.3.4"); se = snip.ToXml(); snip.FromXml(se); }
public void PermissionStateNone() { StrongNameIdentityPermission snip = new StrongNameIdentityPermission(PermissionState.None); Assert.AreEqual(String.Empty, snip.Name, "Name"); Assert.IsNull(snip.PublicKey, "PublicKey"); Assert.AreEqual("0.0", snip.Version.ToString(), "Version"); SecurityElement se = snip.ToXml(); #if NET_2_0 Assert.IsNull(se.Attribute("Name"), "Xml-Name"); Assert.IsNull(se.Attribute("AssemblyVersion"), "Xml-AssemblyVersion"); #else Assert.AreEqual(String.Empty, se.Attribute("Name"), "Xml-Name"); Assert.AreEqual("0.0", se.Attribute("AssemblyVersion"), "Xml-AssemblyVersion"); #endif Assert.IsNull(se.Attribute("PublicKeyBlob"), "Xml-PublicKeyBlob"); // because Name == String.Empty, which is illegal using the other constructor StrongNameIdentityPermission copy = (StrongNameIdentityPermission)snip.Copy(); Assert.AreEqual(String.Empty, copy.Name, "Copy-Name"); #if NET_2_0 // Strangely once copied the Name becomes equals to String.Empty in 2.0 [FDBK19351] Assert.IsNull(se.Attribute("AssemblyVersion"), "Copy-Version"); #else Assert.AreEqual("0.0", copy.Version.ToString(), "Copy-Version"); #endif Assert.IsNull(copy.PublicKey, "Copy-PublicKey"); }
public void FromXml_WrongTag() { StrongNameIdentityPermission snip = new StrongNameIdentityPermission(PermissionState.None); SecurityElement se = snip.ToXml(); se.Tag = "IMono"; snip.FromXml(se); }
public void FromXml_WrongTagCase() { StrongNameIdentityPermission snip = new StrongNameIdentityPermission(PermissionState.None); SecurityElement se = snip.ToXml(); se.Tag = "IPERMISSION"; // instead of IPermission snip.FromXml(se); }
public void FromXml_WrongVersion() { StrongNameIdentityPermission snip = new StrongNameIdentityPermission(PermissionState.None); SecurityElement se = snip.ToXml(); se.Attributes.Remove("version"); se.Attributes.Add("version", "2"); snip.FromXml(se); }
public void FromXml_NoVersion() { StrongNameIdentityPermission snip = new StrongNameIdentityPermission(PermissionState.None); SecurityElement se = snip.ToXml(); SecurityElement w = new SecurityElement(se.Tag); w.AddAttribute("class", se.Attribute("class")); snip.FromXml(w); }
public void FromXml_NoClass() { StrongNameIdentityPermission snip = new StrongNameIdentityPermission(PermissionState.None); SecurityElement se = snip.ToXml(); SecurityElement w = new SecurityElement(se.Tag); w.AddAttribute("version", se.Attribute("version")); snip.FromXml(w); // doesn't even care of the class attribute presence }
public void FromXml_WrongClass() { StrongNameIdentityPermission snip = new StrongNameIdentityPermission(PermissionState.None); SecurityElement se = snip.ToXml(); SecurityElement w = new SecurityElement(se.Tag); w.AddAttribute("class", "Wrong" + se.Attribute("class")); w.AddAttribute("version", se.Attribute("version")); snip.FromXml(w); // doesn't care of the class name at that stage // anyway the class has already be created so... }
//</Snippet5> //<Snippet6> // ToXml creates an XML encoding of the permission and its current state; //FromXml reconstructs a permission with the specified state from the XML encoding. private bool ToFromXmlDemo() { bool returnValue = true; StrongNameIdentityPermission snIdPerm1, snIdPerm2; snIdPerm1 = new StrongNameIdentityPermission(blob, "MyCompany.MyDepartment.*", new Version("1.0.0.0")); snIdPerm2 = new StrongNameIdentityPermission(PermissionState.None); snIdPerm2.FromXml(snIdPerm1.ToXml()); Console.WriteLine("Result of ToFromXml = " + snIdPerm2.ToString() + "\n"); return(returnValue); }
public static void StrongNameIdentityPermissionCallMethods() { StrongNameIdentityPermission snip = new StrongNameIdentityPermission(new Permissions.PermissionState()); StrongNameIdentityPermission snip2 = new StrongNameIdentityPermission(new Permissions.StrongNamePublicKeyBlob(new byte[1]), "test", new Version(1, 2)); IPermission ip = snip.Copy(); IPermission ip2 = snip.Intersect(ip); bool testbool = snip.IsSubsetOf(ip); ip2 = snip.Union(ip); SecurityElement se = new SecurityElement(""); snip.FromXml(se); se = snip.ToXml(); }
public void Copy_NameEmpty() { StrongNameIdentityPermission snip = new StrongNameIdentityPermission(PermissionState.None); snip.PublicKey = new StrongNamePublicKeyBlob(ecma); snip.Version = new Version("1.2.3.4"); // because Name == String.Empty, which is illegal using the other constructor // but (somewhat) required to copy the teo other informations StrongNameIdentityPermission copy = (StrongNameIdentityPermission)snip.Copy(); #if NET_2_0 Assert.IsTrue(copy.Equals(snip), "Equals"); #else Assert.AreEqual(copy.ToXml().ToString(), snip.ToXml().ToString(), "Equals-XML"); #endif }
public void Union_SamePublicKey_DifferentVersion() { StrongNamePublicKeyBlob blob = new StrongNamePublicKeyBlob(ecma); StrongNameIdentityPermission snip = new StrongNameIdentityPermission(blob, "mono", new Version(1, 2, 3, 4)); StrongNameIdentityPermission diffVersion = new StrongNameIdentityPermission(blob, null, new Version(1, 2)); StrongNameIdentityPermission result = (StrongNameIdentityPermission)snip.Union(diffVersion); Assert.IsNotNull(result, "DifferentVersion"); // new XML format is used to contain more than one site SecurityElement se = result.ToXml(); Assert.AreEqual(2, se.Children.Count, "Childs"); Assert.AreEqual("1.2.3.4", (se.Children [0] as SecurityElement).Attribute("AssemblyVersion"), "AssemblyVersion#1"); Assert.AreEqual("1.2", (se.Children [1] as SecurityElement).Attribute("AssemblyVersion"), "AssemblyVersion#2"); // strangely it is still versioned as 'version="1"'. Assert.AreEqual("1", se.Attribute("version"), "Version"); }
public void Union_DifferentPk() { StrongNamePublicKeyBlob blob = new StrongNamePublicKeyBlob(ecma); StrongNameIdentityPermission snip = new StrongNameIdentityPermission(blob, "mono", new Version(1, 2, 3, 4)); StrongNamePublicKeyBlob blob2 = new StrongNamePublicKeyBlob(new byte [16]); StrongNameIdentityPermission diffPk = new StrongNameIdentityPermission(blob2, "mono", new Version(1, 2, 3, 4)); StrongNameIdentityPermission result = (StrongNameIdentityPermission)snip.Union(diffPk); Assert.IsNotNull(result, "DifferentPk"); // new XML format is used to contain more than one site SecurityElement se = result.ToXml(); Assert.AreEqual(2, se.Children.Count, "Childs"); Assert.AreEqual("00000000000000000400000000000000", (se.Children [0] as SecurityElement).Attribute("PublicKeyBlob"), "Blob#1"); Assert.AreEqual("00000000000000000000000000000000", (se.Children [1] as SecurityElement).Attribute("PublicKeyBlob"), "Blob#2"); // strangely it is still versioned as 'version="1"'. Assert.AreEqual("1", se.Attribute("version"), "Version"); }
public void PermissionStateUnrestricted() { // In 2.0 Unrestricted are permitted for identity permissions StrongNameIdentityPermission snip = new StrongNameIdentityPermission(PermissionState.Unrestricted); Assert.AreEqual(String.Empty, snip.Name, "Name"); Assert.IsNull(snip.PublicKey, "PublicKey"); Assert.AreEqual("0.0", snip.Version.ToString(), "Version"); SecurityElement se = snip.ToXml(); Assert.IsNull(se.Attribute("Name"), "Xml-Name"); Assert.IsNull(se.Attribute("PublicKeyBlob"), "Xml-PublicKeyBlob"); Assert.IsNull(se.Attribute("AssemblyVersion"), "Xml-AssemblyVersion"); StrongNameIdentityPermission copy = (StrongNameIdentityPermission)snip.Copy(); Assert.IsTrue(snip.Equals(copy), "snip Equals copy"); Assert.IsTrue(copy.Equals(snip), "copy Equals snip"); // and they aren't equals to None Assert.IsFalse(snip.Equals(new StrongNameIdentityPermission(PermissionState.None)), "Not Equals None"); }
public void Union_SamePublicKey_DifferentName() { StrongNamePublicKeyBlob blob = new StrongNamePublicKeyBlob(ecma); StrongNameIdentityPermission snip = new StrongNameIdentityPermission(blob, "mono", new Version(1, 2, 3, 4)); StrongNameIdentityPermission diffName = new StrongNameIdentityPermission(blob, "novell", null); StrongNameIdentityPermission result = (StrongNameIdentityPermission)snip.Union(diffName); #if NET_2_0 Assert.IsNotNull(result, "DifferentName"); // new XML format is used to contain more than one site SecurityElement se = result.ToXml(); Assert.AreEqual(2, se.Children.Count, "Childs"); Assert.AreEqual("mono", (se.Children [0] as SecurityElement).Attribute("Name"), "Name#1"); Assert.AreEqual("novell", (se.Children [1] as SecurityElement).Attribute("Name"), "Name#2"); // strangely it is still versioned as 'version="1"'. Assert.AreEqual("1", se.Attribute("version"), "Version"); #else Assert.IsNull(result, "DifferentName"); #endif }
public void StrongNameIdentityPermission_All() { StrongNamePublicKeyBlob blob = new StrongNamePublicKeyBlob(ecma); StrongNameIdentityPermission snip = new StrongNameIdentityPermission(blob, "mono", new Version(1, 2, 3, 4)); Assert.AreEqual("mono", snip.Name, "Name"); Assert.AreEqual("00000000000000000400000000000000", snip.PublicKey.ToString(), "PublicKey"); Assert.AreEqual("1.2.3.4", snip.Version.ToString(), "Version"); SecurityElement se = snip.ToXml(); Assert.AreEqual("mono", se.Attribute("Name"), "Xml-Name"); Assert.AreEqual("00000000000000000400000000000000", se.Attribute("PublicKeyBlob"), "Xml-PublicKeyBlob"); Assert.AreEqual("1.2.3.4", se.Attribute("AssemblyVersion"), "Xml-AssemblyVersion"); StrongNameIdentityPermission copy = (StrongNameIdentityPermission)snip.Copy(); Assert.AreEqual("mono", se.Attribute("Name"), "Copy-Name"); Assert.AreEqual("00000000000000000400000000000000", se.Attribute("PublicKeyBlob"), "Copy-PublicKeyBlob"); Assert.AreEqual("1.2.3.4", se.Attribute("AssemblyVersion"), "Copy-AssemblyVersion"); }
public static void StrongNameIdentityPermissionCallMethods() { StrongNameIdentityPermission snip = new StrongNameIdentityPermission(new Permissions.PermissionState()); StrongNameIdentityPermission snip2 = new StrongNameIdentityPermission(new Permissions.StrongNamePublicKeyBlob(new byte[1]), "test", new System.Version(1, 2)); IPermission ip = snip.Copy(); IPermission ip2 = snip.Intersect(ip); bool testbool = snip.IsSubsetOf(ip); ip2 = snip.Union(ip); SecurityElement se = new SecurityElement(""); snip.FromXml(se); se = snip.ToXml(); }
// ToXml creates an XML encoding of the permission and its current state; //FromXml reconstructs a permission with the specified state from the XML encoding. private bool ToFromXmlDemo() { bool returnValue = true; StrongNameIdentityPermission snIdPerm1, snIdPerm2; snIdPerm1 = new StrongNameIdentityPermission(blob, "MyCompany.MyDepartment.*", new Version("1.0.0.0")); snIdPerm2 = new StrongNameIdentityPermission(PermissionState.None); snIdPerm2.FromXml(snIdPerm1.ToXml()); Console.WriteLine("Result of ToFromXml = " + snIdPerm2.ToString() + "\n"); return returnValue; }