public void TestParseNullProcess() { var root = new XElement(this.documentRoot); var startElement = TraverseUtils.TagElement(root, "Table"); var parser = new TableParser(); parser.Parse(null, startElement); }
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); }
private TableTag GetTableTag(XElement root) { XElement table = root.Element(WordMl.TableName); const string ItemsSource = "//Test/Certificates/Certificate"; int? dynamicRowValue = 4; return(new TableTag { Table = table, ItemsSource = ItemsSource, DynamicRow = dynamicRowValue, TagTable = TraverseUtils.TagElement(root, "Table"), TagEndTable = TraverseUtils.TagElement(root, "EndTable"), }); }
public void TestRepeaterNotClosed() { const string TagName = "EndRepeater"; var endRepeater = TraverseUtils.TagElement(this.documentRoot, TagName); endRepeater.Remove(); var parser = new RepeaterParser(); try { parser.Parse(new TagProcessorMock <RepeaterProcessor>(), this.documentRoot.Descendants(WordMl.SdtName).First()); Assert.Fail("An exception shoud've been thrown"); } catch (Exception e) { Assert.AreEqual(string.Format(MessageStrings.TagNotFoundOrEmpty, TagName), e.Message); } }
public void TestParseCplx() { using (var docStream = AssemblyResourceHelper.GetResourceStream(this, "document_dontworking_if.xml")) { var doc = XDocument.Load(docStream); var documentRoot = doc.Root.Element(WordMl.WordMlNamespace + "body"); var parser = new IfParser(); var startElement = TraverseUtils.TagElement(documentRoot, "If"); var endElement = TraverseUtils.TagElement(documentRoot, "EndIf"); var parentProcessor = new RootProcessor(); parser.Parse(parentProcessor, startElement); var ifProcessor = (IfProcessor)parentProcessor.Processors.First(); var ifTag = ifProcessor.Tag; const string IfCondition = "//test/condition"; Assert.IsNotNull(ifProcessor); //Assert.IsTrue(IfCondition.Equals(ifTag.Conidition)); CollectionAssert.AreEqual(Encoding.UTF8.GetBytes(IfCondition), Encoding.UTF8.GetBytes(ifTag.Conidition)); Assert.AreEqual(startElement, ifTag.StartIf); Assert.AreEqual(endElement, ifTag.EndIf); var elements = ifTag.IfContent.ToList(); Assert.AreEqual(1, elements.Count()); /* * Assert.IsTrue(elements.Take(6).All(e => e.Name.Equals(WordMl.TextRunName))); * Assert.IsTrue(elements.Skip(6).Take(1).All(e => e.Name.Equals(WordMl.ParagraphName))); * Assert.IsTrue(elements.Skip(7).Take(1).All(e => e.Name.Equals(WordMl.ParagraphPropertiesName))); * Assert.IsTrue(elements.Skip(8).Take(1).All(e => e.Name.Equals(WordMl.BookmarkStartName))); * Assert.IsTrue(elements.Skip(9).Take(4).All(e => e.Name.Equals(WordMl.TextRunName))); * Assert.IsTrue(elements.Skip(13).Take(1).All(e => e.Name.Equals(WordMl.ProofingErrorAnchorName))); * Assert.IsTrue(elements.Skip(14).Take(1).All(e => e.Name.Equals(WordMl.TextRunName))); * Assert.IsTrue(elements.Skip(15).Take(1).All(e => e.Name.Equals(WordMl.ProofingErrorAnchorName))); * Assert.IsTrue(elements.Skip(16).Take(1).All(e => e.Name.Equals(WordMl.TextRunName))); */ Assert.AreEqual(startElement, ifTag.StartIf); Assert.AreEqual(endElement, ifTag.EndIf); } }
public void TestParse() { using (var docStream = AssemblyResourceHelper.GetResourceStream(this, "IfParserTest.xml")) { var doc = XDocument.Load(docStream); var documentRoot = doc.Root.Element(WordMl.WordMlNamespace + "body"); var parser = new IfParser(); var startElement = TraverseUtils.TagElement(documentRoot, "If"); var endElement = TraverseUtils.TagElement(documentRoot, "EndIf"); var parentProcessor = new RootProcessor(); parser.Parse(parentProcessor, startElement); var ifProcessor = (IfProcessor)parentProcessor.Processors.First(); var ifTag = ifProcessor.Tag; const string IfCondition = "//test/condition"; Assert.IsNotNull(ifProcessor); Assert.AreEqual(IfCondition, ifTag.Conidition); var content = ifTag.IfContent.ToList(); Assert.AreEqual(1, content.Count); Assert.AreEqual(WordMl.ParagraphName, content[0].Name); var paragraphChildren = content[0].Elements().ToList(); Assert.AreEqual(6, paragraphChildren.Count()); Assert.AreEqual(WordMl.ParagraphPropertiesName, paragraphChildren[0].Name); Assert.AreEqual(WordMl.ProofingErrorAnchorName, paragraphChildren[1].Name); Assert.AreEqual(WordMl.TextRunName, paragraphChildren[2].Name); Assert.AreEqual("Hello", paragraphChildren[2].Value); Assert.AreEqual(WordMl.ProofingErrorAnchorName, paragraphChildren[3].Name); Assert.AreEqual(WordMl.TextRunName, paragraphChildren[4].Name); Assert.AreEqual(", World!", paragraphChildren[4].Value); Assert.AreEqual(WordMl.SdtName, paragraphChildren[5].Name); Assert.IsTrue(paragraphChildren[5].IsTag("text")); Assert.AreEqual(startElement, ifTag.StartIf); Assert.AreEqual(endElement, ifTag.EndIf); var textProcessor = (TextProcessor)ifProcessor.Processors.FirstOrDefault(); Assert.IsNotNull(textProcessor); Assert.IsNotNull(textProcessor.TextTag); Assert.AreEqual("//test/text", textProcessor.TextTag.Expression); } }
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); }