Union() public method

public Union ( IPermission target ) : IPermission
target IPermission
return IPermission
		public void Union_Different_Site ()
		{
			SiteIdentityPermission sip1 = new SiteIdentityPermission (GoodSites [0]);
			SiteIdentityPermission sip2 = new SiteIdentityPermission (GoodSites [1]);
			SiteIdentityPermission result = (SiteIdentityPermission)sip1.Union (sip2);
			// it's not possible to return many sites using the Site property so it throws
			Assert.IsNull (result.Site);
		}
		public void Union_Different ()
		{
			SiteIdentityPermission sip1 = new SiteIdentityPermission (GoodSites [0]);
			SiteIdentityPermission sip2 = new SiteIdentityPermission (GoodSites [1]);
			SiteIdentityPermission result = (SiteIdentityPermission)sip1.Union (sip2);
			Assert.IsNotNull (result, "Mono U Novell");
			// new XML format is used to contain more than one site
			SecurityElement se = result.ToXml ();
			Assert.AreEqual (2, se.Children.Count, "Childs");
			Assert.AreEqual ((se.Children [0] as SecurityElement).Attribute ("Site"), sip1.Site, "Site#1");
			Assert.AreEqual ((se.Children [1] as SecurityElement).Attribute ("Site"), sip2.Site, "Site#2");
			// strangely it is still versioned as 'version="1"'.
			Assert.AreEqual ("1", se.Attribute ("version"), "Version");
		}
		public void Union_Self ()
		{
			SiteIdentityPermission sip = new SiteIdentityPermission (PermissionState.None);
			SiteIdentityPermission union = (SiteIdentityPermission)sip.Union (sip);
			Assert.IsNull (union, "None U None");
		}
		public void Union_None ()
		{
			// Union with none is same
			SiteIdentityPermission sip1 = new SiteIdentityPermission (PermissionState.None);
			SiteIdentityPermission sip2 = new SiteIdentityPermission (PermissionState.None);
			// a. source (this) is none
			foreach (string s in GoodSites)	{
				sip1.Site = s;
				SiteIdentityPermission union = (SiteIdentityPermission)sip1.Union (sip2);
				Assert.AreEqual (s, union.Site, s);
			}
			sip1 = new SiteIdentityPermission (PermissionState.None);
			// b. destination (target) is none
			foreach (string s in GoodSites)	{
				sip2.Site = s;
				SiteIdentityPermission union = (SiteIdentityPermission)sip2.Union (sip1);
				Assert.AreEqual (s, union.Site, s);
			}
		}
		public void Union_Null ()
		{
			SiteIdentityPermission sip = new SiteIdentityPermission (PermissionState.None);
			// Union with null is a simple copy
			foreach (string s in GoodSites)	{
				sip.Site = s;
				SiteIdentityPermission union = (SiteIdentityPermission)sip.Union (null);
				Assert.AreEqual (s, union.Site, s);
			}
		}
		public void Union_Self ()
		{
			SiteIdentityPermission sip = new SiteIdentityPermission (PermissionState.None);
			SiteIdentityPermission union = (SiteIdentityPermission)sip.Union (sip);
#if NET_2_0
			Assert.IsNull (union, "None U None");
#else
			Assert.IsNotNull (union, "None U None"); // can't get null Site property
			foreach (string s in GoodSites)	{
				sip.Site = s;
				union = (SiteIdentityPermission)sip.Union (sip);
				Assert.AreEqual (s, union.Site, s);
			}
#endif
		}