public void TestGetDisplayName()
		{
			//nominal case - display name already set
			IDataElement dataElement = new DataElement(Guid.NewGuid(), new NonTranslateableLanguageItem("name"), new NonTranslateableLanguageItem("This is a preset Display Name"), DataType.String, DataItem.CreateDataItem(new NonTranslateableLanguageItem(""), DataType.String, "4096"));
			ConditionDisplayParameterTotalAttachmentSize attachmentsSizeParam = new ConditionDisplayParameterTotalAttachmentSize(dataElement, Callback, Policy.PolicyType.ClientEmail);
			Assert.AreEqual("4096", attachmentsSizeParam.GetDisplayName(), "unexpected displayname - display name should be same as dataElement");

			//data items in data item
			dataElement.DisplayName.Value = "";
			Assert.AreEqual(0, dataElement.DisplayName.Value.Length, "unexpected dataelement.displayname.value");
			Assert.AreEqual("4096", attachmentsSizeParam.GetDisplayName(), "unexpected displayname");
			Assert.AreEqual("4096", dataElement.DisplayName.Value, "unexpected dataelement.displayname.value");

			//no data
			dataElement = new DataElement(Guid.NewGuid(), new NonTranslateableLanguageItem("name"), new NonTranslateableLanguageItem(""), DataType.String, DataItem.CreateDataItem(new NonTranslateableLanguageItem(""), DataType.String, ""));
			Assert.AreEqual(0, dataElement.DisplayName.Value.Length, "unexpected length on dataelement.displayname.value");
			attachmentsSizeParam = new ConditionDisplayParameterTotalAttachmentSize(dataElement, Callback, Policy.PolicyType.ClientEmail);
			Assert.AreEqual(Properties.Resources.IDS_EXPRESSION_PARAM_TOTALATTACHMENTSIZE_DEFAULT, attachmentsSizeParam.GetDisplayName(), "unexpected displayname");
			Assert.AreEqual(Properties.Resources.IDS_EXPRESSION_PARAM_TOTALATTACHMENTSIZE_DEFAULT, dataElement.DisplayName.Value, "unexpected length on dataelement.displayname.value");

			//invalid format for data
			dataElement = new DataElement(Guid.NewGuid(), new NonTranslateableLanguageItem("name"), new NonTranslateableLanguageItem(""), DataType.String, new PolicyObjectCollection<IDataItem>());
			attachmentsSizeParam = new ConditionDisplayParameterTotalAttachmentSize(null, Callback, Policy.PolicyType.ClientEmail)
								{
									Object = dataElement
								};
			try
			{
				attachmentsSizeParam.GetDisplayName();
				Assert.IsTrue(false, "didn't throw on invalid data format");
			}
			catch (PolicyDesignerException)
			{
				Assert.IsTrue(true);
			}
			catch
			{
				Assert.IsTrue(false, "Unexpected exception");
			}

			//no data
			attachmentsSizeParam = new ConditionDisplayParameterTotalAttachmentSize(null, Callback, Policy.PolicyType.ClientEmail);
			try
			{
				attachmentsSizeParam.GetDisplayName();
				Assert.IsTrue(false, "didn't throw on empty data");
			}
			catch (PolicyDesignerException)
			{
				Assert.IsTrue(true);
			}
			catch
			{
				Assert.IsTrue(false, "Unexpected exception");
			}
		}
		public void TestConstructor()
		{
			//empty dataElement
			ConditionDisplayParameterTotalAttachmentSize attachmentsSizeParam = new ConditionDisplayParameterTotalAttachmentSize(null, Callback, Policy.PolicyType.ClientEmail);
			Assert.IsTrue(ReferenceEquals(null, attachmentsSizeParam.Object), "unexpected Object");
			Assert.AreEqual(Properties.Resources.IDS_EXPRESSION_PARAM_TOTALATTACHMENTSIZE_DEFAULT, attachmentsSizeParam.Text, "unexpected Text");

			//nominal case with no display name
			IDataElement dataElement = new DataElement(Guid.NewGuid(), new NonTranslateableLanguageItem("name"), new NonTranslateableLanguageItem(""), DataType.String, DataItem.CreateDataItem(new NonTranslateableLanguageItem(""), DataType.String, "1024"));
			attachmentsSizeParam = new ConditionDisplayParameterTotalAttachmentSize(dataElement, Callback, Policy.PolicyType.ClientEmail);
			Assert.IsTrue(ReferenceEquals(dataElement, attachmentsSizeParam.Object), "unexpected Object");
			Assert.AreEqual("1024", attachmentsSizeParam.Text, "unexpected Text");

			_callbackCalled = false;
			attachmentsSizeParam.Execute();
			Assert.IsTrue(_callbackCalled, "Execute not called");

			//nominal case with display name
			dataElement.DisplayName.Value = "This is a display name";
			attachmentsSizeParam = new ConditionDisplayParameterTotalAttachmentSize(dataElement, Callback, Policy.PolicyType.ClientEmail);
			Assert.IsTrue(ReferenceEquals(dataElement, attachmentsSizeParam.Object), "unexpected Object");
			Assert.AreEqual("1024", attachmentsSizeParam.Text, "unexpected Text - display name should be same as dataElement");

			_callbackCalled = false;
			attachmentsSizeParam.Execute();
			Assert.IsTrue(_callbackCalled, "Execute not called");

			//invalid format case
			try
			{
				dataElement = new DataElement(Guid.NewGuid(), new NonTranslateableLanguageItem("name"), new NonTranslateableLanguageItem(""), DataType.StringArray, new PolicyObjectCollection<IDataItem>());
				new ConditionDisplayParameterTotalAttachmentSize(dataElement, Callback, Policy.PolicyType.ClientEmail);
				Assert.IsTrue(false, "Didnt throw on invalid dataelement");
			}
			catch (PolicyDesignerException)
			{
				Assert.IsTrue(true);
			}
			catch
			{
				Assert.IsTrue(false, "unexpected exception thrown");
			}
		}