Exemplo n.º 1
0
 /// <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);
        }
Exemplo n.º 4
0
 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);
     }
 }
Exemplo n.º 5
0
 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));
 }
Exemplo n.º 6
0
		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));
        }
Exemplo n.º 14
0
        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);
        }
Exemplo n.º 15
0
 public TranslateableLanguageItem(TranslateableLanguageItem rhs)
 {
     m_languageId = rhs.m_languageId;
     m_identifier = rhs.Identifier;
 }