public void TestParseMissingEndTableTag()
        {
            var processorMock = new TagProcessorMock <TableProcessor>();
            var parser        = new TableParser();

            var root = new XElement(this.documentRoot);

            TraverseUtils.TagElement(root, "EndTable").Remove();
            var startElement = TraverseUtils.TagElement(root, "Table");

            parser.Parse(processorMock, startElement);
        }
示例#2
0
 public void TestParseFooter()
 {
     using (var docStream = AssemblyResourceHelper.GetResourceStream(this, "TextParserTest_footer.xml"))
     {
         var doc           = XDocument.Load(docStream);
         var processorMock = new TagProcessorMock <TextProcessor>();
         var parser        = new TextParser();
         parser.Parse(processorMock, doc.Descendants(WordMl.SdtName).First());
         var processor = processorMock.InnerProcessor;
         var tag       = processor.TextTag;
         Assert.IsNotNull(tag);
         Assert.AreEqual("//test/text", tag.Expression);
     }
 }
示例#3
0
        public void TestOkay()
        {
            var parser           = new RepeaterParser();
            var tagProcessorMock = new TagProcessorMock <RepeaterProcessor>();

            parser.Parse(tagProcessorMock, this.documentRoot.Descendants(WordMl.SdtName).First());

            var result = tagProcessorMock.InnerProcessor.RepeaterTag;

            var repeaterElements =
                TraverseUtils.ElementsBetween(result.StartRepeater, result.EndRepeater)
                .Select(result.MakeElementCallback).ToList();

            Assert.AreEqual(1, repeaterElements.Count);

            var childrenOfFirstElement = repeaterElements.First().Elements.ToList();

            Assert.AreEqual(9, childrenOfFirstElement.Count);
            Assert.AreEqual("./Subject", childrenOfFirstElement[3].Expression);
            Assert.AreEqual(true, childrenOfFirstElement[5].IsIndex);
            Assert.AreEqual("./ExpireDate", childrenOfFirstElement[7].Expression);
            Assert.AreEqual("//test/certificates", result.Source);
        }
        public void TestParseVariousOrderTag()
        {
            var processorMock = new TagProcessorMock <TableProcessor>();
            var parser        = new TableParser();

            var root      = new XElement(this.documentRoot);
            var paragraph = root.Element(WordMl.ParagraphName);
            //var itemsElement = TraverseUtils.TagElement(root, "Items");
            //itemsElement.AddBeforeSelf(paragraph);
            //var dynamicRowElement = TraverseUtils.TagElement(root, "DynamicRow");
            //dynamicRowElement.AddBeforeSelf(paragraph);
            //var contentElement = TraverseUtils.TagElement(root, "Content");
            //contentElement.AddBeforeSelf(paragraph);
            //var endContentElement = TraverseUtils.TagElement(root, "EndContent");
            //endContentElement.AddBeforeSelf(paragraph);
            var tableElement = root.Element(WordMl.TableName);

            Assert.IsNotNull(tableElement);
            tableElement.AddBeforeSelf(paragraph);
            var endTableElement = TraverseUtils.TagElement(root, "EndTable");

            endTableElement.AddBeforeSelf(paragraph);
            var startElement = TraverseUtils.TagElement(root, "Table");

            parser.Parse(processorMock, startElement);
            var processor = processorMock.InnerProcessor;
            var tag       = processor.TableTag;

            Assert.AreEqual(4, tag.DynamicRow);
            Assert.AreEqual("//test/certificates", tag.ItemsSource);
            Assert.AreEqual(tableElement, tag.Table);
            this.CheckTagElements(tag);

            //  itemsElement.Remove();
            //endTableElement.AddBeforeSelf(itemsElement);

            parser.Parse(processorMock, startElement);
            processor = processorMock.InnerProcessor;
            tag       = processor.TableTag;
            Assert.AreEqual(4, tag.DynamicRow);
            Assert.AreEqual("//test/certificates", tag.ItemsSource);
            Assert.AreEqual(tableElement, tag.Table);
            this.CheckTagElements(tag);

            //dynamicRowElement.Remove();
            //endTableElement.AddBeforeSelf(dynamicRowElement);

            parser.Parse(processorMock, startElement);
            processor = processorMock.InnerProcessor;
            tag       = processor.TableTag;
            Assert.AreEqual(4, tag.DynamicRow);
            Assert.AreEqual("//test/certificates", tag.ItemsSource);
            Assert.AreEqual(tableElement, tag.Table);
            this.CheckTagElements(tag);

            //contentElement.Remove();
            tableElement.Remove();
            //endContentElement.Remove();
            //endTableElement.AddBeforeSelf(contentElement);
            endTableElement.AddBeforeSelf(tableElement);
            //endTableElement.AddBeforeSelf(endContentElement);

            parser.Parse(processorMock, startElement);
            processor = processorMock.InnerProcessor;
            tag       = processor.TableTag;
            Assert.AreEqual(4, tag.DynamicRow);
            Assert.AreEqual("//test/certificates", tag.ItemsSource);
            Assert.AreEqual(tableElement, tag.Table);
            this.CheckTagElements(tag);
        }