public void Union_Self ()
		{
			foreach (DirectoryServicesPermissionAccess ppl in AllAccess) {
				DirectoryServicesPermission dsp = new DirectoryServicesPermission (PermissionState.None);
				dsp.PermissionEntries.Add (new DirectoryServicesPermissionEntry (ppl, ppl.ToString ()));
				DirectoryServicesPermission union = (DirectoryServicesPermission)dsp.Union (dsp);
				Assert.IsFalse (union.IsUnrestricted (), "IsUnrestricted " + ppl.ToString ());
				Assert.AreEqual (1, union.PermissionEntries.Count, "Count " + ppl.ToString ());
			}
		}
		public void Union_Unrestricted ()
		{
			// Union with unrestricted is unrestricted
			DirectoryServicesPermission dsp1 = new DirectoryServicesPermission (PermissionState.Unrestricted);
			foreach (DirectoryServicesPermissionAccess ppl in AllAccess) {
				DirectoryServicesPermission dsp2 = new DirectoryServicesPermission (PermissionState.None);
				dsp2.PermissionEntries.Add (new DirectoryServicesPermissionEntry (ppl, ppl.ToString ()));
				DirectoryServicesPermission union = (DirectoryServicesPermission)dsp1.Union (dsp2);
				Assert.IsTrue (union.IsUnrestricted (), "target.IsUnrestricted " + ppl.ToString ());
				Assert.AreEqual (0, union.PermissionEntries.Count, "target.Count " + ppl.ToString ());

				union = (DirectoryServicesPermission)dsp2.Union (dsp1);
				Assert.IsTrue (union.IsUnrestricted (), "source.IsUnrestricted " + ppl.ToString ());
				Assert.AreEqual (0, union.PermissionEntries.Count, "source.Count " + ppl.ToString ());
			}
		}
		public void Union_Null ()
		{
			DirectoryServicesPermission dsp = new DirectoryServicesPermission (PermissionState.None);
			dsp.PermissionEntries.Add (new DirectoryServicesPermissionEntry (DirectoryServicesPermissionAccess.None, String.Empty));
			// Union with null is a simple copy
			DirectoryServicesPermission union = (DirectoryServicesPermission)dsp.Union (null);
			Assert.IsNotNull (dsp.PermissionEntries.Count, "Count");
		}