public void TestConstructor2() { //empty dataElement ConditionDisplayParameterContent contentParam = new ConditionDisplayParameterContent(null, this.Callback, Workshare.Policy.PolicyType.ClientEmail); Assert.IsTrue(Object.ReferenceEquals(null, contentParam.Object), "unexpected Object"); Assert.AreEqual(Properties.Resources.IDS_EXPRESSION_CONTENTPARAM_DEFAULT, contentParam.Text, "unexpected Text"); //nominal case with no display name IPolicyObjectCollection<IDataItem> dataItems = new PolicyObjectCollection<IDataItem>(); dataItems.Add(DataItem.CreateDataItem(new NonTranslateableLanguageItem(""), DataType.String, "some content")); dataItems.Add(DataItem.CreateDataItem(new NonTranslateableLanguageItem(""), DataType.String, "more content")); IDataElement dataElement = new DataElement(Guid.NewGuid(), new NonTranslateableLanguageItem("name"), new NonTranslateableLanguageItem(""), DataType.StringArray, dataItems); dataItems = new PolicyObjectCollection<IDataItem>(); dataItems.Add(DataItem.CreateDataItem(new NonTranslateableLanguageItem(""), DataType.Boolean, true)); dataItems.Add(DataItem.CreateDataItem(new NonTranslateableLanguageItem(""), DataType.Boolean, false)); IDataElement matchWordElement = new DataElement(Guid.NewGuid(), new NonTranslateableLanguageItem("matchWholeWords"), new NonTranslateableLanguageItem(""), DataType.BooleanArray, dataItems); contentParam = new ConditionDisplayParameterContent(dataElement, matchWordElement, this.Callback, Workshare.Policy.PolicyType.ClientEmail); Assert.IsTrue(Object.ReferenceEquals(dataElement, contentParam.Object), "unexpected Object"); m_callbackCalled = false; contentParam.Execute(); Assert.IsTrue(m_callbackCalled, "Execute not called"); //nominal case with display name dataElement.DisplayName.Value = "This is a display name"; contentParam = new ConditionDisplayParameterContent(dataElement, this.Callback, Workshare.Policy.PolicyType.ClientEmail); Assert.IsTrue(Object.ReferenceEquals(dataElement, contentParam.Object), "unexpected Object"); Assert.AreEqual("some content, more content", contentParam.Text, "unexpected Text, display name should be the same as dataElement"); m_callbackCalled = false; contentParam.Execute(); Assert.IsTrue(m_callbackCalled, "Execute not called"); //invalid format case try { dataElement = new DataElement(Guid.NewGuid(), new NonTranslateableLanguageItem("name"), new NonTranslateableLanguageItem(""), DataType.String, "My content"); contentParam = new ConditionDisplayParameterContent(dataElement, this.Callback, Workshare.Policy.PolicyType.ClientEmail); Assert.IsTrue(false, "Didnt throw on invalid dataelement"); } catch (PolicyDesignerException) { Assert.IsTrue(true); } catch { Assert.IsTrue(false, "unexpected exception thrown"); } }
public void TestGetDisplayNameFromDataItems() { //nominal case IPolicyObjectCollection<IDataItem> dataItems = new PolicyObjectCollection<IDataItem>(); dataItems.Add(DataItem.CreateDataItem(new NonTranslateableLanguageItem(""), DataType.String, "the race is on")); dataItems.Add(DataItem.CreateDataItem(new NonTranslateableLanguageItem(""), DataType.String, "we've got the fire! grrr!")); IDataElement dataElement = new DataElement(Guid.NewGuid(), new NonTranslateableLanguageItem("name"), new NonTranslateableLanguageItem(""), DataType.StringArray, dataItems); Assert.AreEqual(0, dataElement.DisplayName.Value.Length, "unexpected dataelement.displayname.value"); ConditionDisplayParameterContent contentParam = new ConditionDisplayParameterContent(dataElement, this.Callback, Workshare.Policy.PolicyType.ClientEmail); Assert.AreEqual("the race is on, we've got the fire! grrr!", contentParam.GetDisplayNameFromDataItems(), "unexpected displayname"); Assert.AreEqual("the race is on, we've got the fire! grrr!", dataElement.DisplayName.Value, "unexpected dataelement.displayname.value"); //no data items in collection dataItems = new PolicyObjectCollection<IDataItem>(); dataElement = new DataElement(Guid.NewGuid(), new NonTranslateableLanguageItem("name"), new NonTranslateableLanguageItem(""), DataType.StringArray, dataItems); Assert.AreEqual(0, dataElement.DisplayName.Value.Length, "unexpected length on dataelement.displayname.value"); contentParam = new ConditionDisplayParameterContent(dataElement, this.Callback, Workshare.Policy.PolicyType.ClientEmail); Assert.AreEqual(Properties.Resources.IDS_EXPRESSION_CONTENTPARAM_DEFAULT, contentParam.GetDisplayNameFromDataItems(), "unexpected displayname"); Assert.AreEqual(Properties.Resources.IDS_EXPRESSION_CONTENTPARAM_DEFAULT, dataElement.DisplayName.Value, "unexpected dataelement.displayname.value"); //invalid format for data dataElement = new DataElement(Guid.NewGuid(), new NonTranslateableLanguageItem("name"), new NonTranslateableLanguageItem(""), DataType.String, DataItem.CreateDataItem(new NonTranslateableLanguageItem(""), DataType.String, "hello")); contentParam = new ConditionDisplayParameterContent(null, this.Callback, Workshare.Policy.PolicyType.ClientEmail); contentParam.Object = dataElement; try { string displayName = contentParam.GetDisplayNameFromDataItems(); Assert.IsTrue(false, "didn't throw on invalid data format"); } catch (PolicyDesignerException) { Assert.IsTrue(true); } catch { Assert.IsTrue(false, "Unexpected exception"); } //no data contentParam = new ConditionDisplayParameterContent(null, this.Callback, Workshare.Policy.PolicyType.ClientEmail); try { string displayName = contentParam.GetDisplayNameFromDataItems(); Assert.IsTrue(false, "didn't throw on empty data"); } catch (PolicyDesignerException) { Assert.IsTrue(true); } catch { Assert.IsTrue(false, "Unexpected exception"); } }