public void TestActualGenerationItemIfInRepeater() { MemoryStream output; using (var input = AssemblyResourceHelper.GetResourceStream(this, "FaultItemIf.docx")) { output = new MemoryStream(); var generator = new DocxGenerator(); XDocument data; using (var dataStream = AssemblyResourceHelper.GetResourceStream(this, "FaultItemIfData.xml")) { data = XDocument.Load(dataStream); } generator.GenerateDocx( input, output, data, new DocxGeneratorSettings() { MissingDataMode = MissingDataMode.ThrowException }); } var package = new DocxPackage(output); package.Load(); var documentPart = package.Parts.Single(p => p.PartUri.OriginalString.Contains("document.xml")).PartXml; Console.WriteLine(documentPart); //Console.WriteLine(documentPart); Assert.IsFalse(documentPart.Descendants(WordMl.SdtName).Any()); Assert.IsFalse(documentPart.Descendants(WordMl.ParagraphName).Descendants().Any(el => el.Name == WordMl.ParagraphName)); }
public void TestActualGeneration() { var input = AssemblyResourceHelper.GetResourceStream(this, "DocxPackageTest.docx"); using (input) { var output = new MemoryStream(); var generator = new DocxGenerator(); const string DynamicText = "My anaconda don't"; generator.GenerateDocx( input, output, new SomeEntityWrapper { Test = new SomeEntity { Text = DynamicText } }); var package = new DocxPackage(output); package.Load(); XDocument documentPartXml = package.Parts.Single(p => p.PartUri.OriginalString.Contains("document.xml")).PartXml; Assert.IsFalse(documentPartXml.Descendants(WordMl.SdtName).Any()); Assert.IsNotNull(documentPartXml.Descendants(WordMl.TextRunName).Single(e => e.Value == DynamicText)); } }
public void TestActualGenerationItemRepeaterNestedDemoIRInParagraph() { MemoryStream output; using (var input = AssemblyResourceHelper.GetResourceStream(this, "ItemRepeaterNestedDemoIRParagraph.docx")) { output = new MemoryStream(); var generator = new DocxGenerator(); XDocument data; using (var dataStream = AssemblyResourceHelper.GetResourceStream(this, "ItemRepeaterNested2IRDemoData.xml")) { data = XDocument.Load(dataStream); } generator.GenerateDocx( input, output, data, new DocxGeneratorSettings() { MissingDataMode = MissingDataMode.ThrowException }); } var package = new DocxPackage(output); package.Load(); var documentPart = package.Parts.Single(p => p.PartUri.OriginalString.Contains("document.xml")).PartXml; Console.WriteLine(documentPart.Descendants(WordMl.TableRowName).First(tr => tr.Descendants().Any(el => el.Value == "Certificate 1"))); //Console.WriteLine(documentPart); Assert.IsFalse(documentPart.Descendants(WordMl.SdtName).Any()); Assert.IsFalse(documentPart.Descendants(WordMl.ParagraphName).Descendants().Any(el => el.Name == WordMl.ParagraphName)); Assert.IsFalse(documentPart.Descendants(WordMl.TableCellName).Elements(WordMl.ParagraphName).Any(el => el.Name.Equals(WordMl.TextRunName))); }
public void TestActualGenerationItemHtmlContentInTable() { var input = AssemblyResourceHelper.GetResourceStream(this, "ItemHtmlContentInTable.docx"); using (input) { var output = new MemoryStream(); var generator = new DocxGenerator(); XDocument data; using (var dataStream = AssemblyResourceHelper.GetResourceStream(this, "data.xml")) { data = XDocument.Load(dataStream); } generator.GenerateDocx( input, output, data, new DocxGeneratorSettings() { MissingDataMode = MissingDataMode.Ignore }); var package = new DocxPackage(output); package.Load(); var documentPart = package.Parts.Single(p => p.PartUri.OriginalString.Contains("document.xml")).PartXml; Assert.IsFalse(documentPart.Descendants(WordMl.SdtName).Any()); Assert.IsFalse(documentPart.Descendants(WordMl.ParagraphName).Descendants().Any(el => el.Name == WordMl.ParagraphName)); } }
public void TestActualGenerationStaticTextAfterTag() { var input = AssemblyResourceHelper.GetResourceStream(this, "corruptedDocxx.docx"); using (input) { var output = new MemoryStream(); var generator = new DocxGenerator(); XDocument data; using (var dataStream = AssemblyResourceHelper.GetResourceStream(this, "DemoData2.xml")) { data = XDocument.Load(dataStream); } generator.GenerateDocx( input, output, data); var package = new DocxPackage(output); package.Load(); var documentPart = package.Parts.Single(p => p.PartUri.OriginalString.Contains("document.xml")).PartXml; Assert.IsFalse(documentPart.Descendants(WordMl.SdtName).Any()); Console.WriteLine(documentPart); Assert.IsTrue(documentPart.Root.Descendants(WordMl.TableCellName).All(element => element.Elements().All(el => el.Name != WordMl.TextRunName))); } }
private void InitializeStubbedExecution() { this.docxPackageMock = new Mock <DocxPackage>(); this.docxPackageMock.Setup(p => p.Load()).Verifiable(); this.docxPackageMock.Setup(p => p.Save()).Verifiable(); this.docxPackagePartMock = new Mock <DocxPackagePart>(); var document = new XDocument(); this.root = document.Root; this.docxPackagePartMock.SetupGet(p => p.PartXml).Returns(document); this.docxPackagePartMock.Setup(p => p.Save()).Verifiable(); var packageParts = new List <DocxPackagePart> { this.docxPackagePartMock.Object }; this.docxPackageMock.SetupGet(x => x.Parts).Returns(packageParts); var packageFactoryMock = new Mock <IDocxPackageFactory>(); packageFactoryMock.Setup(f => f.Create(It.IsAny <Stream>())).Returns(this.docxPackageMock.Object); this.processorMock = new Mock <AbstractProcessor>(); this.processorMock.Setup(p => p.Process()).Verifiable(); this.processorMock.SetupSet(processor => processor.DataReader = It.IsAny <DataReader>()).Verifiable(); var processorFactoryMock = new Mock <IProcessorFactory>(); processorFactoryMock.Setup(f => f.Create()).Returns(this.processorMock.Object); this.parserMock = new Mock <ITagParser>(); var parserFactoryMock = new Mock <IParserFactory>(); parserFactoryMock.Setup(f => f.Create()).Returns(this.parserMock.Object); this.stringDataReaderMock = new Mock <DataReader>(); this.entityDataReaderMock = new Mock <DataReader>(); this.documentDataReaderMock = new Mock <DataReader>(); var dataReaderFactoryMock = new Mock <IDataReaderFactory>(); dataReaderFactoryMock.Setup(f => f.CreateReader(It.IsAny <string>())).Returns(this.stringDataReaderMock.Object); dataReaderFactoryMock.Setup(f => f.CreateReader(It.IsAny <A>())).Returns(this.entityDataReaderMock.Object); dataReaderFactoryMock.Setup(f => f.CreateReader(It.IsAny <XDocument>())).Returns(this.documentDataReaderMock.Object); this.docxGenerator = new DocxGenerator { DataReaderFactory = dataReaderFactoryMock.Object, PackageFactory = packageFactoryMock.Object, ParserFactory = parserFactoryMock.Object, ProcessorFactory = processorFactoryMock.Object }; this.templateStream = AssemblyResourceHelper.GetResourceStream(this, "DocxPackageTest.docx"); this.outputStream = new MemoryStream(); }
public void TestActualXDocumentGenerationHTMLLat1Content() { const string htmlContentText = @" <html> <head /> <body> <p> Text is «gfdgfdg </p> </body> </html> "; var input = AssemblyResourceHelper.GetResourceStream(this, "HTMLLat1Content.docx"); using (input) { var output = new MemoryStream(); var generator = new DocxGenerator(); var data = new XDocument(); data.Add( new XElement("test", new XElement( "hypertext", htmlContentText ) ) ); generator.GenerateDocx( input, output, data, new DocxGeneratorSettings() { MissingDataMode = MissingDataMode.ThrowException }); var package = new DocxPackage(output); package.Load(); using (var fileStream = File.Create("C:\\xdochtmlcontent.docx")) { output.Seek(0, SeekOrigin.Begin); output.CopyTo(fileStream); } var documentPart = package.Parts.Single(p => p.PartUri.OriginalString.Contains("document.xml")).PartXml; Console.WriteLine(documentPart); Assert.IsFalse(documentPart.Descendants(WordMl.SdtName).Any()); Assert.IsFalse(documentPart.Descendants(WordMl.ParagraphName).Descendants().Any(el => el.Name == WordMl.ParagraphName)); } }
public void TestActualGenerationRepeaterInIf() { var input = AssemblyResourceHelper.GetResourceStream(this, "RepeaterInIf.docx"); using (input) { var output = new MemoryStream(); var generator = new DocxGenerator(); XDocument data; using (var dataStream = AssemblyResourceHelper.GetResourceStream(this, "dataRepeaterInIf.xml")) { data = XDocument.Load(dataStream); } generator.GenerateDocx( input, output, data); var package = new DocxPackage(output); package.Load(); Assert.IsFalse(package.Parts.Single(p => p.PartUri.OriginalString.Contains("document.xml")).PartXml.Descendants(WordMl.SdtName).Any()); } }