public void SingleAssembly() { XamlAccessLevel assemblyAccess = XamlAccessLevel.AssemblyAccessTo(typeof(LoadPermissionTests).Assembly); XamlLoadPermission assemblyPerm = new XamlLoadPermission(assemblyAccess); VerifyInvariants(assemblyPerm); XamlLoadPermission testPerm, intersect, union; // Identical permission XamlAccessLevel sameAssemblyAccess = XamlAccessLevel.AssemblyAccessTo(typeof(LoadPermissionTests).Assembly); testPerm = new XamlLoadPermission(sameAssemblyAccess); VerifyInvariants(testPerm); Assert.AreEqual(assemblyPerm, testPerm); Assert.IsTrue(testPerm.IsSubsetOf(assemblyPerm)); Assert.IsTrue(assemblyPerm.IsSubsetOf(testPerm)); intersect = (XamlLoadPermission)testPerm.Intersect(assemblyPerm); Assert.AreEqual(assemblyPerm, intersect); union = (XamlLoadPermission)testPerm.Union(assemblyPerm); Assert.AreEqual(assemblyPerm, union); Assert.IsTrue(testPerm.Includes(sameAssemblyAccess)); // Type permission to same assembly XamlAccessLevel typeAccess = XamlAccessLevel.PrivateAccessTo(typeof(LoadPermissionTests)); testPerm = new XamlLoadPermission(typeAccess); VerifyInvariants(testPerm); Assert.AreNotEqual(assemblyPerm, testPerm); Assert.IsFalse(testPerm.IsSubsetOf(assemblyPerm)); Assert.IsTrue(assemblyPerm.IsSubsetOf(testPerm)); intersect = (XamlLoadPermission)testPerm.Intersect(assemblyPerm); Assert.AreEqual(assemblyPerm, intersect); union = (XamlLoadPermission)testPerm.Union(assemblyPerm); Assert.AreEqual(testPerm, union); Assert.IsTrue(testPerm.Includes(sameAssemblyAccess)); Assert.IsTrue(testPerm.Includes(typeAccess)); // Assembly permission on different assembly XamlAccessLevel diffAssemblyAccess = XamlAccessLevel.AssemblyAccessTo(typeof(string).Assembly); testPerm = new XamlLoadPermission(diffAssemblyAccess); VerifyInvariants(testPerm); Assert.AreNotEqual(assemblyPerm, testPerm); Assert.IsFalse(testPerm.IsSubsetOf(assemblyPerm)); Assert.IsFalse(assemblyPerm.IsSubsetOf(testPerm)); intersect = (XamlLoadPermission)testPerm.Intersect(assemblyPerm); Assert.AreEqual(s_EmptyPerm, intersect); union = (XamlLoadPermission)testPerm.Union(assemblyPerm); Assert.IsTrue(testPerm.IsSubsetOf(union)); Assert.IsTrue(assemblyPerm.IsSubsetOf(union)); Assert.IsFalse(testPerm.Includes(sameAssemblyAccess)); Assert.IsFalse(testPerm.Includes(typeAccess)); }
public static void XamlLoadPermissionCallMethods() { XamlAccessLevel accessLevel = XamlAccessLevel.AssemblyAccessTo(Assembly.GetExecutingAssembly().GetName()); XamlLoadPermission xp = new XamlLoadPermission(accessLevel); XamlLoadPermission xp2 = new XamlLoadPermission(PermissionState.Unrestricted); XamlLoadPermission xp3 = new XamlLoadPermission(Array.Empty <XamlAccessLevel>()); bool testbool = xp.IsUnrestricted(); IPermission ip = xp.Copy(); IPermission ip2 = xp.Intersect(ip); IPermission ip3 = xp.Union(ip); testbool = xp.IsSubsetOf(ip); testbool = xp.Equals(new object()); testbool = xp.Includes(accessLevel); int hash = xp.GetHashCode(); SecurityElement se = new SecurityElement(""); xp.FromXml(se); se = xp.ToXml(); }