From 92f9af613f7a48f8c60d405becf9bc151de33c49 Mon Sep 17 00:00:00 2001 From: Plaisted Date: Sat, 6 Feb 2021 15:31:58 -0600 Subject: [PATCH] more build system c# version fixes --- .../Writer/PdfDocumentBuilderTests.cs | 138 ++++++++++-------- 1 file changed, 75 insertions(+), 63 deletions(-) diff --git a/src/UglyToad.PdfPig.Tests/Writer/PdfDocumentBuilderTests.cs b/src/UglyToad.PdfPig.Tests/Writer/PdfDocumentBuilderTests.cs index 96dcf75d..e1f57ead 100644 --- a/src/UglyToad.PdfPig.Tests/Writer/PdfDocumentBuilderTests.cs +++ b/src/UglyToad.PdfPig.Tests/Writer/PdfDocumentBuilderTests.cs @@ -758,71 +758,80 @@ var one = IntegrationHelpers.GetDocumentPath("Single Page Simple - from open office.pdf"); var two = IntegrationHelpers.GetDocumentPath("Single Page Simple - from inkscape.pdf"); - using var docOne = PdfDocument.Open(one); - using var docTwo = PdfDocument.Open(two); - var builder = new PdfDocumentBuilder(); - builder.AddPage(docOne, 1); - builder.AddPage(docTwo, 1); - var result = builder.Build(); - PdfMergerTests.CanMerge2SimpleDocumentsAssertions(new MemoryStream(result), "I am a simple pdf.", "Write something inInkscape", false); + + using (var docOne = PdfDocument.Open(one)) + using (var docTwo = PdfDocument.Open(two)) + { + var builder = new PdfDocumentBuilder(); + builder.AddPage(docOne, 1); + builder.AddPage(docTwo, 1); + var result = builder.Build(); + PdfMergerTests.CanMerge2SimpleDocumentsAssertions(new MemoryStream(result), "I am a simple pdf.", "Write something inInkscape", false); + } } [Fact] public void CanMerge2SimpleDocuments_Builder() { var one = IntegrationHelpers.GetDocumentPath("Single Page Simple - from inkscape.pdf"); - var two = IntegrationHelpers.GetDocumentPath("Single Page Simple - from open office.pdf"); - - using var docOne = PdfDocument.Open(one); - using var docTwo = PdfDocument.Open(two); - var builder = new PdfDocumentBuilder(); - builder.AddPage(docOne, 1); - builder.AddPage(docTwo, 1); - var result = builder.Build(); - PdfMergerTests.CanMerge2SimpleDocumentsAssertions(new MemoryStream(result), "Write something inInkscape", "I am a simple pdf.", false); + var two = IntegrationHelpers.GetDocumentPath("Single Page Simple - from open office.pdf"); + + using (var docOne = PdfDocument.Open(one)) + using (var docTwo = PdfDocument.Open(two)) + using (var builder = new PdfDocumentBuilder()) + { + + builder.AddPage(docOne, 1); + builder.AddPage(docTwo, 1); + var result = builder.Build(); + PdfMergerTests.CanMerge2SimpleDocumentsAssertions(new MemoryStream(result), "Write something inInkscape", "I am a simple pdf.", false); + } + + } [Fact] public void CanDedupObjectsFromSameDoc_Builder() { - var one = IntegrationHelpers.GetDocumentPath("Multiple Page - from Mortality Statistics.pdf"); - - using var doc = PdfDocument.Open(one); - - using var builder = new PdfDocumentBuilder(); - builder.AddPage(doc, 1); - builder.AddPage(doc, 1); - - var result = builder.Build(); - - using (var document = PdfDocument.Open(result, ParsingOptions.LenientParsingOff)) - { - Assert.Equal(2, document.NumberOfPages); - Assert.True(document.Structure.CrossReferenceTable.ObjectOffsets.Count <= 29, - "Expected object count to be lower than 30"); // 45 objects with duplicates, 29 with correct re-use - } + var one = IntegrationHelpers.GetDocumentPath("Multiple Page - from Mortality Statistics.pdf"); + + using (var doc = PdfDocument.Open(one)) + { + var builder = new PdfDocumentBuilder(); + builder.AddPage(doc, 1); + builder.AddPage(doc, 1); + + var result = builder.Build(); + + using (var document = PdfDocument.Open(result, ParsingOptions.LenientParsingOff)) + { + Assert.Equal(2, document.NumberOfPages); + Assert.True(document.Structure.CrossReferenceTable.ObjectOffsets.Count <= 29, + "Expected object count to be lower than 30"); // 45 objects with duplicates, 29 with correct re-use + } + } } [Fact] public void CanDedupObjectsFromDifferentDoc_HashBuilder() { - var one = IntegrationHelpers.GetDocumentPath("Multiple Page - from Mortality Statistics.pdf"); - - using var doc = PdfDocument.Open(one); - using var doc2 = PdfDocument.Open(one); - - using var builder = new PdfDocumentBuilder(new MemoryStream(), true, PdfWriterType.ObjectInMemoryDedup); - builder.AddPage(doc, 1); - builder.AddPage(doc2, 1); - - var result = builder.Build(); - - using (var document = PdfDocument.Open(result, ParsingOptions.LenientParsingOff)) - { - Assert.Equal(2, document.NumberOfPages); - Assert.True(document.Structure.CrossReferenceTable.ObjectOffsets.Count <= 29, - "Expected object count to be lower than 30"); // 45 objects with duplicates, 29 with correct re-use - } + var one = IntegrationHelpers.GetDocumentPath("Multiple Page - from Mortality Statistics.pdf"); + using (var doc = PdfDocument.Open(one)) + using (var doc2 = PdfDocument.Open(one)) + using (var builder = new PdfDocumentBuilder(new MemoryStream(), true, PdfWriterType.ObjectInMemoryDedup)) + { + builder.AddPage(doc, 1); + builder.AddPage(doc2, 1); + + var result = builder.Build(); + + using (var document = PdfDocument.Open(result, ParsingOptions.LenientParsingOff)) + { + Assert.Equal(2, document.NumberOfPages); + Assert.True(document.Structure.CrossReferenceTable.ObjectOffsets.Count <= 29, + "Expected object count to be lower than 30"); // 45 objects with duplicates, 29 with correct re-use + } + } } [InlineData("Single Page Simple - from google drive.pdf")] @@ -834,22 +843,25 @@ { var docPath = IntegrationHelpers.GetDocumentPath(name); - using var doc = PdfDocument.Open(docPath, ParsingOptions.LenientParsingOff); - var count1 = GetCounts(doc); - - using var builder = new PdfDocumentBuilder(); - for (var i = 1; i <= doc.NumberOfPages; i++) - { - builder.AddPage(doc, i); + using (var doc = PdfDocument.Open(docPath, ParsingOptions.LenientParsingOff)) + using (var builder = new PdfDocumentBuilder()) + { + var count1 = GetCounts(doc); + + for (var i = 1; i <= doc.NumberOfPages; i++) + { + builder.AddPage(doc, i); + } + var result = builder.Build(); + + using (var doc2 = PdfDocument.Open(result, ParsingOptions.LenientParsingOff)) + { + var count2 = GetCounts(doc2); + Assert.Equal(count1.Item1, count2.Item1); + Assert.Equal(count1.Item2, count2.Item2); + } } - var result = builder.Build(); - using (var doc2 = PdfDocument.Open(result, ParsingOptions.LenientParsingOff)) - { - var count2 = GetCounts(doc2); - Assert.Equal(count1.Item1, count2.Item1); - Assert.Equal(count1.Item2, count2.Item2); - } (int, double) GetCounts(PdfDocument toCount) {