Union() public method

public Union ( IPermission target ) : IPermission
target IPermission
return IPermission
		public void UnionWithBadPermission () 
		{
			PublisherIdentityPermission p1 = new PublisherIdentityPermission (PermissionState.None);
			EnvironmentPermission ep2 = new EnvironmentPermission (PermissionState.None);
			PublisherIdentityPermission p3 = (PublisherIdentityPermission) p1.Union (ep2);
		}
		public void Union_DifferentCertificates ()
		{
			PublisherIdentityPermission p1 = new PublisherIdentityPermission (x509);
			X509Certificate x2 = new X509Certificate (cert2);
			PublisherIdentityPermission p2 = new PublisherIdentityPermission (x2);
			IPermission p = p1.Union (p2);
			// new XML format is used to contain more than one X.509 certificate
			SecurityElement se = p.ToXml ();
			Assert.AreEqual (2, se.Children.Count, "Childs");
			Assert.AreEqual ((se.Children [0] as SecurityElement).Attribute ("X509v3Certificate"), p1.ToXml ().Attribute ("X509v3Certificate"), "Cert#1");
			Assert.AreEqual ((se.Children [1] as SecurityElement).Attribute ("X509v3Certificate"), p2.ToXml ().Attribute ("X509v3Certificate"), "Cert#2");
			// strangely it is still versioned as 'version="1"'.
			Assert.AreEqual ("1", se.Attribute ("version"), "Version");
		}
		public void UnionWithNull () 
		{
			PublisherIdentityPermission p1 = new PublisherIdentityPermission (x509);
			PublisherIdentityPermission p2 = null;
			PublisherIdentityPermission p3 = (PublisherIdentityPermission) p1.Union (p2);
			Assert.AreEqual (p1.ToXml ().ToString (), p3.ToXml ().ToString (), "P1 U null == P1");
		}
		public void Union () 
		{
			// with no certificates
			PublisherIdentityPermission p1 = new PublisherIdentityPermission (PermissionState.None);
			PublisherIdentityPermission p2 = new PublisherIdentityPermission (PermissionState.None);
			PublisherIdentityPermission p3 = (PublisherIdentityPermission) p1.Union (p2);
			Assert.IsNull (p3, "None U None == null");
			// with 1 certificate
			p1 = new PublisherIdentityPermission (x509);
			p2 = new PublisherIdentityPermission (PermissionState.None);
			p3 = (PublisherIdentityPermission) p1.Union (p2);
			Assert.AreEqual (p3.ToXml ().ToString (), p1.ToXml ().ToString (), "cert U None == cert");
			X509Certificate x2 = new X509Certificate (cert2);
			// 2 certificates (same)
			x2 = new X509Certificate (cert);
			p2 = new PublisherIdentityPermission (x2);
			p3 = (PublisherIdentityPermission) p1.Union (p2);
			Assert.AreEqual (p3.ToString (), p1.ToString (), "cert1 U cert1 == cert1");
		}
		public void Union_DifferentCertificates ()
		{
			PublisherIdentityPermission p1 = new PublisherIdentityPermission (x509);
			X509Certificate x2 = new X509Certificate (cert2);
			PublisherIdentityPermission p2 = new PublisherIdentityPermission (x2);
			IPermission p = p1.Union (p2);
#if NET_2_0
			// new XML format is used to contain more than one X.509 certificate
			SecurityElement se = p.ToXml ();
			AssertEquals ("Childs", 2, se.Children.Count);
			AssertEquals ("Cert#1", (se.Children [0] as SecurityElement).Attribute ("X509v3Certificate"), p1.ToXml ().Attribute ("X509v3Certificate"));
			AssertEquals ("Cert#2", (se.Children [1] as SecurityElement).Attribute ("X509v3Certificate"), p2.ToXml ().Attribute ("X509v3Certificate"));
			// strangely it is still versioned as 'version="1"'.
			AssertEquals ("Version", "1", se.Attribute ("version"));
#else
			AssertNull ("cert1 U cert2 == null", p);
#endif
		}