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");
}