public void TestGetDisplayName() { //nominal case - display name already set IPolicyObjectCollection<IDataItem> dataItems = new PolicyObjectCollection<IDataItem>(); dataItems.Add(DataItem.CreateDataItem(new NonTranslateableLanguageItem(""), DataType.String, Enum.GetName(typeof(Workshare.Policy.FileType), Workshare.Policy.FileType.WordDocument))); dataItems.Add(DataItem.CreateDataItem(new NonTranslateableLanguageItem(""), DataType.String, Enum.GetName(typeof(Workshare.Policy.FileType), Workshare.Policy.FileType.ExcelSheet))); IDataElement dataElement = new DataElement(Guid.NewGuid(), new NonTranslateableLanguageItem("name"), new NonTranslateableLanguageItem("This is a preset Display Name"), DataType.StringArray, dataItems); ConditionDisplayParameterFileType fileTypeParam = new ConditionDisplayParameterFileType(dataElement, this.Callback, null, Workshare.Policy.PolicyType.ClientEmail); Assert.AreEqual("Word (.doc/.docx/.docm/.dotx/.dotm), Excel Spreadsheet (.xls/.xlsx/.xlsm/.xltx/.xltm)", fileTypeParam.GetDisplayName(), "unexpected displayname - displayname should be the same dataElement"); //data items in collection dataElement.DisplayName.Value = ""; Assert.AreEqual(0, dataElement.DisplayName.Value.Length, "unexpected dataelement.displayname.value"); Assert.AreEqual("Word (.doc/.docx/.docm/.dotx/.dotm), Excel Spreadsheet (.xls/.xlsx/.xlsm/.xltx/.xltm)", fileTypeParam.GetDisplayName(), "unexpected displayname"); Assert.AreEqual("Word (.doc/.docx/.docm/.dotx/.dotm), Excel Spreadsheet (.xls/.xlsx/.xlsm/.xltx/.xltm)", 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"); fileTypeParam = new ConditionDisplayParameterFileType(dataElement, this.Callback, null, Workshare.Policy.PolicyType.ClientEmail); Assert.AreEqual(Properties.Resources.IDS_EXPRESSION_PARAM_FILETYPE_DEFAULT, fileTypeParam.GetDisplayName(), "unexpected displayname"); Assert.AreEqual(Properties.Resources.IDS_EXPRESSION_PARAM_FILETYPE_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, DataItem.CreateDataItem(new NonTranslateableLanguageItem(""), DataType.String, Enum.GetName(typeof(Workshare.Policy.FileType), Workshare.Policy.FileType.WordDocument))); fileTypeParam = new ConditionDisplayParameterFileType(null, this.Callback, null, Workshare.Policy.PolicyType.ClientEmail); fileTypeParam.Object = dataElement; try { string displayName = fileTypeParam.GetDisplayName(); Assert.IsTrue(false, "didn't throw on invalid data format"); } catch (PolicyDesignerException) { Assert.IsTrue(true); } catch { Assert.IsTrue(false, "Unexpected exception"); } //no data fileTypeParam = new ConditionDisplayParameterFileType(null, this.Callback, null, Workshare.Policy.PolicyType.ClientEmail); try { string displayName = fileTypeParam.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 ConditionDisplayParameterFileType fileTypeParam = new ConditionDisplayParameterFileType(null, this.Callback, null, Workshare.Policy.PolicyType.ClientEmail); Assert.IsTrue(Object.ReferenceEquals(null, fileTypeParam.Object), "unexpected Object"); Assert.IsTrue(Properties.Resources.IDS_EXPRESSION_PARAM_FILETYPE_DEFAULT == fileTypeParam.Text, "unexpected Text"); //nominal case with no display name IPolicyObjectCollection<IDataItem> dataItems = new PolicyObjectCollection<IDataItem>(); dataItems.Add(DataItem.CreateDataItem(new NonTranslateableLanguageItem(""), DataType.String, Enum.GetName(typeof(Workshare.Policy.FileType), Workshare.Policy.FileType.WordDocument))); dataItems.Add(DataItem.CreateDataItem(new NonTranslateableLanguageItem(""), DataType.String, Enum.GetName(typeof(Workshare.Policy.FileType), Workshare.Policy.FileType.ExcelSheet))); IDataElement dataElement = new DataElement(Guid.NewGuid(), new NonTranslateableLanguageItem("name"), new NonTranslateableLanguageItem(""), DataType.StringArray, dataItems); fileTypeParam = new ConditionDisplayParameterFileType(dataElement, this.Callback, null, Workshare.Policy.PolicyType.ClientEmail); Assert.IsTrue(Object.ReferenceEquals(dataElement, fileTypeParam.Object), "unexpected Object"); Assert.AreEqual("Word (.doc/.docx/.docm/.dotx/.dotm), Excel Spreadsheet (.xls/.xlsx/.xlsm/.xltx/.xltm)", fileTypeParam.Text, "unexpected Text"); m_callbackCalled = false; fileTypeParam.Execute(); Assert.IsTrue(m_callbackCalled, "Execute not called"); //nominal case with display name dataElement.DisplayName.Value = "This is a display name"; fileTypeParam = new ConditionDisplayParameterFileType(dataElement, this.Callback, null, Workshare.Policy.PolicyType.ClientEmail); Assert.IsTrue(Object.ReferenceEquals(dataElement, fileTypeParam.Object), "unexpected Object"); Assert.AreEqual("Word (.doc/.docx/.docm/.dotx/.dotm), Excel Spreadsheet (.xls/.xlsx/.xlsm/.xltx/.xltm)", fileTypeParam.Text, "unexpected Text - displayname should be the same as dataElement"); m_callbackCalled = false; fileTypeParam.Execute(); Assert.IsTrue(m_callbackCalled, "Execute not called"); //invalid format case try { dataElement = new DataElement(Guid.NewGuid(), new NonTranslateableLanguageItem("name"), new NonTranslateableLanguageItem(""), DataType.String, DataItem.CreateDataItem(new NonTranslateableLanguageItem(""), DataType.String, Enum.GetName(typeof(Workshare.Policy.FileType), Workshare.Policy.FileType.ExcelSheet))); fileTypeParam = new ConditionDisplayParameterFileType(dataElement, this.Callback, null, 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 TestEffectivelyAllFileTypesSelected() { List<Workshare.Policy.FileType> availableFileTypes = new List<Workshare.Policy.FileType>(); availableFileTypes.Add(Workshare.Policy.FileType.ExcelSheetX); availableFileTypes.Add(Workshare.Policy.FileType.ExcelSheet); availableFileTypes.Add(Workshare.Policy.FileType.PDFDocument); availableFileTypes.Add(Workshare.Policy.FileType.PowerPoint); availableFileTypes.Add(Workshare.Policy.FileType.PowerPointX); availableFileTypes.Add(Workshare.Policy.FileType.WordDocument); availableFileTypes.Add(Workshare.Policy.FileType.WordDocumentX); availableFileTypes.Add(Workshare.Policy.FileType.ZIP); IPolicyObjectCollection<IDataItem> dataItems = new PolicyObjectCollection<IDataItem>(); dataItems.Add(DataItem.CreateDataItem(new NonTranslateableLanguageItem(""), DataType.String, Enum.GetName(typeof(Workshare.Policy.FileType), Workshare.Policy.FileType.WordDocument))); dataItems.Add(DataItem.CreateDataItem(new NonTranslateableLanguageItem(""), DataType.String, Enum.GetName(typeof(Workshare.Policy.FileType), Workshare.Policy.FileType.PDFDocument))); dataItems.Add(DataItem.CreateDataItem(new NonTranslateableLanguageItem(""), DataType.String, Enum.GetName(typeof(Workshare.Policy.FileType), Workshare.Policy.FileType.WordDocumentX))); dataItems.Add(DataItem.CreateDataItem(new NonTranslateableLanguageItem(""), DataType.String, Enum.GetName(typeof(Workshare.Policy.FileType), Workshare.Policy.FileType.ExcelSheet))); dataItems.Add(DataItem.CreateDataItem(new NonTranslateableLanguageItem(""), DataType.String, Enum.GetName(typeof(Workshare.Policy.FileType), Workshare.Policy.FileType.ZIP))); dataItems.Add(DataItem.CreateDataItem(new NonTranslateableLanguageItem(""), DataType.String, Enum.GetName(typeof(Workshare.Policy.FileType), Workshare.Policy.FileType.PowerPoint))); dataItems.Add(DataItem.CreateDataItem(new NonTranslateableLanguageItem(""), DataType.String, Enum.GetName(typeof(Workshare.Policy.FileType), Workshare.Policy.FileType.PowerPointX))); ConditionDisplayParameterFileType fileTypeParam = new ConditionDisplayParameterFileType(null, this.Callback, null, Workshare.Policy.PolicyType.ClientEmail); Type type = typeof(ConditionDisplayParameterFileType); MethodInfo mi = type.GetMethod("EffectivelyAllFileTypesSelected", BindingFlags.NonPublic | BindingFlags.Instance); object returned = mi.Invoke(fileTypeParam, new object[2] { availableFileTypes, dataItems }); bool result = (bool)returned; Assert.IsFalse(result, "Should not have got true back with this list"); dataItems.Add(DataItem.CreateDataItem(new NonTranslateableLanguageItem(""), DataType.String, Enum.GetName(typeof(Workshare.Policy.FileType), Workshare.Policy.FileType.ExcelSheetX))); returned = mi.Invoke(fileTypeParam, new object[2] { availableFileTypes, dataItems }); result = (bool)returned; Assert.IsTrue(result, "Should have got true back when we have all the correct types - excelx does count now"); availableFileTypes.Add(Workshare.Policy.FileType.Selection); returned = mi.Invoke(fileTypeParam, new object[2] { availableFileTypes, dataItems }); result = (bool)returned; Assert.IsTrue(result, "Should have got true back when we have all the correct types - selection never counts"); availableFileTypes.Add(Workshare.Policy.FileType.Folder); returned = mi.Invoke(fileTypeParam, new object[2] { availableFileTypes, dataItems }); result = (bool)returned; Assert.IsFalse(result, "Should not have got true back because we don't have all the correct types selected anymore"); }