コード例 #1
0
ファイル: TestHelpers.cs プロジェクト: killbug2004/WSProf
        public static IRoutingItemCollections BuildSenderGroup()
        {
            IRoutingItemCollections addressGroup = new RoutingItemCollections(Guid.Empty, "");

            IRoutingItemCollection senders = new RoutingItemCollection(new Guid("{A81631A6-6AA3-45F7-AADD-4853447E5BD6}"), "{E71D6CE9-77B6-4246-A7B5-E0F8BCE65742}");
            senders.Add(new RoutingItem(new Guid("{625C4BDE-907F-4751-BDA1-0E59EDBBCE5C}"), "James", "[email protected]"));
            senders.Add(new RoutingItem(new Guid("{6970F70A-B28D-4694-AEFA-C3D687F56112}"), "Jane", "[email protected]"));

            addressGroup.Add(senders);

            IRoutingItemCollection dodgySenders = new RoutingItemCollection(new Guid("{0DAACC5C-6167-42C7-AED0-55D1D9CC5096}"), "{30394243-1498-43C6-9732-0EE96AD2CC77}");
            dodgySenders.Add(new RoutingItem(new Guid("{55B21D2B-6D35-42AD-B6EB-83632F2538D0}"), "JoeMa", "[email protected]"));
            dodgySenders.Add(new RoutingItem(new Guid("{29B963D7-F4A9-48A3-9F15-19434CE7FAA6}"), "Se", "[email protected]"));

            addressGroup.Add(dodgySenders);

            return addressGroup;
        }
コード例 #2
0
ファイル: TestHelpers.cs プロジェクト: killbug2004/WSProf
        public static IRoutingItemCollections BuildRecipientGroup()
        {
            IRoutingItemCollections addressGroup = new RoutingItemCollections(Guid.Empty, "");

            IRoutingItemCollection recipients = new RoutingItemCollection(new Guid("{FA13BE82-9EB1-407E-9DD5-8005F3E840E4}"), "{50042595-6053-486A-B93D-961E20994C3F}");
            recipients.Add(new RoutingItem(new Guid("{7833C99B-BA46-48C5-B9FF-44718A4E5D9F}"), "Ann", "[email protected]"));
            recipients.Add(new RoutingItem(new Guid("{77D2EF11-9EC5-4C51-ACF7-D62B21F24F55}"), "Sally", "[email protected]"));

            addressGroup.Add(recipients);

            IRoutingItemCollection dodgyRecipients = new RoutingItemCollection(new Guid("{13A8EBE5-8B1E-4919-82E2-8A860DE4043E}"), "{ABEDA70D-DCED-4DA1-90E4-C16F188DB2D9}");
            dodgyRecipients.Add(new RoutingItem(new Guid("{D77BA793-023D-44F6-BC08-1B4BF9217087}"), "WieIs", "[email protected]"));
            dodgyRecipients.Add(new RoutingItem(new Guid("{33FC2B8A-F8F5-4366-BA4F-01C1F6534FE9}"), "JoeMama", "[email protected]"));

            addressGroup.Add(dodgyRecipients);

            return addressGroup;
        }
コード例 #3
0
        public void TestCopyConstruct()
        {
            RoutingItemCollection collection = new RoutingItemCollection(Guid.Empty, "TestCollection");

            RoutingItem testAddress = new RoutingItem("testName", "testAddress");

            Assert.AreEqual("testName", testAddress.Name.Value);
            Assert.AreEqual("testAddress", testAddress.Content);

            collection.Add(testAddress);
            testAddress = new RoutingItem("testName2", "testAddress2");
            collection.Add(testAddress);

            RoutingItemCollection collection2 = new RoutingItemCollection(collection, false, false);

            Assert.AreEqual(2, collection.Count);
            Assert.AreEqual("TestCollection", collection.Name.Value);
            Assert.IsFalse(collection2.ReadOnly);
        }
コード例 #4
0
        public void TestDeepCopy()
        {
            RoutingItemCollection collection = new RoutingItemCollection(Guid.Empty, "TestCollection");

            RoutingItem testAddress = new RoutingItem("testName", "testAddress");

            Assert.AreEqual("testName", testAddress.Name.Value);
            Assert.AreEqual("testAddress", testAddress.Content);

            collection.Add(testAddress);
            testAddress = new RoutingItem("testName2", "testAddress2");
            collection.Add(testAddress);

            RoutingItemCollection collection2 = collection.DeepCopy(true) as RoutingItemCollection; 

            Assert.AreEqual(2, collection.Count);
            Assert.AreEqual("TestCollection", collection.Name.Value);
            Assert.IsTrue(collection2.ReadOnly);
        }
コード例 #5
0
        public void TestConstruct()
        {
            RoutingItemCollection collection = new RoutingItemCollection(Guid.Empty, "TestCollection");

            RoutingItem testAddress = new RoutingItem("testName", "testAddress");

            Assert.AreEqual("testName", testAddress.Name.Value);
            Assert.AreEqual("testAddress", testAddress.Content);

            collection.Add(testAddress);

            Assert.AreEqual(1, collection.Count);
            Assert.AreEqual("TestCollection", collection.Name.Value);
        }
コード例 #6
0
        private IRoutingTable BuildInternalExternalSmtpRouting()
        {
            RoutingTable routingTable = new RoutingTable(new Guid("{AF6E5D89-0C6F-4B10-9A6C-658D13CD3EA8}"), new TranslateableLanguageItem("{8819B8B3-38AE-4D89-A05C-AB0904E979D1}"), ChannelType.SMTP);
            routingTable["resolve"] = new NonTranslateableLanguageItem("emailclient");

            RoutingItemCollection interalGroup = new RoutingItemCollection(Guid.NewGuid(), "Recipients:Internal");
            interalGroup.Add(new RoutingItem("Recipients:Internal", "Recipients:Internal"));
            interalGroup["InternalGroup"] = new NonTranslateableLanguageItem("true");
            interalGroup["assembly"] = new NonTranslateableLanguageItem("Workshare.InternalExternalResolver.dll");
            interalGroup["class"] = new NonTranslateableLanguageItem("Workshare.InternalExternalResolver");
            routingTable.Destinations.Add(interalGroup);

            routingTable.Sources = TestHelpers.BuildSenderGroup();
            routingTable.Destinations = TestHelpers.BuildRecipientGroup();
            TestHelpers.BuildMatrixCells(routingTable);
            return routingTable;
        }
コード例 #7
0
        public void TestConstruct()
        {
            RoutingTable routingTable = new RoutingTable(Guid.Empty, new TranslateableLanguageItem("RoutingName"), ChannelType.SMTP);
            routingTable["resolve"] = new NonTranslateableLanguageItem("emailclient");

            RoutingItemCollection interalGroup = new RoutingItemCollection(Guid.NewGuid(), "Recipients:Internal");
            interalGroup.Add(new RoutingItem("Recipients:Internal", "Recipients:Internal"));
            interalGroup["InternalGroup"] = new NonTranslateableLanguageItem("true");
            interalGroup["assembly"] = new NonTranslateableLanguageItem("Workshare.InternalExternalResolver.dll");
            interalGroup["class"] = new NonTranslateableLanguageItem("Workshare.InternalExternalResolver");
            routingTable.Destinations.Add(interalGroup);

            Assert.AreEqual("RoutingName", routingTable.Name.Value);
            Assert.AreEqual("Sources:Everyone", routingTable.DefaultSource.Name.Value);
            Assert.AreEqual(1, routingTable.Sources.Count);
            Assert.AreEqual("Sources:Everyone", routingTable.Sources[0].Name.Value);

            Assert.AreEqual("Destinations:Everyone", routingTable.DefaultDestination.Name.Value);
            Assert.AreEqual(2, routingTable.Destinations.Count);
            Assert.AreEqual("Recipients:Internal", routingTable.Destinations[0].Name.Value);
            Assert.AreEqual("Destinations:Everyone", routingTable.Destinations[1].Name.Value);
            Assert.AreEqual(2, routingTable.CellCount);
        }
コード例 #8
0
        public void TestCopyConstruct()
        {
            RoutingTable routingTable = new RoutingTable(Guid.Empty, new TranslateableLanguageItem("RoutingName"), ChannelType.SMTP);
            routingTable["resolve"] = new NonTranslateableLanguageItem("emailclient");

            RoutingItemCollection interalGroup = new RoutingItemCollection(Guid.NewGuid(), "Recipients:Internal");
            interalGroup.Add(new RoutingItem("Recipients:Internal", "Recipients:Internal"));
            interalGroup["InternalGroup"] = new NonTranslateableLanguageItem("true");
            interalGroup["assembly"] = new NonTranslateableLanguageItem("Workshare.InternalExternalResolver.dll");
            interalGroup["class"] = new NonTranslateableLanguageItem("Workshare.InternalExternalResolver");
            routingTable.Destinations.Add(interalGroup);

            RoutingItemCollection collection1 = new RoutingItemCollection(Guid.NewGuid(), "Collection1");
            RoutingItemCollection collection2 = new RoutingItemCollection(Guid.NewGuid(), "Collection2");
            RoutingItemCollection collection3 = new RoutingItemCollection(Guid.NewGuid(), "Collection3");
            routingTable.Sources.Add(collection1);
            routingTable.Sources.Add(collection2);
            routingTable.Sources.Add(collection3);

            RoutingItemCollection collection4 = new RoutingItemCollection(Guid.NewGuid(), "Collection4");
            RoutingItemCollection collection5 = new RoutingItemCollection(Guid.NewGuid(), "Collection5");
            RoutingItemCollection collection6 = new RoutingItemCollection(Guid.NewGuid(), "Collection6");
            routingTable.Destinations.Add(collection4);
            routingTable.Destinations.Add(collection5);
            routingTable.Destinations.Add(collection6);

            RoutingTable routingTable2 = new RoutingTable(routingTable);
            routingTable["resolve"] = new NonTranslateableLanguageItem("emailclient");

            routingTable2.Destinations.Add(interalGroup);

            Assert.AreEqual(routingTable.Name.Value, routingTable2.Name.Value);
            Assert.AreEqual(routingTable.Sources.Count, routingTable2.Sources.Count);
            Assert.AreEqual(routingTable.Destinations.Count, routingTable2.Destinations.Count);
            Assert.AreEqual(routingTable.CellCount, routingTable2.CellCount);
            Assert.AreEqual(routingTable.ReadOnly, routingTable2.ReadOnly);
        }
コード例 #9
0
        public void TestCopyInternalExternalSmtpRoutingTable()
        {
            Guid id = new Guid("{DCFC6999-5A1C-43A3-8216-4B700EDFDD33}");
            IPolicyLanguageItem routingName = new TranslateableLanguageItem("Internal External SMTP routing table");
            IRoutingTable routingTable = new RoutingTable(id, routingName, ChannelType.SMTP);
            routingTable["resolve"] = new NonTranslateableLanguageItem("emailclient");

            RoutingItemCollection interalGroup = new RoutingItemCollection(Guid.NewGuid(), "Recipients:Internal");
            interalGroup.Add(new RoutingItem("Recipients:Internal", "Recipients:Internal"));
            interalGroup["InternalGroup"] = new NonTranslateableLanguageItem("true");
            interalGroup["assembly"] = new NonTranslateableLanguageItem("Workshare.InternalExternalResolver.dll");
            interalGroup["class"] = new NonTranslateableLanguageItem("Workshare.InternalExternalResolver");
            routingTable.Destinations.Add(interalGroup);

            Assert.IsNotNull(routingTable);
            Assert.AreEqual(ChannelType.SMTP, routingTable.Type);
            Assert.AreEqual(routingName.Value, routingTable.Name.Value);

            IRoutingTable routingTableCopy = RoutingTableFactory.Instance.Copy(routingTable, false, true);
            Assert.IsNotNull(routingTableCopy);
            Assert.AreEqual(routingName.Value, routingTableCopy.Name.Value);
            Assert.AreEqual(ChannelType.SMTP, routingTableCopy.Type);
            Assert.AreNotEqual(routingTable.Identifier, routingTableCopy.Identifier);
        }
コード例 #10
0
        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));
        }
コード例 #11
0
        public void TestCreatePolicySetChannelsMasterCataloguePrepopulateRouting()
        {
            string testCatalogue = m_testPath + "TestCreatePolicySetChannelsMasterCatalogue.xml";
            string languageFilename = m_testPath + "TestCreatePolicySetChannelsMasterCatalogueLanguage.xml";
            string policySetFilename = m_testPath + "TestCreatePolicySetChannelsMasterCataloguePolicySet.xml";

            XmlPolicyLanguageStore languageStore = XmlPolicyLanguageStore.Instance;
            languageStore.Reset();

            Guid languageId = new Guid("{E8B22533-98EB-4D00-BDE4-406DC3E1858B}");
            PolicyLanguageCache.Instance.ActiveLanguageId = languageId;
            IPolicyLanguage language = new PolicyLanguage(languageId, "en");
            language.DefaultLanguage = true;
            languageStore.AddLanguage(language);

            PolicyLanguageCache policyLanguageCache = PolicyLanguageCache.Instance;
            policyLanguageCache.SetLanguageItemText(languageId, new Guid("{B5C31A66-1B39-4CA7-BF02-AF271B5864F7}"), "New catalogue");
            policyLanguageCache.SetLanguageItemText(languageId, new Guid("{9465CA41-A0A1-40BD-BE26-E83E17D83148}"), "New policy set");
            policyLanguageCache.SetLanguageItemText(languageId, new Guid("{08BC5764-4879-42ED-9AD8-15040C4ADEDE}"), "New policy");
            policyLanguageCache.SetLanguageItemText(languageId, new Guid("{39C06E29-074C-46C8-BE3D-F1CD92BB8D66}"), "Test channel");
            policyLanguageCache.SetLanguageItemText(languageId, new Guid("{03005F4E-04FC-4287-B2A6-25F877D9C31B}"), "Test sources");
            policyLanguageCache.SetLanguageItemText(languageId, new Guid("{3BF2C1D6-0F40-4A32-A311-6F65A5D271BD}"), "Test destinations");
            policyLanguageCache.SetLanguageItemText(languageId, new Guid("{A8CEBEDF-92EA-4DCC-8053-08E5245ED84D}"), "Test routing table");
            policyLanguageCache.SetLanguageItemText(languageId, new Guid("{86D8056D-BA38-44FA-B9BD-100CFB7113F8}"), "Test condition group");
            policyLanguageCache.SetLanguageItemText(languageId, new Guid("{040C4E16-EE88-4B91-833F-8F30A536DAC6}"), "Test action group");
            policyLanguageCache.SetLanguageItemText(languageId, new Guid("{F03E6CD1-98C0-4590-B789-907ECF90BEBF}"), "Test data element");
            policyLanguageCache.SetLanguageItemText(languageId, new Guid("{6197CDBE-9F42-4A61-9369-238355BAB404}"), "Test data element display");
            policyLanguageCache.SetLanguageItemText(languageId, new Guid("{E5C29C65-9600-42D9-8CD6-6638F40F9341}"), "Test data item");
            policyLanguageCache.SetLanguageItemText(languageId, new Guid("{463295F1-A5A2-4BB1-B029-7917AC75E9E6}"), "Test action");

            XMLPolicyCatalogueStore catalogueStore = XMLPolicyCatalogueStore.Instance;
            catalogueStore.Reset();
            PolicyCatalogue policyCatalogue = new PolicyCatalogue(new Guid("{AB5E2A43-01FB-4AA6-98FC-8F74BB0621CA}"), language.Identifier, new TranslateableLanguageItem("{B5C31A66-1B39-4CA7-BF02-AF271B5864F7}"), catalogueStore);
            catalogueStore.AddPolicyCatalogue(policyCatalogue);

            IPolicyStore policyStore = new XmlStore();
            IPolicySet policySet = new PolicySet(new Guid("{29EC30A5-1271-4306-89C8-5811172D901A}"), new TranslateableLanguageItem("{9465CA41-A0A1-40BD-BE26-E83E17D83148}"), policyStore, policyCatalogue, false);
            IPolicy newPolicy = new P5Policy(policySet, new Guid("{D257D4DC-4A12-438F-A32A-CF1CE4474441}"), new TranslateableLanguageItem("{08BC5764-4879-42ED-9AD8-15040C4ADEDE}"), PolicyStatus.Active);
            policySet.Policies.Add(newPolicy);

            // Create policy set channel
            PolicyChannel channel = new PolicyChannel(new Guid("{0FE26539-7AAD-46DC-8D5B-9651CC00B9E4}"), new TranslateableLanguageItem("{39C06E29-074C-46C8-BE3D-F1CD92BB8D66}"), ChannelType.SMTP);           

            // Create routing table
            RoutingTable routingTable = new RoutingTable(new Guid("{CDF0252C-3D5D-4AFB-98C2-89CF00FE2175}"), new TranslateableLanguageItem("{A8CEBEDF-92EA-4DCC-8053-08E5245ED84D}"), ChannelType.SMTP);
            
            IRoutingItemCollection senders = new RoutingItemCollection(new Guid("{441FDCBF-B606-4325-8CD5-E829AD5303B9}"), "{03005F4E-04FC-4287-B2A6-25F877D9C31B}");
            senders.Add(new RoutingItem(new Guid("{D41A47E2-CC13-46FF-BE83-829625792576}"), "James Brown", "*****@*****.**"));
            senders.Add(new RoutingItem(new Guid("{B031DFE9-54E7-482B-8955-18CFB8F06A40}"), "Nat King Cole", "*****@*****.**"));
            IRoutingItemCollection recipients = new RoutingItemCollection(new Guid("{29C44E5C-5405-409F-8513-A99AE246536F}"), "{3BF2C1D6-0F40-4A32-A311-6F65A5D271BD}");
            recipients.Add(new RoutingItem(new Guid("{9E26C6A2-ABE2-427D-9D78-5B8547ADA8D2}"), "Jet Li", "*****@*****.**"));
            
            routingTable.Sources.Add(senders);
            routingTable.Destinations.Add(recipients);

            // Assign routing table to channel
            channel.Routing = routingTable;

            // Create action matrix
            ActionMatrix actionMatrix = new ObjectModel.ActionMatrix(false);

            // Create an action matrix cell
            ActionMatrixCell actionMatrixCell = new ObjectModel.ActionMatrixCell(senders, recipients);

            // Populate the action matrix cell
            ConditionGroup conditionGroup = new ConditionGroup(new Guid("{661EDD6F-D750-493A-9932-E56C8C22E2CF}"), new TranslateableLanguageItem("{86D8056D-BA38-44FA-B9BD-100CFB7113F8}"), ConditionLogic.AND, false);
            ActionGroup actionGroup = new ObjectModel.ActionGroup(new Guid("{32D97853-2680-4B02-A391-22CAEE87B017}"), new TranslateableLanguageItem("{040C4E16-EE88-4B91-833F-8F30A536DAC6}"), 1);
            IActionConditionGroup actionConditionGroup = new ObjectModel.ActionConditionGroup(conditionGroup, actionGroup, false);

            ObjectModel.Action action = new ObjectModel.Action(new Guid("{5153B00E-7D30-4D37-90F9-75E55AA1B32B}"), new TranslateableLanguageItem("{463295F1-A5A2-4BB1-B029-7917AC75E9E6}"), "TestAction.dll", "Test.Action", RunAt.Client, false, 1); //TODO JE

            DataItem dataItem = DataItem.CreateDataItem(new TranslateableLanguageItem("{E5C29C65-9600-42D9-8CD6-6638F40F9341}"), DataType.String, "Not again, when will it ever end!");
            DataElement dataElement = new DataElement(new Guid("{39500989-0B41-4C4E-85DF-CCB4FBD5BEB8}"), new TranslateableLanguageItem("{F03E6CD1-98C0-4590-B789-907ECF90BEBF}"), new TranslateableLanguageItem("{6197CDBE-9F42-4A61-9369-238355BAB404}"), DataType.String, dataItem);
            action.DataElements.Add(dataElement);
            actionConditionGroup.ActionGroup.Actions.Add(action);

            // Assign the action condition group to the matrix cell
            actionMatrixCell.ActionConditionGroups.Add(actionConditionGroup);

            // Assign the action matrix cell to the action matrix
            actionMatrix[senders, recipients] = actionMatrixCell;

            // Assign action matrix to channel
            channel.Actions = actionMatrix;

            // Assign channel to policy
            newPolicy.Channels.Add(channel);

            // Save everything
            IPolicyCatalogueWriter catalogueWriter = catalogueStore.GetWriter(policyCatalogue.Identifier, language.Identifier);
            catalogueWriter.WriteCatalogue(policyCatalogue);
            catalogueWriter.Close();

            policySet.Save();

            TestHelpers.CompareXml(policySetFilename, policyStore.XMLRepresentation);

            IRoutingMatrixCell routingMatrixCell = routingTable[senders, recipients];

            string expectedCatalogueXml = System.IO.File.ReadAllText(testCatalogue);
            expectedCatalogueXml = expectedCatalogueXml.Replace("{0}", routingMatrixCell.Name.Identifier.ToString("B").ToUpper());
            expectedCatalogueXml = expectedCatalogueXml.Replace("{1}", routingMatrixCell.Description.Identifier.ToString("B").ToUpper());
            testCatalogue += ".tmp";

            System.IO.File.WriteAllText(testCatalogue, expectedCatalogueXml);

            TestHelpers.CompareXml(testCatalogue, catalogueStore.GetStoreXML(policySet.MasterCatalogue.Identifier));

            string expectedLanguageXml = System.IO.File.ReadAllText(languageFilename);
            expectedLanguageXml = expectedLanguageXml.Replace("{0}", routingMatrixCell.Name.Identifier.ToString("B").ToUpper());
            expectedLanguageXml = expectedLanguageXml.Replace("{1}", routingMatrixCell.Description.Identifier.ToString("B").ToUpper());
            languageFilename += ".tmp";
            System.IO.File.WriteAllText(languageFilename, expectedLanguageXml);

            TestHelpers.CompareXml(languageFilename, languageStore.GetXMLRepresentation(language.Identifier, language.Name.Value));
        }
コード例 #12
0
        private void AddActionPostAddToChannel(out PolicyChannel channel, out PolicyCatalogue policyCatalogue)
        {
            IPolicyLanguage language = new PolicyLanguage(new Guid("{E8B22533-98EB-4D00-BDE4-406DC3E1858B}"), "en");

            XMLPolicyCatalogueStore catalogueStore = XMLPolicyCatalogueStore.Instance;
            catalogueStore.Reset();
            policyCatalogue = new PolicyCatalogue(new Guid("{AB5E2A43-01FB-4AA6-98FC-8F74BB0621CA}"), language.Identifier, new TranslateableLanguageItem("{B5C31A66-1B39-4CA7-BF02-AF271B5864F7}"), catalogueStore);
            catalogueStore.AddPolicyCatalogue(policyCatalogue);

            PolicySetObserver policySetObserver = new PolicySetObserver(policyCatalogue);

            Assert.AreEqual(0, policyCatalogue.Channels.Count);
            Assert.AreEqual(0, policyCatalogue.ActionGroups.Count);
            Assert.AreEqual(0, policyCatalogue.Actions.Count);
            Assert.AreEqual(0, policyCatalogue.LocationsCollection.Count);
            Assert.AreEqual(0, policyCatalogue.Locations.Count);

            channel = new PolicyChannel(new Guid("{0FE26539-7AAD-46DC-8D5B-9651CC00B9E4}"), new TranslateableLanguageItem("Test channel"), ChannelType.SMTP);
            policySetObserver.AddObject(channel);

            IRoutingItemCollection senders = new RoutingItemCollection(new Guid("{441FDCBF-B606-4325-8CD5-E829AD5303B9}"), "Test sources");
            senders.Add(new RoutingItem(new Guid("{D41A47E2-CC13-46FF-BE83-829625792576}"), "James Brown", "*****@*****.**"));
            senders.Add(new RoutingItem(new Guid("{B031DFE9-54E7-482B-8955-18CFB8F06A40}"), "Nat King Cole", "*****@*****.**"));
            IRoutingItemCollection recipients = new RoutingItemCollection(new Guid("{29C44E5C-5405-409F-8513-A99AE246536F}"), "Test destinations");
            recipients.Add(new RoutingItem(new Guid("{9E26C6A2-ABE2-427D-9D78-5B8547ADA8D2}"), "Jet Li", "*****@*****.**"));
            ActionMatrix actionMatrix = new ActionMatrix();
            ActionMatrixCell actionMatrixCell = new ActionMatrixCell(senders, recipients);

            ConditionGroup conditionGroup = new ConditionGroup(new Guid("{9D065722-1106-4FC1-8D48-58733661B929}"), new TranslateableLanguageItem("Test condition group"), ConditionLogic.AND, false);
            ActionGroup actionGroup = new ActionGroup(new Guid("{E2A16C4D-E112-4249-92B9-612732117809}"), new TranslateableLanguageItem("Test action group"), 1);
            Action action = new Action(new Guid("{A5FAA63E-4F25-456F-92F9-9BB465C18F1F}"), "Test.dll", "Do.It", RunAt.Client, false, 1); //TODO JE
            ActionConditionGroup actionConditionGroup = new ActionConditionGroup(conditionGroup, actionGroup, false);

            actionMatrixCell.ActionConditionGroups.Add(actionConditionGroup);
            actionGroup.Actions.Add(action);

            actionMatrix[senders, recipients] = actionMatrixCell;

            channel.Actions = actionMatrix;
        }
コード例 #13
0
        public void TestOfflineSmtpRouting()
        {
            RoutingTable routingTable = new RoutingTable(Guid.Empty, new TranslateableLanguageItem("RoutingName"), ChannelType.SMTP);
            routingTable["resolve"] = new NonTranslateableLanguageItem("emailclient");

            RoutingItemCollection interalGroup = new RoutingItemCollection(Guid.NewGuid(), "Recipients:Internal");
            interalGroup.Add(new RoutingItem("Recipients:Internal", "Recipients:Internal"));
            interalGroup["InternalGroup"] = new NonTranslateableLanguageItem("true");
            interalGroup["assembly"] = new NonTranslateableLanguageItem("Workshare.InternalExternalResolver.dll");
            interalGroup["class"] = new NonTranslateableLanguageItem("Workshare.InternalExternalResolver");
            routingTable.Destinations.Add(interalGroup);

            Assert.IsNotNull(routingTable.Offline, "Expected a valid offline routing cell");
        }
コード例 #14
0
        public void TestCollection()
        {
            RoutingItemCollections group = new RoutingItemCollections(Guid.NewGuid(), "LocationsCollection");

            RoutingItemCollection collection1 = new RoutingItemCollection(Guid.NewGuid(), "Collection1");
            RoutingItemCollection collection2 = new RoutingItemCollection(Guid.NewGuid(), "Collection1");
            RoutingItemCollection collection3 = new RoutingItemCollection(Guid.NewGuid(), "Collection3");
            group.Add(collection1);
            group.Add(collection2);
            group.Add(collection3);


            RoutingItem address1 = new RoutingItem("Name1", "Address1");
            RoutingItem address2 = new RoutingItem("Name2", "Address2");
            RoutingItem address3 = new RoutingItem("Name3", "Address3");
            RoutingItem address4 = new RoutingItem("Name4", "Address4");
            RoutingItem address5 = new RoutingItem("Name5", "Address5");
            RoutingItem address6 = new RoutingItem("Name6", "Address6");

            collection1.Add(address1);
            collection1.Add(address2);
            collection1.Add(address3);
            collection2.Add(address4);
            collection2.Add(address5);
            collection3.Add(address6);

            Assert.AreEqual(3, collection1.Count);
            Assert.AreEqual(2, collection2.Count);
            Assert.AreEqual(1, collection3.Count);

            RoutingItem address = group[2][0] as RoutingItem;
            Assert.AreEqual("Name6", address.Name.Value);
            Assert.AreEqual("Address6", address.Content);

            address = group[1][1] as RoutingItem;
            Assert.AreEqual("Name5", address.Name.Value);
            Assert.AreEqual("Address5", address.Content);

            address = group[0][0] as RoutingItem;
            Assert.AreEqual("Name1", address.Name.Value);
            Assert.AreEqual("Address1", address.Content);
        }
コード例 #15
0
ファイル: TestP5Policy.cs プロジェクト: killbug2004/WSProf
        private void BuildPolicy(IPolicy policy)
        {
            IConditionGroup conditionGroup = new ConditionGroup(Guid.NewGuid(), new TranslateableLanguageItem(""), ConditionLogic.AND, false);
            policy.Conditions.Add(conditionGroup);

            ICondition condition = new Condition(Guid.NewGuid(), "TestClass", new TranslateableLanguageItem(""), OperatorType.Equals);
            conditionGroup.Conditions.Add(condition);
            condition.Parent = conditionGroup;

            DataMethod dataMethod = new DataMethod("ThisIsATest");
            DataElement parameterDataElement = new DataElement(Guid.NewGuid(), new TranslateableLanguageItem(""), new NonTranslateableLanguageItem(""), DataType.String, "Lets go dynamo");
            dataMethod.Parameters.Add(new Parameter("somethingTerrible", parameterDataElement));
            IDataSource dataSource = new DataSource("ThisIsADodgyAssembly.dll", "ItWantsToTakeOverYourComputer", dataMethod);
            condition.DataLeft = new DataElement(Guid.NewGuid(), new TranslateableLanguageItem(""), new NonTranslateableLanguageItem(""), DataType.Object, dataSource);

            IDataItem dataRightDataItem = DataItem.CreateDataItem(new TranslateableLanguageItem(""), DataType.String, "This is a test");
            condition.DataRight = new DataElement(Guid.NewGuid(), new TranslateableLanguageItem(""), new NonTranslateableLanguageItem(""), DataType.String, dataRightDataItem);


            //Now build a channel
            PolicyChannel channel = new PolicyChannel(Guid.NewGuid(), new TranslateableLanguageItem(""), ChannelType.SMTP);
            policy.Channels.Add(channel);
            RoutingTable routingTable = new RoutingTable(Guid.NewGuid(), new TranslateableLanguageItem(""), ChannelType.SMTP);
            channel.Routing = routingTable;

            IRoutingItemCollection senders = new RoutingItemCollection(Guid.NewGuid(), "");
            senders.Add(new RoutingItem(Guid.NewGuid(), "James Brown", "*****@*****.**"));
            senders.Add(new RoutingItem(Guid.NewGuid(), "Nat King Cole", "*****@*****.**"));

            IRoutingItemCollection recipients = new RoutingItemCollection(Guid.NewGuid(), "");
            recipients.Add(new RoutingItem(Guid.NewGuid(), "Jet Li", "*****@*****.**"));

            routingTable.Sources.Add(senders);
            routingTable.Destinations.Add(recipients);

            ActionMatrix actionMatrix = new ActionMatrix(false);
            channel.Actions = actionMatrix;
            ActionMatrixCell actionMatrixCell = new ActionMatrixCell(senders, recipients);
            actionMatrix[senders, recipients] = actionMatrixCell;

            ConditionGroup conditionGroup2 = new ConditionGroup(Guid.NewGuid(), new TranslateableLanguageItem(""), ConditionLogic.AND, false);
            ActionGroup actionGroup = new ActionGroup(Guid.NewGuid(), new TranslateableLanguageItem(""), 1);
            IActionConditionGroup actionConditionGroup = new ActionConditionGroup(conditionGroup2, actionGroup, false);

            actionMatrixCell.ActionConditionGroups.Add(actionConditionGroup);

            Action action = new Action(Guid.NewGuid(), new TranslateableLanguageItem(""), "TestAction.dll", "Test.Action", RunAt.Client, false, 1); //TODO JE

            DataItem dataItem = DataItem.CreateDataItem(new TranslateableLanguageItem(""), DataType.String, "Not again, when will it ever end!");
            DataElement dataElement = new DataElement(Guid.NewGuid(), new TranslateableLanguageItem(""), new TranslateableLanguageItem(""), DataType.String, dataItem);
            action.DataElements.Add(dataElement);
            actionConditionGroup.ActionGroup.Actions.Add(action);

            //Setup the Action Exception
            ConditionGroup conditionGroup3 = new ConditionGroup(Guid.NewGuid(), new TranslateableLanguageItem(""), ConditionLogic.AND, false);
            ActionGroup actionGroup3 = new ActionGroup(Guid.NewGuid(), new TranslateableLanguageItem(""), 1);
            IActionConditionGroup actionConditionGroup3 = new ActionConditionGroup(conditionGroup3, actionGroup3, false);

            Action action3 = new Action(Guid.NewGuid(), new TranslateableLanguageItem(""), "TestAction.dll", "Test.Action", RunAt.Client, false, 1);
            actionConditionGroup3.ActionGroup.Actions.Add(action3);

            actionMatrix.ActionExceptionHandler.ActionConditionGroups.Add(actionConditionGroup3);

            //Setup the Offline Actions
            ConditionGroup conditionGroup4 = new ConditionGroup(Guid.NewGuid(), new TranslateableLanguageItem(""), ConditionLogic.AND, false);
            ActionGroup actionGroup4 = new ActionGroup(Guid.NewGuid(), new TranslateableLanguageItem(""), 1);
            IActionConditionGroup actionConditionGroup4 = new ActionConditionGroup(conditionGroup4, actionGroup4, false);

            Action action4 = new Action(Guid.NewGuid(), new TranslateableLanguageItem(""), "TestAction.dll", "Test.Action", RunAt.Client, false, 1);
            actionConditionGroup4.ActionGroup.Actions.Add(action4);

            actionMatrix.Offline.ActionConditionGroups.Add(actionConditionGroup4);
        }
コード例 #16
0
        public void TestOfflineSmtpRoutingCopyNullOffline()
        {
            RoutingTable routingTable = new RoutingTable(Guid.Empty, new TranslateableLanguageItem("RoutingName"), ChannelType.SMTP);
            routingTable["resolve"] = new NonTranslateableLanguageItem("emailclient");

            RoutingItemCollection interalGroup = new RoutingItemCollection(Guid.NewGuid(), "Recipients:Internal");
            interalGroup.Add(new RoutingItem("Recipients:Internal", "Recipients:Internal"));
            interalGroup["InternalGroup"] = new NonTranslateableLanguageItem("true");
            interalGroup["assembly"] = new NonTranslateableLanguageItem("Workshare.InternalExternalResolver.dll");
            interalGroup["class"] = new NonTranslateableLanguageItem("Workshare.InternalExternalResolver");
            routingTable.Destinations.Add(interalGroup);

            IRoutingMatrixCell offlineCell = routingTable.Offline;
            Assert.IsNotNull(offlineCell, "Expected a valid offline routing cell");
            offlineCell.Name.Value = "This is an offline cell";

            RoutingTable copy = new RoutingTable(null, false, false);
        }
コード例 #17
0
        public void TestOfflineSmtpRoutingCopyCreateNew()
        {
            RoutingTable routingTable = new RoutingTable(Guid.Empty, new TranslateableLanguageItem("RoutingName"), ChannelType.SMTP);
            routingTable["resolve"] = new NonTranslateableLanguageItem("emailclient");

            RoutingItemCollection interalGroup = new RoutingItemCollection(Guid.NewGuid(), "Recipients:Internal");
            interalGroup.Add(new RoutingItem("Recipients:Internal", "Recipients:Internal"));
            interalGroup["InternalGroup"] = new NonTranslateableLanguageItem("true");
            interalGroup["assembly"] = new NonTranslateableLanguageItem("Workshare.InternalExternalResolver.dll");
            interalGroup["class"] = new NonTranslateableLanguageItem("Workshare.InternalExternalResolver");
            routingTable.Destinations.Add(interalGroup);

            IRoutingMatrixCell offlineCell = routingTable.Offline;
            Assert.IsNotNull(offlineCell, "Expected a valid offline routing cell");
            offlineCell.Name.Value = "This is an offline cell";
            offlineCell.Description.Value = "This is a cell that will be used in offline mode";
            Assert.IsNotNull(offlineCell, "Expected a valid offline routing cell");

            RoutingTable copy = routingTable.DeepCopy(false, true) as RoutingTable;
            Assert.AreEqual(offlineCell.Name.Value, copy.Offline.Name.Value);
            Assert.AreNotEqual(offlineCell.Description.Identifier, copy.Offline.Description.Identifier);
            Assert.AreEqual(offlineCell.Description.Value, copy.Offline.Description.Value);
            copy.Offline.Description.Value = "A change was made";
            Assert.AreNotEqual(offlineCell.Description.Value, copy.Offline.Description.Value);

            RoutingTable copy2 = new RoutingTable(routingTable, false, true);
            routingTable["resolve"] = new NonTranslateableLanguageItem("emailclient");

            copy2.Destinations.Add(interalGroup);

            Assert.AreEqual(offlineCell.Name.Value, copy2.Offline.Name.Value);
            Assert.AreNotEqual(offlineCell.Description.Identifier, copy2.Offline.Description.Identifier);
            Assert.AreEqual(offlineCell.Description.Value, copy2.Offline.Description.Value);
            copy2.Offline.Description.Value = "A change was made";
            Assert.AreNotEqual(offlineCell.Description.Value, copy2.Offline.Description.Value);
        }
コード例 #18
0
        public void TestHasCell()
        {
            RoutingTable routingTable = new RoutingTable(Guid.Empty, new TranslateableLanguageItem("RoutingName"), ChannelType.SMTP);
            routingTable["resolve"] = new NonTranslateableLanguageItem("emailclient");

            RoutingItemCollection interalGroup = new RoutingItemCollection(Guid.NewGuid(), "Recipients:Internal");
            interalGroup.Add(new RoutingItem("Recipients:Internal", "Recipients:Internal"));
            interalGroup["InternalGroup"] = new NonTranslateableLanguageItem("true");
            interalGroup["assembly"] = new NonTranslateableLanguageItem("Workshare.InternalExternalResolver.dll");
            interalGroup["class"] = new NonTranslateableLanguageItem("Workshare.InternalExternalResolver");
            routingTable.Destinations.Add(interalGroup);

            IRoutingItemCollection defaultSenders = routingTable.DefaultSource;
            IRoutingItemCollection defautRecipients = routingTable.DefaultDestination;
            IRoutingItemCollection internalRecipients = routingTable.Destinations[0];

            Assert.AreEqual(2, routingTable.CellCount);

            Assert.IsFalse(routingTable.HasCell(defautRecipients, internalRecipients));
            Assert.IsTrue(routingTable.HasCell(defaultSenders, defautRecipients));
            Assert.IsTrue(routingTable.HasCell(defaultSenders, internalRecipients));
        }
コード例 #19
0
ファイル: TestHelpers.cs プロジェクト: killbug2004/WSProf
        public static IRoutingItemCollections BuildAddressGroup(string[] addressCollection, List<string[]> addresses)
        {
            IRoutingItemCollections addressGroup = new RoutingItemCollections(Guid.Empty, "");

            IRoutingItemCollection senders = new RoutingItemCollection(new Guid(addressCollection[0]), addressCollection[1]);
            foreach (string[] address in addresses)
            {
                senders.Add(new RoutingItem(new Guid(address[0]), address[1], address[2]));
            }

            addressGroup.Add(senders);

            IRoutingItemCollection dodgySenders = new RoutingItemCollection(new Guid("{0DAACC5C-6167-42C7-AED0-55D1D9CC5096}"), "{30394243-1498-43C6-9732-0EE96AD2CC77}");
            dodgySenders.Add(new RoutingItem(new Guid("{55B21D2B-6D35-42AD-B6EB-83632F2538D0}"), "JoeMa", "[email protected]"));
            dodgySenders.Add(new RoutingItem(new Guid("{29B963D7-F4A9-48A3-9F15-19434CE7FAA6}"), "Se", "[email protected]"));

            addressGroup.Add(dodgySenders);

            return addressGroup;
        }
コード例 #20
0
        public void TestRemoveRoutingMatrixRecipients()
        {
            RoutingTable routingTable = new RoutingTable(Guid.Empty, new TranslateableLanguageItem("RoutingName"), ChannelType.SMTP);
            routingTable["resolve"] = new NonTranslateableLanguageItem("emailclient");

            RoutingItemCollection interalGroup = new RoutingItemCollection(Guid.NewGuid(), "Recipients:Internal");
            interalGroup.Add(new RoutingItem("Recipients:Internal", "Recipients:Internal"));
            interalGroup["InternalGroup"] = new NonTranslateableLanguageItem("true");
            interalGroup["assembly"] = new NonTranslateableLanguageItem("Workshare.InternalExternalResolver.dll");
            interalGroup["class"] = new NonTranslateableLanguageItem("Workshare.InternalExternalResolver");
            routingTable.Destinations.Add(interalGroup);

            RoutingItemCollection senders1 = new RoutingItemCollection(Guid.NewGuid(), "Collection1");
            RoutingItemCollection senders2 = new RoutingItemCollection(Guid.NewGuid(), "Collection2");
            routingTable.Sources.Add(senders1);
            routingTable.Sources.Add(senders2);

            RoutingItemCollection recipients1 = new RoutingItemCollection(Guid.NewGuid(), "Collection3");
            RoutingItemCollection recipients2 = new RoutingItemCollection(Guid.NewGuid(), "Collection4");
            routingTable.Destinations.Add(recipients1);
            routingTable.Destinations.Add(recipients2);

            Assert.AreEqual(6, routingTable.CellCount);

            Assert.IsFalse(routingTable.HasCell(recipients2, recipients1));
            Assert.IsFalse(routingTable.HasCell(senders1, senders2));
            Assert.IsTrue(routingTable.HasCell(senders1, recipients1));
            Assert.IsTrue(routingTable.HasCell(senders1, recipients2));
            Assert.IsTrue(routingTable.HasCell(senders2, recipients1));
            Assert.IsTrue(routingTable.HasCell(senders2, recipients2));

            //TODO: uncomment when precedence is implemented - RJ
            //Assert.AreEqual(1, routingTable[senders1, recipients1].Precedence);
            //Assert.AreEqual(2,routingTable[senders1, recipients2].Precedence);
            //Assert.AreEqual(3, routingTable[senders2, recipients1].Precedence);
            //Assert.AreEqual(4, routingTable[senders2, recipients2].Precedence);

            routingTable.Destinations.Remove(recipients1);

            Assert.AreEqual(4, routingTable.CellCount);

            Assert.IsFalse(routingTable.HasCell(recipients2, recipients1));
            Assert.IsFalse(routingTable.HasCell(senders1, senders2));
            Assert.IsFalse(routingTable.HasCell(senders1, recipients1));
            Assert.IsTrue(routingTable.HasCell(senders1, recipients2));
            Assert.IsFalse(routingTable.HasCell(senders2, recipients1));
            Assert.IsTrue(routingTable.HasCell(senders2, recipients2));

            //TODO: uncomment when precedence is implemented - RJ
            //Assert.AreEqual(1, routingTable[senders1, recipients2].Precedence);
            //Assert.AreEqual(2, routingTable[senders2, recipients2].Precedence);
        }
コード例 #21
0
ファイル: TestHelpers.cs プロジェクト: killbug2004/WSProf
 public static IRoutingItemCollection BuildCollection(string[] addressCollectionData, List<string[]> addressesData)
 {
     IRoutingItemCollection addressCollection = new RoutingItemCollection(new Guid(addressCollectionData[0]), addressCollectionData[1]);
     foreach (string[] address in addressesData)
     {
         addressCollection.Add(new RoutingItem(new Guid(address[0]), address[1], address[2]));
     }
     return addressCollection;
 }
コード例 #22
0
        public void TestCollection()
        {
            RoutingItemCollection collection = new RoutingItemCollection(Guid.Empty, "TestCollection");

            RoutingItem testAddress = new RoutingItem("testName", "testAddress");

            Assert.AreEqual("testName", testAddress.Name.Value);
            Assert.AreEqual("testAddress", testAddress.Content);

            collection.Add(testAddress);
            RoutingItem testAddress2 = new RoutingItem("testName2", "testAddress2");
            collection.Add(testAddress2);

            RoutingItem addTest = collection[0] as RoutingItem;

            Assert.AreEqual(addTest.Name.Value, testAddress.Name.Value);
            Assert.AreEqual(addTest.Content, testAddress.Content);
            Assert.AreEqual(addTest["Attribute1"].Value, testAddress["Attribute1"].Value);
            Assert.AreEqual(addTest["Attribute2"].Value, testAddress["Attribute2"].Value);

            addTest = collection[1] as RoutingItem;
            Assert.AreEqual(addTest.Name.Value, testAddress2.Name.Value);
            Assert.AreEqual(addTest.Content, testAddress2.Content);
            Assert.AreEqual(addTest["Attribute1"].Value, testAddress2["Attribute1"].Value);
            Assert.AreEqual(addTest["Attribute2"].Value, testAddress2["Attribute2"].Value);
        }
コード例 #23
0
        private IRoutingItemCollection GetTestRoutingItemCollectionData()
        {
            IRoutingItemCollection routingItemCollection = new RoutingItemCollection();

            //device types
            List<string> deviceTypes = DeviceTypeDisplayTranslator.Instance.DataTypes;

            IRoutingItem routingItem = new RoutingItem(deviceTypes[0], deviceTypes[0]);
            CustomAttributes.SetContentType(routingItem, Workshare.Policy.Routing.RemovableDeviceItemContentTypes.DeviceType);
            routingItemCollection.Add(routingItem);

            routingItem = new RoutingItem(deviceTypes[1], deviceTypes[1]);
            CustomAttributes.SetContentType(routingItem, Workshare.Policy.Routing.RemovableDeviceItemContentTypes.DeviceType);
            routingItemCollection.Add(routingItem);

            routingItem = new RoutingItem(deviceTypes[2], deviceTypes[2]);
            CustomAttributes.SetContentType(routingItem, Workshare.Policy.Routing.RemovableDeviceItemContentTypes.DeviceType);
            routingItemCollection.Add(routingItem);

            //volume names
            routingItem = new RoutingItem("volumeName1", "volumeName1");
            CustomAttributes.SetContentType(routingItem, Workshare.Policy.Routing.RemovableDeviceItemContentTypes.VolumeName);
            routingItemCollection.Add(routingItem);

            routingItem = new RoutingItem("volumeName2", "volumeName2");
            CustomAttributes.SetContentType(routingItem, Workshare.Policy.Routing.RemovableDeviceItemContentTypes.VolumeName);
            routingItemCollection.Add(routingItem);

            //volume ids
            routingItem = new RoutingItem("volumeID1", "volumeID1");
            CustomAttributes.SetContentType(routingItem, Workshare.Policy.Routing.RemovableDeviceItemContentTypes.VolumeID);
            routingItemCollection.Add(routingItem);

            routingItem = new RoutingItem("volumeID2", "volumeID2");
            CustomAttributes.SetContentType(routingItem, Workshare.Policy.Routing.RemovableDeviceItemContentTypes.VolumeID);
            routingItemCollection.Add(routingItem);

            return routingItemCollection;
        }
コード例 #24
0
        public void TestWriteInternalExternalSmtpRoutingTables()
        {
            Guid languageGuid = new Guid("{054846D4-6540-4C78-BA7D-141C91EE6A4C}");
            PolicyLanguage language = new PolicyLanguage(languageGuid, "en");
            language[new Guid("{D0FE23B8-B8A0-4DD6-A0F1-A7836DC0417E}")] = "Test catalogue";
            language[new Guid("{24C8CB4E-71A2-434D-A5E4-8C6121E206FF}")] = "Internal financial users";
            language[new Guid("{39849BB1-2E79-43C6-8F68-229DAE589CDF}")] = "Internal legal users";

            XmlPolicyLanguageStore languageStore = XmlPolicyLanguageStore.Instance;
            languageStore.AddLanguage(language);

            XMLPolicyCatalogueStore catalogueStore = XMLPolicyCatalogueStore.Instance;
            catalogueStore.Reset();

            Guid catalogueId = new Guid("{B496E117-29DA-4770-87E9-62573B28BB4F}");
            XmlPolicyCatalogueWriter catalogueWriter = catalogueStore.GetWriter(catalogueId, languageGuid) as XmlPolicyCatalogueWriter;
            Assert.IsNotNull(catalogueWriter, "Expected a valid [IPolicyStoreWriter] writer");

            catalogueWriter.WriteName("{D0FE23B8-B8A0-4DD6-A0F1-A7836DC0417E}");

            string routingTableGuid = "{AF6E5D89-0C6F-4B10-9A6C-658D13CD3EA8}";
            RoutingTable internalRoutingTable = new RoutingTable(new Guid(routingTableGuid), new TranslateableLanguageItem("{24C8CB4E-71A2-434D-A5E4-8C6121E206FF}"), ChannelType.SMTP);
            internalRoutingTable["resolve"] = new NonTranslateableLanguageItem("emailclient");

            RoutingItemCollection interalGroup = new RoutingItemCollection(Guid.NewGuid(), "Recipients:Internal");
            interalGroup.Add(new RoutingItem("Recipients:Internal", "Recipients:Internal"));
            interalGroup["InternalGroup"] = new NonTranslateableLanguageItem("true");
            interalGroup["assembly"] = new NonTranslateableLanguageItem("Workshare.InternalExternalResolver.dll");
            interalGroup["class"] = new NonTranslateableLanguageItem("Workshare.InternalExternalResolver");
            internalRoutingTable.Destinations.Add(interalGroup);

            catalogueWriter.WriteRoutingTable(internalRoutingTable);

            routingTableGuid = "{533515D4-A339-419D-A4AC-8642BBFF4C82}";
            RoutingTable routingTable = new RoutingTable(new Guid(routingTableGuid), new TranslateableLanguageItem("{39849BB1-2E79-43C6-8F68-229DAE589CDF}"), ChannelType.SMTP);
            catalogueWriter.WriteRoutingTable(routingTable);

            catalogueWriter.Close();

            string testFilename = m_testPath + "ExpectedWriteInternalExternalRoutingTables.xml";
            string results = System.IO.File.ReadAllText(testFilename);
            results = results.Replace("{8C156180-2354-4DE8-B520-93EE66869AA9}", internalRoutingTable.Destinations[0].Identifier.ToString("B").ToUpper());
            results = results.Replace("{409B06D8-5EAC-4956-87DD-1942D549C098}", internalRoutingTable.Destinations[0].Name.Identifier.ToString("B").ToUpper());
            IRoutingItemCollection iac = internalRoutingTable.Destinations[0];
            IRoutingItem address = iac[0];
            results = results.Replace("{493FB257-7959-4290-A63C-116D9B9AC7F6}", address.Identifier.ToString("B").ToUpper());
            testFilename += ".tmp";
            System.IO.File.WriteAllText(testFilename, results);

            TestHelpers.CompareXml(testFilename, catalogueStore.GetStoreXML(catalogueId));
            System.IO.File.Delete(testFilename);
        }
コード例 #25
0
        public void TestAddRoutingPostAddToChannel()
        {
            IPolicyLanguage language = new PolicyLanguage(new Guid("{E8B22533-98EB-4D00-BDE4-406DC3E1858B}"), "en");

            XMLPolicyCatalogueStore catalogueStore = XMLPolicyCatalogueStore.Instance;
            catalogueStore.Reset();
            PolicyCatalogue policyCatalogue = new PolicyCatalogue(new Guid("{AB5E2A43-01FB-4AA6-98FC-8F74BB0621CA}"), language.Identifier, new TranslateableLanguageItem("{B5C31A66-1B39-4CA7-BF02-AF271B5864F7}"), catalogueStore);
            catalogueStore.AddPolicyCatalogue(policyCatalogue);

            PolicySetObserver policySetObserver = new PolicySetObserver(policyCatalogue);

            Assert.AreEqual(0, policyCatalogue.Channels.Count);
            Assert.AreEqual(0, policyCatalogue.RoutingTables.Count);
            Assert.AreEqual(0, policyCatalogue.LocationsCollection.Count);
            Assert.AreEqual(0, policyCatalogue.Locations.Count);

            PolicyChannel channel = new PolicyChannel(new Guid("{0FE26539-7AAD-46DC-8D5B-9651CC00B9E4}"), new TranslateableLanguageItem("Test channel"), ChannelType.SMTP);
            policySetObserver.AddObject(channel);

            IRoutingItemCollection senders = new RoutingItemCollection(new Guid("{441FDCBF-B606-4325-8CD5-E829AD5303B9}"), "Test sources");
            senders.Add(new RoutingItem(new Guid("{D41A47E2-CC13-46FF-BE83-829625792576}"), "James Brown", "*****@*****.**"));
            senders.Add(new RoutingItem(new Guid("{B031DFE9-54E7-482B-8955-18CFB8F06A40}"), "Nat King Cole", "*****@*****.**"));
            IRoutingItemCollection recipients = new RoutingItemCollection(new Guid("{29C44E5C-5405-409F-8513-A99AE246536F}"), "Test destinations");
            recipients.Add(new RoutingItem(new Guid("{9E26C6A2-ABE2-427D-9D78-5B8547ADA8D2}"), "Jet Li", "*****@*****.**"));

            RoutingTable routingTable = new RoutingTable(new Guid("{CDF0252C-3D5D-4AFB-98C2-89CF00FE2175}"), new TranslateableLanguageItem("Test routing table"), ChannelType.SMTP);

            routingTable.Sources.Add(senders);
            routingTable.Destinations.Add(recipients);

            channel.Routing = routingTable;

            IRoutingItemCollection recipients2 = new RoutingItemCollection(new Guid("{4E17A792-0CBC-4362-8A82-A1A7FF3C71B0}"), "More test destinations");
            recipients2.Add(new RoutingItem(new Guid("{98CE8CF9-6CF1-4F32-BE4F-C2D381E6C972}"), "why you", "*****@*****.**"));

            routingTable.Destinations.Add(recipients2);

            Assert.AreEqual(1, policyCatalogue.Channels.Count, "Expected one channel");
            Assert.AreEqual(1, policyCatalogue.RoutingTables.Count, "Expected one routing table");
            Assert.AreEqual(3, policyCatalogue.LocationsCollection.Count, "Expected two location groups");
            Assert.AreEqual(4, policyCatalogue.Locations.Count, "Expected three locations");
        }
コード例 #26
0
        public void TestWriteAddressGroup()
        {
            Guid languageGuid = new Guid("{054846D4-6540-4C78-BA7D-141C91EE6A4C}");
            PolicyLanguage language = new PolicyLanguage(languageGuid, "en");
            language[new Guid("{D0FE23B8-B8A0-4DD6-A0F1-A7836DC0417E}")] = "Test catalogue";
            language[new Guid("{63A4F19E-332A-4006-BD0A-688BD184CB9F}")] = "Financial Users";
            language[new Guid("{852F1BEC-CCB6-4203-8701-89CAE87EA97B}")] = "Legal Users";

            XmlPolicyLanguageStore languageStore = XmlPolicyLanguageStore.Instance;
            languageStore.AddLanguage(language);

            XMLPolicyCatalogueStore catalogueStore = XMLPolicyCatalogueStore.Instance;
            catalogueStore.Reset();

            Guid catalogueId = new Guid("{B496E117-29DA-4770-87E9-62573B28BB4F}");
            XmlPolicyCatalogueWriter catalogueWriter = catalogueStore.GetWriter(catalogueId, languageGuid) as XmlPolicyCatalogueWriter;
            Assert.IsNotNull(catalogueWriter, "Expected a valid [IPolicyStoreWriter] writer");

            catalogueWriter.WriteName("{D0FE23B8-B8A0-4DD6-A0F1-A7836DC0417E}");

            string address1GuidString = "{625C4BDE-907F-4751-BDA1-0E59EDBBCE5C}";
            string address2GuidString = "{6970F70A-B28D-4694-AEFA-C3D687F56112}";
            string address3GuidString = "{7833C99B-BA46-48c5-B9FF-44718A4E5D9F}";
            string address4GuidString = "{77D2EF11-9EC5-4c51-ACF7-D62B21F24F55}";

            IRoutingItem address1 = new RoutingItem(new Guid(address1GuidString), "James", "[email protected]");
            IRoutingItem address2 = new RoutingItem(new Guid(address2GuidString), "Jane", "[email protected]");
            IRoutingItem address3 = new RoutingItem(new Guid(address3GuidString), "Ann", "[email protected]");
            IRoutingItem address4 = new RoutingItem(new Guid(address4GuidString), "Sally", "[email protected]");

            catalogueWriter.WriteLocation(address1);
            catalogueWriter.WriteLocation(address2);
            catalogueWriter.WriteLocation(address3);
            catalogueWriter.WriteLocation(address4);

            RoutingItemCollection recipients1 = new RoutingItemCollection(new Guid("{A81631A6-6AA3-45f7-AADD-4853447E5BD6}"), "{63A4F19E-332A-4006-BD0A-688BD184CB9F}");
            recipients1.Add(address1);
            recipients1.Add(address2);
            RoutingItemCollection recipients2 = new RoutingItemCollection(new Guid("{FA13BE82-9EB1-407e-9DD5-8005F3E840E4}"), "{852F1BEC-CCB6-4203-8701-89CAE87EA97B}");
            recipients2.Add(address3);
            recipients2.Add(address4);

            catalogueWriter.WriteLocationCollection(recipients1);
            catalogueWriter.WriteLocationCollection(recipients2);

            catalogueWriter.Close();

            TestHelpers.CompareXml(m_testPath + "ExpectedWriteAddressGroup.xml", catalogueStore.GetStoreXML(catalogueId));
        }
コード例 #27
0
ファイル: RoutingHelper.cs プロジェクト: killbug2004/WSProf
        private static IRoutingTable SmtpInternalExternalRoutingTableFactory(string name)
        {
            IRoutingTable routingTable = new RoutingTable(Guid.NewGuid(), new TranslateableLanguageItem(name), ChannelType.SMTP);
            routingTable["resolve"] = new NonTranslateableLanguageItem("emailclient");

            RoutingItemCollection interalGroup = new RoutingItemCollection(Guid.NewGuid(), "Recipients:Internal");
            interalGroup.Add(new Workshare.Policy.ObjectModel.RoutingItem("Recipients:Internal", "Recipients:Internal"));
            interalGroup["InternalGroup"] = new NonTranslateableLanguageItem("true");
            interalGroup["assembly"] = new NonTranslateableLanguageItem("Workshare.InternalExternalResolver.dll");
            interalGroup["class"] = new NonTranslateableLanguageItem("Workshare.Policy.Routing.InternalExternalRouter");
            routingTable.Destinations.Add(interalGroup);

            // creating default sources group
            IRoutingItemCollection defaultSenders = routingTable.DefaultSource;
            defaultSenders.Name.Value = Properties.Resources.ROUTING_EVERYONE;

            // creating external destinations group
            IRoutingItemCollection recipients = routingTable.DefaultDestination;
            recipients.Name.Value = Properties.Resources.ROUTING_EXTERNALRECIPIENTS;
            IRoutingMatrixCell cell = routingTable[defaultSenders, recipients];
            cell.Name = new TranslateableLanguageItem(Properties.Resources.ROUTING_TO + recipients.Name.Value);

            // creating internal destinations group
            recipients = routingTable.Destinations[0];
            recipients.Name.Value = Properties.Resources.ROUTING_INTERNALRECIPIENTS;
            cell = routingTable[defaultSenders, recipients];
            cell.Name = new TranslateableLanguageItem(Properties.Resources.ROUTING_TO + recipients.Name.Value);

            RefreshRoutingMatrixTablePrecedences(routingTable);


            return routingTable;
        }
コード例 #28
0
        public void TestRecipients()
        {
            RoutingTable routingTable = new RoutingTable(Guid.Empty, new TranslateableLanguageItem("RoutingName"), ChannelType.SMTP);
            routingTable["resolve"] = new NonTranslateableLanguageItem("emailclient");

            RoutingItemCollection interalGroup = new RoutingItemCollection(Guid.NewGuid(), "Recipients:Internal");
            interalGroup.Add(new RoutingItem("Recipients:Internal", "Recipients:Internal"));
            interalGroup["InternalGroup"] = new NonTranslateableLanguageItem("true");
            interalGroup["assembly"] = new NonTranslateableLanguageItem("Workshare.InternalExternalResolver.dll");
            interalGroup["class"] = new NonTranslateableLanguageItem("Workshare.InternalExternalResolver");
            routingTable.Destinations.Add(interalGroup);

            RoutingItemCollection collection1 = new RoutingItemCollection(Guid.NewGuid(), "Collection1");
            RoutingItemCollection collection2 = new RoutingItemCollection(Guid.NewGuid(), "Collection2");
            RoutingItemCollection collection3 = new RoutingItemCollection(Guid.NewGuid(), "Collection3");
            routingTable.Destinations.Add(collection1);
            routingTable.Destinations.Add(collection2);
            routingTable.Destinations.Add(collection3);

            RoutingItemCollection collection = routingTable.Destinations[0] as RoutingItemCollection;
            Assert.AreEqual("Recipients:Internal", collection.Name.Value);

            collection = routingTable.Destinations[1] as RoutingItemCollection;
            Assert.AreEqual("Collection1", collection.Name.Value);

            collection = routingTable.Destinations[2] as RoutingItemCollection;
            Assert.AreEqual("Collection2", collection.Name.Value);

            collection = routingTable.Destinations[3] as RoutingItemCollection;
            Assert.AreEqual("Collection3", collection.Name.Value);

            Assert.AreEqual(0, routingTable.CellCount);
        }