public void SetPermission_Unrestricted ()
{
SecurityPermission sp = new SecurityPermission (PermissionState.Unrestricted);
PermissionSet ps = new PermissionSet (PermissionState.Unrestricted);
Assert.AreEqual (0, ps.Count, "Empty");
Assert.IsTrue (ps.IsUnrestricted (), "State-Unrestricted");
ZoneIdentityPermission zip = new ZoneIdentityPermission (SecurityZone.MyComputer);
ZoneIdentityPermission zipr = (ZoneIdentityPermission)ps.SetPermission (zip);
Assert.AreEqual (1, ps.Count, "ZoneIdentityPermission");
Assert.AreEqual (SecurityZone.MyComputer, zipr.SecurityZone, "SecurityZone");
#if NET_2_0
// Adding a non unrestricted identity permission now results in
// a permission set loosing it's unrestricted status
Assert.IsTrue (!ps.IsUnrestricted (), "State-Unrestricted-2");
#else
Assert.IsTrue (ps.IsUnrestricted (), "State-Unrestricted-2");
#endif
zip = new ZoneIdentityPermission (SecurityZone.Intranet);
zipr = (ZoneIdentityPermission)ps.SetPermission (zip);
Assert.AreEqual (1, ps.Count, "ZoneIdentityPermission-2");
Assert.AreEqual (SecurityZone.Intranet, zipr.SecurityZone, "SecurityZone-2");
SecurityPermission result = (SecurityPermission)ps.SetPermission (sp);
Assert.AreEqual (2, ps.Count, "SecurityPermission");
Assert.AreEqual (SecurityPermissionFlag.AllFlags, result.Flags, "Flags");
Assert.IsTrue (!ps.IsUnrestricted (), "State-None");
sp = new SecurityPermission (SecurityPermissionFlag.ControlAppDomain);
result = (SecurityPermission)ps.SetPermission (sp);
Assert.AreEqual (2, ps.Count, "SecurityPermission-2");
Assert.AreEqual (SecurityPermissionFlag.ControlAppDomain, result.Flags, "Flags-2");
}