Exemplo n.º 1
0
        public void TestMultipleActions()
        {
            MockAction1 action1 = new MockAction1();
            MockAction2 action2 = new MockAction2();
            action1.Precedence = 1;
            action2.Precedence = 2;

            NxObjectWriter pow = new NxObjectWriter();
            pow.AddAction(action1);
            pow.AddAction(action2);
            XmlDocument objects = pow.Objects;
            string xpath = string.Format("/PolicyObjects/Actions/Object[@ref='{0}']", action1.Identifier.ToString());
            XmlNode objectNode = objects.SelectSingleNode(xpath);

            Assert.AreEqual(action1.Identifier.ToString(), objectNode.Attributes["ref"].Value);
            Assert.AreEqual(action1.Assembly, objectNode.Attributes["assembly"].Value);
            Assert.AreEqual(action1.Class, objectNode.Attributes["class"].Value);

            XmlNode deNode = objectNode.SelectSingleNode("DataElement");
            Assert.AreEqual("StringArray", deNode.Attributes["type"].Value);
            XmlNodeList nodes = deNode.SelectNodes("DataItem");
            Assert.IsTrue(string.Compare("Paragraph", nodes[0].InnerText, true) == 0);
            Assert.IsTrue(string.Compare("Body", nodes[1].InnerText, true) == 0);
            Assert.IsTrue(string.Compare("Subject", nodes[2].InnerText, true) == 0);

            xpath = string.Format("/PolicyObjects/Actions/Object[@ref='{0}']", action2.Identifier.ToString());
            objectNode = objects.SelectSingleNode(xpath);

            Assert.AreEqual(action2.Identifier.ToString(), objectNode.Attributes["ref"].Value);
            Assert.AreEqual(action2.Assembly, objectNode.Attributes["assembly"].Value);
            Assert.AreEqual(action2.Class, objectNode.Attributes["class"].Value);

            deNode = objectNode.SelectSingleNode("DataElement");
            Assert.AreEqual("StringArray", deNode.Attributes["type"].Value);
            nodes = deNode.SelectNodes("DataItem");
            Assert.IsTrue(string.Compare("Toc", nodes[0].InnerText, true) == 0);
            Assert.IsTrue(string.Compare("Footer", nodes[1].InnerText, true) == 0);
            Assert.IsTrue(string.Compare("Header", nodes[2].InnerText, true) == 0);
        }