/// <summary> /// Ensures that the language item of a custom attribute is translatable. If, on a call to this /// method, the type is non translatable, a new translateable language item is created. Subsequent /// calls to this on the same custom attribute will not create new non-translateable language items /// </summary> /// <param name="policyObject">The policy object containing the custom attribute</param> /// <param name="attributeName">Name of the custom attribute</param> private static void EnforceTranslateableLanguageItem(IPolicyObject policyObject, string attributeName) { if (policyObject[attributeName] is NonTranslateableLanguageItem) { policyObject[attributeName] = new TranslateableLanguageItem(Guid.NewGuid(), policyObject[attributeName].Value); } }
public void TestWriteChannelAttributes() { Guid languageId = new Guid("{CBEB31FA-7FE8-4E27-A01A-1D19AFCA604C}"); PolicyLanguage language = new PolicyLanguage(languageId, "en"); language[new Guid("{B067FF7F-2DA0-4AA1-A69F-DEFCD8B4CE90}")] = "Test channel"; language[new Guid("{EBF8443B-4912-44F2-89BE-A0A055332D1B}")] = "This is my first custom property"; language[new Guid("{8053E60C-EED7-464D-84EA-ECB51C291237}")] = "This is my second custom property"; XmlPolicyLanguageStore languageStore = XmlPolicyLanguageStore.Instance; languageStore.AddLanguage(language); XMLPolicyCatalogueStore catalogueStore = XMLPolicyCatalogueStore.Instance; Guid catalogueGuid = new Guid("{93634DD0-904C-435E-B282-4E650E55E90D}"); PolicyCatalogue policyCatalogue = new PolicyCatalogue(catalogueGuid, languageId, catalogueStore); PolicyChannel channel = new PolicyChannel(new Guid("{8E915159-5F01-41B3-9FFF-20731544ADFA}"), new TranslateableLanguageItem("{B067FF7F-2DA0-4AA1-A69F-DEFCD8B4CE90}"), ChannelType.SMTP); channel["custom1"] = new TranslateableLanguageItem("{EBF8443B-4912-44F2-89BE-A0A055332D1B}"); channel["custom2"] = new TranslateableLanguageItem("{8053E60C-EED7-464D-84EA-ECB51C291237}"); IPolicyCatalogueWriter policyCatalogueWriter = catalogueStore.GetWriter(catalogueGuid, languageId); policyCatalogueWriter.WriteName("Test catalogue"); policyCatalogueWriter.WriteChannel(channel); policyCatalogueWriter.Close(); TestHelpers.CompareXml(m_testPath + "ExpectedWriteChannelAttributes.xml", catalogueStore.GetXMLRepresentation(catalogueGuid)); }
public void TestWriteRuleAttributes() { Guid languageId = new Guid("{CBEB31FA-7FE8-4E27-A01A-1D19AFCA604C}"); PolicyLanguage language = new PolicyLanguage(languageId, "en"); language[new Guid("{B067FF7F-2DA0-4AA1-A69F-DEFCD8B4CE90}")] = "Test rule"; language[new Guid("{305F5FFD-9C46-4BE7-896E-2ACE709E5D7E}")] = "Test policy"; language[new Guid("{EBF8443B-4912-44F2-89BE-A0A055332D1B}")] = "This is my first custom property"; language[new Guid("{8053E60C-EED7-464D-84EA-ECB51C291237}")] = "This is my second custom property"; XmlPolicyLanguageStore languageStore = XmlPolicyLanguageStore.Instance; languageStore.AddLanguage(language); XMLPolicyCatalogueStore catalogueStore = XMLPolicyCatalogueStore.Instance; Guid catalogueGuid = new Guid("{BC626464-1524-407C-8CD4-2B2B9C5BFE87}"); PolicyCatalogue policyCatalogue = new PolicyCatalogue(catalogueGuid, languageId, catalogueStore); XmlStore store = new XmlStore(); ObjectModel.PolicySet policySet = new ObjectModel.PolicySet(new Guid("{8FC9EB93-C376-4E96-B22E-71FAA848393D}"), new TranslateableLanguageItem("{305F5FFD-9C46-4BE7-896E-2ACE709E5D7E}"), store, policyCatalogue, false); P5Policy policy = new P5Policy(policySet, new Guid("{8E915159-5F01-41B3-9FFF-20731544ADFA}"), new TranslateableLanguageItem("{B067FF7F-2DA0-4AA1-A69F-DEFCD8B4CE90}"), PolicyStatus.Active); policy["custom1"] = new TranslateableLanguageItem("{EBF8443B-4912-44F2-89BE-A0A055332D1B}"); policy["custom2"] = new TranslateableLanguageItem("{8053E60C-EED7-464D-84EA-ECB51C291237}"); IPolicyStoreWriter writer = store.Writer; writer.WritePolicySet(policySet); writer.WritePolicy(policySet, policy); writer.Close(); TestHelpers.CompareXml(m_testPath + "ExpectedWriteRuleAttributes.xml", store.StoreXML); }
public static IPolicyLanguageItem Create(string itemValue) { PolicyLanguageCache languageCache = PolicyLanguageCache.Instance; Guid languageId; if (languageCache.ContainsLanguageItem(itemValue, out languageId)) { TranslateableLanguageItem translateableLanguageItem = new TranslateableLanguageItem(itemValue); translateableLanguageItem.LanguageId = languageId; return translateableLanguageItem; } else { return new NonTranslateableLanguageItem(itemValue); } }
public void TestGetLongDescription() { IConditionGroup conditionGroup = new ConditionGroup(); conditionGroup[LongDescriptionAttribute] = new TranslateableLanguageItem("Test long description"); Assert.AreEqual("Test long description", CustomAttributes.GetLongDescription(conditionGroup)); conditionGroup[LongDescriptionAttribute].Value = "Another long description"; Assert.AreEqual("Another long description", CustomAttributes.GetLongDescription(conditionGroup)); }
private void ApplyConditions() { IPolicySet policySet = Template.PolicySet.Data; IPolicy p2 = Template[TemplatePolicy.AlertPolicy]; foreach (ContentRule contentRule in m_rules) { P5Policy policy = new P5Policy(policySet, Guid.NewGuid(), new TranslateableLanguageItem(contentRule.RuleName), PolicyStatus.Active); string ruleName = contentRule.RuleName; string rating = contentRule.Level; List<ContentCondition> conditions = contentRule.Conditions; ConditionGroup conditionGroup = new ConditionGroup(Guid.NewGuid(), new TranslateableLanguageItem(""), ConditionLogic.OR, false); foreach (ContentCondition contentCondition in conditions) { List<string> contexts = contentCondition.Contexts; string explanation = contentCondition.Explanation; string conditionName = contentCondition.Name; string regex = contentCondition.Regex; DataMethod dm = BuildRegex(regex, BuildContexts(contexts), BuildCurrentFile(), BuildFileTypes()); Condition condition = BuildCondition(conditionName, rating, BuildDataLeft(dm), BuildDataRight()); condition["Description"] = new TranslateableLanguageItem(Guid.NewGuid(), explanation); conditionGroup.Conditions.Add(condition); } policy["AuditLevel"] = new NonTranslateableLanguageItem("None"); policy["blockOnException"] = new NonTranslateableLanguageItem("false"); policy.Conditions.Add(conditionGroup); policy.Channels = p2.Channels; policySet.Policies.Add(policy); } }
public void TestWriteConditionAttributes() { Guid languageId = new Guid("{CBEB31FA-7FE8-4E27-A01A-1D19AFCA604C}"); PolicyLanguage language = new PolicyLanguage(languageId, "en"); language[new Guid("{B067FF7F-2DA0-4AA1-A69F-DEFCD8B4CE90}")] = "Test condition"; language[new Guid("{EBF8443B-4912-44F2-89BE-A0A055332D1B}")] = "This is my first custom property"; language[new Guid("{8053E60C-EED7-464D-84EA-ECB51C291237}")] = "This is my second custom property"; language[new Guid("{6B37988A-2D68-4249-BB26-CBDE39091E7A}")] = "This is test condition"; XmlPolicyLanguageStore languageStore = XmlPolicyLanguageStore.Instance; languageStore.AddLanguage(language); XMLPolicyCatalogueStore catalogueStore = XMLPolicyCatalogueStore.Instance; catalogueStore.Reset(); Guid catalogueGuid = new Guid("{8CF1172E-476C-46A5-AECF-A7A8BC5ACE30}"); PolicyCatalogue policyCatalogue = new PolicyCatalogue(catalogueGuid, languageId, catalogueStore); Condition condition = new Condition(new Guid("{8E915159-5F01-41B3-9FFF-20731544ADFA}"), "{B067FF7F-2DA0-4AA1-A69F-DEFCD8B4CE90}", new TranslateableLanguageItem("{6B37988A-2D68-4249-BB26-CBDE39091E7A}"), OperatorType.Equals); condition.DataLeft = new DataElement(new Guid("{A4BCB713-B1E8-42BA-8B70-3C8814D03D0C}"), new TranslateableLanguageItem("DataLeft"), new TranslateableLanguageItem("DataLeft"), DataType.String, DataItem.CreateDataItem(new TranslateableLanguageItem("StringItem"), DataType.String, "StringData")); condition.DataRight = new DataElement(new Guid("{FCF77B46-B6C9-4E5C-BA15-4B5AE31FF4E7}"), new TranslateableLanguageItem("DataRight"), new TranslateableLanguageItem("DataRight"), DataType.String, DataItem.CreateDataItem(new TranslateableLanguageItem("StringItem"), DataType.String, "StringData")); condition["custom1"] = new TranslateableLanguageItem("{EBF8443B-4912-44F2-89BE-A0A055332D1B}"); condition["custom2"] = new TranslateableLanguageItem("{8053E60C-EED7-464D-84EA-ECB51C291237}"); IPolicyCatalogueWriter policyCatalogueWriter = catalogueStore.GetWriter(catalogueGuid, languageId); policyCatalogueWriter.WriteName("Test catalogue"); policyCatalogueWriter.WriteCondition(condition); policyCatalogueWriter.Close(); TestHelpers.CompareXml(m_testPath + "ExpectedWriteConditionAttributes.xml", catalogueStore.GetXMLRepresentation(catalogueGuid)); }
public void TestWriteRoutingMatrixCellAttributes() { Guid languageId = new Guid("{CBEB31FA-7FE8-4E27-A01A-1D19AFCA604C}"); PolicyLanguage language = new PolicyLanguage(languageId, "en"); language[new Guid("{B067FF7F-2DA0-4AA1-A69F-DEFCD8B4CE90}")] = "Custom routing"; language[new Guid("{8809EBFF-D902-4C91-BE56-1ABD13C054A1}")] = "Test policy"; language[new Guid("{EBF8443B-4912-44F2-89BE-A0A055332D1B}")] = "This is my first custom property"; language[new Guid("{8053E60C-EED7-464D-84EA-ECB51C291237}")] = "This is my second custom property"; XmlPolicyLanguageStore languageStore = XmlPolicyLanguageStore.Instance; languageStore.AddLanguage(language); XMLPolicyCatalogueStore catalogueStore = XMLPolicyCatalogueStore.Instance; Guid catalogueGuid = new Guid("{751AEC6C-C164-4E6A-8581-A9ECCED87013}"); PolicyCatalogue policyCatalogue = new PolicyCatalogue(catalogueGuid, languageId, catalogueStore); IRoutingItemCollection senders1 = new RoutingItemCollection(new Guid("{79C512E8-3912-4709-B7D7-E91EFA3BD9FD}"), "Test sources"); IRoutingItemCollection recipients1 = new RoutingItemCollection(new Guid("{FDC166E4-EBE5-4285-8F09-6A145D88C707}"), "Test destinations"); IRoutingMatrixCell cell1 = new RoutingMatrixCell(new TranslateableLanguageItem("C1"), new TranslateableLanguageItem("Description of the blue cell"), new TranslateableLanguageItem("blue"), 1, senders1, recipients1); cell1["custom1"] = new TranslateableLanguageItem("{EBF8443B-4912-44F2-89BE-A0A055332D1B}"); cell1["custom2"] = new TranslateableLanguageItem("{8053E60C-EED7-464D-84EA-ECB51C291237}"); IRoutingMatrixCell cell2 = new RoutingMatrixCell(new TranslateableLanguageItem("C2"), new TranslateableLanguageItem("Description of the red cell"), new TranslateableLanguageItem("red"), 2, senders1, recipients1); IRoutingMatrixCell cell3 = new RoutingMatrixCell(new TranslateableLanguageItem("C3"), new TranslateableLanguageItem("Description of the green cell"), new TranslateableLanguageItem("green"), 3, senders1, recipients1); RoutingTable routingTable = new RoutingTable(new Guid("{AF6E5D89-0C6F-4B10-9A6C-658D13CD3EA8}"), new TranslateableLanguageItem("{B067FF7F-2DA0-4AA1-A69F-DEFCD8B4CE90}"), ChannelType.SMTP); routingTable["{A81631A6-6AA3-45F7-AADD-4853447E5BD6}", "{D23F36C4-953F-4ED9-B1EB-8921BD50562B}"] = cell1; routingTable["{FA13BE82-9EB1-407E-9DD5-8005F3E840E4}", "{4E1B9EAB-E892-4E47-BBE6-9D70B2438333}"] = cell2; routingTable["{3AD507B6-5E1E-44BB-9ABF-C27A31603C1B}", "{D23F36C4-953F-4ED9-B1EB-8921BD50562B}"] = cell3; XmlStore store = new XmlStore(); ObjectModel.PolicySet policySet = new ObjectModel.PolicySet(new Guid("{8FC9EB93-C376-4E96-B22E-71FAA848393D}"), new TranslateableLanguageItem("{8809EBFF-D902-4C91-BE56-1ABD13C054A1}"), store, policyCatalogue, false); P5Policy policy = new P5Policy(store, policySet, new Guid("{C0F6D4BB-CBF1-41FC-8A28-616D6FC1DC73}"), new TranslateableLanguageItem("Test rule"), PolicyStatus.Active); IPolicyObjectCollection<IPolicyObject> channels = new PolicyObjectCollection<IPolicyObject>(); PolicyChannel channel = new PolicyChannel(new Guid("{390F589A-24B0-4DF0-B750-D47EDD1FF0BE}"), new TranslateableLanguageItem("Test channel"), ChannelType.SMTP); channel.Routing = routingTable; channels.Add(channel); Store.IPolicyStoreWriter writer = store.Writer; Assert.IsNotNull(writer, "Expected a valid [IPolicyStoreWriter] writer"); writer.WritePolicySet(policySet); writer.WritePolicy(policySet, policy); writer.WriteChildCollection(policySet, policy, policy.Name.Value, channels); writer.Close(); TestHelpers.CompareXml(m_testPath + "ExpectedWriteRoutingMatrixCellAttributes.xml", store.StoreXML); }
public void TestWriteActionMatrixAttributes() { Guid languageId = new Guid("{CBEB31FA-7FE8-4E27-A01A-1D19AFCA604C}"); PolicyLanguage language = new PolicyLanguage(languageId, "en"); language[new Guid("{B067FF7F-2DA0-4AA1-A69F-DEFCD8B4CE90}")] = "Test condition"; language[new Guid("{5570ABC5-188E-4893-92E4-6930802F9C05}")] = "Test policy"; language[new Guid("{EBF8443B-4912-44F2-89BE-A0A055332D1B}")] = "This is my first custom property"; language[new Guid("{8053E60C-EED7-464D-84EA-ECB51C291237}")] = "This is my second custom property"; XmlPolicyLanguageStore languageStore = XmlPolicyLanguageStore.Instance; languageStore.AddLanguage(language); XMLPolicyCatalogueStore catalogueStore = XMLPolicyCatalogueStore.Instance; Guid catalogueGuid = new Guid("{751AEC6C-C164-4E6A-8581-A9ECCED87013}"); PolicyCatalogue policyCatalogue = new PolicyCatalogue(catalogueGuid, languageId, catalogueStore); IDataItem dataItem = DataItem.CreateDataItem(new TranslateableLanguageItem("Test data item"), DataType.Long, 10); ObjectModel.IAction action = new ObjectModel.Action(new Guid("{26BCFA7E-3605-4EE7-ACC6-0AFB4D5EBB71}"), "CustomAction.dll", "Test.Clean", RunAt.Client, false, 1); //TODO JE action.DataElements.Add(new DataElement(new Guid("{EB56B397-954D-45C2-ADBA-263372A8B59F}"), new TranslateableLanguageItem("Test data item stored in data element"), new NonTranslateableLanguageItem(""), DataType.Long, dataItem)); ActionGroup actionGroup = new ObjectModel.ActionGroup(new Guid("{987B7C8B-5ADD-4696-8456-DDE11D95CE0B}"), new TranslateableLanguageItem("Test action group"), 1); actionGroup.Actions.Add(action); ActionMatrix actionMatrix = new ObjectModel.ActionMatrix(); ConditionGroup conditionGroup = new ConditionGroup(new Guid("{661EDD6F-D750-493A-9932-E56C8C22E2CF}"), new TranslateableLanguageItem("Profanity"), ConditionLogic.OR, false); IRoutingItemCollection senders = new RoutingItemCollection(new Guid("{79C512E8-3912-4709-B7D7-E91EFA3BD9FD}"), "Test sources"); IRoutingItemCollection recipients = new RoutingItemCollection(new Guid("{FDC166E4-EBE5-4285-8F09-6A145D88C707}"), "Test destinations"); ActionMatrixCell actionMatrixCell = new ObjectModel.ActionMatrixCell(senders, recipients); actionMatrixCell.AddActionCondition(conditionGroup, actionGroup, false); actionMatrix["{A81631A6-6AA3-45F7-AADD-4853447E5BD6}", "{D23F36C4-953F-4ED9-B1EB-8921BD50562B}"] = actionMatrixCell; actionMatrix["custom1"] = new TranslateableLanguageItem("{EBF8443B-4912-44F2-89BE-A0A055332D1B}"); actionMatrix["custom2"] = new TranslateableLanguageItem("{8053E60C-EED7-464D-84EA-ECB51C291237}"); IPolicyObjectCollection<IActionMatrix> actions = new PolicyObjectCollection<IActionMatrix>(); actions.Add(actionMatrix); PolicyChannel channel = new PolicyChannel(new Guid("{390F589A-24B0-4DF0-B750-D47EDD1FF0BE}"), new TranslateableLanguageItem("Test channel"), ChannelType.SMTP); channel.Actions = actionMatrix; IPolicyObjectCollection<IPolicyObject> channels = new PolicyObjectCollection<IPolicyObject>(); channels.Add(channel); XmlStore store = new XmlStore(); ObjectModel.PolicySet policySet = new ObjectModel.PolicySet(new Guid("{8FC9EB93-C376-4E96-B22E-71FAA848393D}"), new TranslateableLanguageItem("{5570ABC5-188E-4893-92E4-6930802F9C05}"), store, policyCatalogue, false); P5Policy policy = new P5Policy(store, policySet, new Guid("{C0F6D4BB-CBF1-41FC-8A28-616D6FC1DC73}"), new TranslateableLanguageItem("Test policy"), PolicyStatus.Active); IPolicyStoreWriter writer = store.Writer; writer.WritePolicySet(policySet); writer.WritePolicy(policySet, policy); writer.WriteConditionGroup(policySet, policy, conditionGroup); writer.WriteChildCollection(policySet, policy, policy.Name.Value, channels); writer.Close(); TestHelpers.CompareXml(m_testPath + "ExpectedWriteActionMatrixAttributes.xml", store.StoreXML); }
public void TestWriteDataItemAttributes() { Guid languageId = new Guid("{CBEB31FA-7FE8-4E27-A01A-1D19AFCA604C}"); PolicyLanguage language = new PolicyLanguage(languageId, "en"); language[new Guid("{B067FF7F-2DA0-4AA1-A69F-DEFCD8B4CE90}")] = "Test data element"; language[new Guid("{559C2D0E-B26C-4B8A-BE9E-820358F1D5C7}")] = "Test data item"; language[new Guid("{EBF8443B-4912-44F2-89BE-A0A055332D1B}")] = "This is my first custom property"; language[new Guid("{8053E60C-EED7-464D-84EA-ECB51C291237}")] = "This is my second custom property"; XmlPolicyLanguageStore languageStore = XmlPolicyLanguageStore.Instance; languageStore.AddLanguage(language); XMLPolicyCatalogueStore catalogueStore = XMLPolicyCatalogueStore.Instance; catalogueStore.Reset(); Guid catalogueGuid = new Guid("{8CF1172E-476C-46A5-AECF-A7A8BC5ACE30}"); PolicyCatalogue policyCatalogue = new PolicyCatalogue(catalogueGuid, languageId, catalogueStore); DataItem dataItem = DataItem.CreateDataItem(new TranslateableLanguageItem("{559C2D0E-B26C-4B8A-BE9E-820358F1D5C7}"), DataType.String, "10"); dataItem["custom1"] = new TranslateableLanguageItem("{EBF8443B-4912-44F2-89BE-A0A055332D1B}"); dataItem["custom2"] = new TranslateableLanguageItem("{8053E60C-EED7-464D-84EA-ECB51C291237}"); DataElement dataElement = new DataElement(new Guid("{8E915159-5F01-41B3-9FFF-20731544ADFA}"), new TranslateableLanguageItem("{B067FF7F-2DA0-4AA1-A69F-DEFCD8B4CE90}"), new NonTranslateableLanguageItem(""), DataType.String, dataItem); XmlStore store = new XmlStore(); IPolicyCatalogueWriter policyCatalogueWriter = catalogueStore.GetWriter(catalogueGuid, languageId); policyCatalogueWriter.WriteName("Test catalogue"); policyCatalogueWriter.WriteDataElement(dataElement); policyCatalogueWriter.Close(); TestHelpers.CompareXml(m_testPath + "ExpectedWriteDataItemAttributes.xml", catalogueStore.GetXMLRepresentation(catalogueGuid)); }
public void TestWriteActionGroupAttributes() { Guid languageId = new Guid("{CBEB31FA-7FE8-4E27-A01A-1D19AFCA604C}"); PolicyLanguage language = new PolicyLanguage(languageId, "en"); language[new Guid("{B067FF7F-2DA0-4AA1-A69F-DEFCD8B4CE90}")] = "Test action group"; language[new Guid("{EBF8443B-4912-44F2-89BE-A0A055332D1B}")] = "This is my first custom property"; language[new Guid("{8053E60C-EED7-464D-84EA-ECB51C291237}")] = "This is my second custom property"; XmlPolicyLanguageStore languageStore = XmlPolicyLanguageStore.Instance; languageStore.AddLanguage(language); XMLPolicyCatalogueStore catalogueStore = XMLPolicyCatalogueStore.Instance; catalogueStore.Reset(); Guid catalogueGuid = new Guid("{8CF1172E-476C-46A5-AECF-A7A8BC5ACE30}"); PolicyCatalogue policyCatalogue = new PolicyCatalogue(catalogueGuid, languageId, catalogueStore); ActionGroup actionGroup = new ObjectModel.ActionGroup(new Guid("{8E915159-5F01-41B3-9FFF-20731544ADFA}"), new TranslateableLanguageItem("{B067FF7F-2DA0-4AA1-A69F-DEFCD8B4CE90}"), 1); actionGroup["custom1"] = new TranslateableLanguageItem("{EBF8443B-4912-44F2-89BE-A0A055332D1B}"); actionGroup["custom2"] = new TranslateableLanguageItem("{8053E60C-EED7-464D-84EA-ECB51C291237}"); IPolicyCatalogueWriter policyCatalogueWriter = catalogueStore.GetWriter(catalogueGuid, languageId); policyCatalogueWriter.WriteName("Test catalogue"); policyCatalogueWriter.WriteActionGroup(actionGroup); policyCatalogueWriter.Close(); TestHelpers.CompareXml(m_testPath + "ExpectedWriteActionGroupAttributes.xml", catalogueStore.GetXMLRepresentation(catalogueGuid)); }
public void TestWriteActionAttributes() { Guid languageId = new Guid("{CBEB31FA-7FE8-4E27-A01A-1D19AFCA604C}"); PolicyLanguage language = new PolicyLanguage(languageId, "en"); language[new Guid("{B067FF7F-2DA0-4AA1-A69F-DEFCD8B4CE90}")] = "Test condition"; language[new Guid("{EBF8443B-4912-44F2-89BE-A0A055332D1B}")] = "This is my first custom property"; language[new Guid("{8053E60C-EED7-464D-84EA-ECB51C291237}")] = "This is my second custom property"; language[new Guid("{6B37988A-2D68-4249-BB26-CBDE39091E7A}")] = "This is test action"; XmlPolicyLanguageStore languageStore = XmlPolicyLanguageStore.Instance; languageStore.AddLanguage(language); XMLPolicyCatalogueStore catalogueStore = XMLPolicyCatalogueStore.Instance; catalogueStore.Reset(); Guid catalogueGuid = new Guid("{8CF1172E-476C-46A5-AECF-A7A8BC5ACE30}"); PolicyCatalogue policyCatalogue = new PolicyCatalogue(catalogueGuid, languageId, catalogueStore); ObjectModel.Action action = new ObjectModel.Action(new Guid("{8E915159-5F01-41B3-9FFF-20731544ADFA}"), new TranslateableLanguageItem("{6B37988A-2D68-4249-BB26-CBDE39091E7A}"), "TestMe.dll", "Test.DoNothing", RunAt.Client, false, 1); //TODO JE DataElement dataElem = new DataElement(new Guid("{C2342D29-2B5A-490F-9B3F-5834EBA8047B}"), new TranslateableLanguageItem("Jill"), new TranslateableLanguageItem(""), DataType.String, DataItem.CreateDataItem(new TranslateableLanguageItem("whatever"), DataType.String, "nag nag nag")); action.DataElements.Add(dataElem); action["custom1"] = new TranslateableLanguageItem("{EBF8443B-4912-44F2-89BE-A0A055332D1B}"); action["custom2"] = new TranslateableLanguageItem("{8053E60C-EED7-464D-84EA-ECB51C291237}"); IPolicyCatalogueWriter policyCatalogueWriter = catalogueStore.GetWriter(catalogueGuid, languageId); policyCatalogueWriter.WriteName("Test catalogue"); policyCatalogueWriter.WriteAction(action); policyCatalogueWriter.Close(); TestHelpers.CompareXml(m_testPath + "ExpectedWriteActionAttributes.xml", catalogueStore.GetXMLRepresentation(catalogueGuid)); }
public void TestWriteAddressAttributes() { Guid languageId = new Guid("{A2F11E75-7E10-4668-9FB5-FCB8E3841C8F}"); PolicyLanguage language = new PolicyLanguage(languageId, "en"); language[new Guid("{A2A6EA49-8CB2-4578-8BD5-EBCD57A1B424}")] = "Test sources"; language[new Guid("{EBF8443B-4912-44F2-89BE-A0A055332D1B}")] = "This is my first custom property"; language[new Guid("{8053E60C-EED7-464D-84EA-ECB51C291237}")] = "This is my second custom property"; XmlPolicyLanguageStore languageStore = XmlPolicyLanguageStore.Instance; languageStore.AddLanguage(language); XMLPolicyCatalogueStore catalogueStore = XMLPolicyCatalogueStore.Instance; catalogueStore.Reset(); Guid catalogueGuid = new Guid("{8CF1172E-476C-46A5-AECF-A7A8BC5ACE30}"); PolicyCatalogue policyCatalogue = new PolicyCatalogue(catalogueGuid, languageId, catalogueStore); RoutingItemCollection addressCollection = new RoutingItemCollection(new Guid("{8E915159-5F01-41B3-9FFF-20731544ADFA}"), "{A2A6EA49-8CB2-4578-8BD5-EBCD57A1B424}"); RoutingItem address = new RoutingItem(new Guid("{625C4BDE-907F-4751-BDA1-0E59EDBBCE5C}"), "James", "[email protected]"); address["custom1"] = new TranslateableLanguageItem("{EBF8443B-4912-44F2-89BE-A0A055332D1B}"); address["custom2"] = new TranslateableLanguageItem("{8053E60C-EED7-464D-84EA-ECB51C291237}"); addressCollection.Add(address); IPolicyCatalogueWriter policyCatalogueWriter = catalogueStore.GetWriter(catalogueGuid, languageId); policyCatalogueWriter.WriteName("Test catalogue"); policyCatalogueWriter.WriteLocation(address); policyCatalogueWriter.WriteLocationCollection(addressCollection); policyCatalogueWriter.Close(); TestHelpers.CompareXml(m_testPath + "ExpectedWriteAddressAttributes.xml", catalogueStore.GetXMLRepresentation(catalogueGuid)); }
public void TestP5PolicyDeepCopy() { IPolicySet policySet1 = CreatePolicySet(); IPolicySet policySet2 = CreatePolicySet(); IPolicy newPolicy = new P5Policy(policySet1, Guid.NewGuid(), new TranslateableLanguageItem(""), PolicyStatus.Active); newPolicy["Long Description"] = new TranslateableLanguageItem(Guid.NewGuid(), "Long description text"); policySet1.Policies.Add(newPolicy); BuildPolicy(newPolicy); //Now, copy the policy IPolicy copyPolicy = (newPolicy as P5Policy).CopyP5Policy(policySet2.PolicyStore, policySet2, null, false, true) as IPolicy; Assert.IsNotNull(copyPolicy); Assert.AreEqual("Long description text", copyPolicy["Long Description"].Value); Assert.AreEqual(1, copyPolicy.Conditions.Count); Assert.AreEqual(1, copyPolicy.Channels.Count); IConditionGroup conditionGroup = copyPolicy.Conditions[0]as IConditionGroup; Assert.AreEqual(1, conditionGroup.Conditions.Count); Assert.AreNotEqual(conditionGroup.Identifier, newPolicy.Conditions[0].Identifier); IConditionGroup newConditionParent = ((newPolicy.Conditions[0] as IConditionGroup).Conditions[0] as ICondition).Parent as IConditionGroup; IConditionGroup copyConditionParent = ((copyPolicy.Conditions[0] as IConditionGroup).Conditions[0] as ICondition).Parent as IConditionGroup; Assert.AreEqual(newConditionParent.Identifier, newPolicy.Conditions[0].Identifier); Assert.AreEqual(copyConditionParent.Identifier, copyPolicy.Conditions[0].Identifier); Assert.AreNotEqual(copyConditionParent.Identifier, newConditionParent.Identifier); IRoutingTable table = copyPolicy.Channels[0].Routing; Assert.AreEqual(1, table.Sources.Count); Assert.AreEqual(1, table.Destinations.Count); foreach (IRoutingItemCollection sender in table.Sources) { foreach (IRoutingItemCollection recipient in table.Destinations) { IActionMatrixCell cell = copyPolicy.Channels[0].Actions[sender, recipient]; Assert.AreEqual(1, cell.ActionConditionGroups.Count); Assert.AreEqual(1, cell.ActionConditionGroups[0].ActionGroup.Actions.Count); } } IActionMatrix actionMatrix = copyPolicy.Channels[0].Actions; Assert.IsTrue(actionMatrix.HasActionExceptionHandler); Assert.IsTrue(actionMatrix.HasOffline); Assert.AreEqual(1, actionMatrix.ActionExceptionHandler.ActionConditionGroups[0].ActionGroup.Actions.Count); Assert.AreEqual(1, actionMatrix.Offline.ActionConditionGroups[0].ActionGroup.Actions.Count); }
public TranslateableLanguageItem(TranslateableLanguageItem rhs) { m_languageId = rhs.m_languageId; m_identifier = rhs.Identifier; }