From 66898714bb21e643f3799c779f849e3d1efbe738 Mon Sep 17 00:00:00 2001 From: Lorenz Stechauner Date: Sat, 30 Mar 2024 09:51:48 +0100 Subject: [PATCH] Tests: Add more DocumentsTests --- Tests/DocumentTests/DeliveryNoteTest.cs | 7 ++-- Tests/DocumentTests/LetterHeadTest.cs | 25 +++++++++++++ Tests/DocumentTests/MemberDataSheetTest.cs | 41 ++++++++++++++++++++++ Tests/DocumentTests/MemberListTest.cs | 26 ++++++++++++++ Tests/DocumentTests/Utils.cs | 4 +-- 5 files changed, 97 insertions(+), 6 deletions(-) create mode 100644 Tests/DocumentTests/LetterHeadTest.cs create mode 100644 Tests/DocumentTests/MemberDataSheetTest.cs create mode 100644 Tests/DocumentTests/MemberListTest.cs diff --git a/Tests/DocumentTests/DeliveryNoteTest.cs b/Tests/DocumentTests/DeliveryNoteTest.cs index cfe7cd8..88470ef 100644 --- a/Tests/DocumentTests/DeliveryNoteTest.cs +++ b/Tests/DocumentTests/DeliveryNoteTest.cs @@ -5,12 +5,11 @@ namespace Tests.DocumentTests { [TestFixture] public class DeliveryNoteTest { - private readonly AppDbContext Context = new(); - [Test] public async Task Test_01_OneDeliveryPart() { - var d = await Context.Deliveries.FindAsync(2020, 1); - using var doc = new DeliveryNote(d!, Context); + using var ctx = new AppDbContext(); + var d = await ctx.Deliveries.FindAsync(2020, 1); + using var doc = new DeliveryNote(d!, ctx); var text = await Utils.GeneratePdfText(doc); Assert.Multiple(() => { Assert.That(text, Contains.Substring(""" diff --git a/Tests/DocumentTests/LetterHeadTest.cs b/Tests/DocumentTests/LetterHeadTest.cs new file mode 100644 index 0000000..096594a --- /dev/null +++ b/Tests/DocumentTests/LetterHeadTest.cs @@ -0,0 +1,25 @@ +using Elwig.Documents; +using Elwig.Helpers; + +namespace Tests.DocumentTests { + [TestFixture] + public class LetterheadTest { + + [Test] + public async Task Test_01_SimpleLetterhead() { + using var ctx = new AppDbContext(); + var m = await ctx.Members.FindAsync(104); + using var doc = new Letterhead(m!); + var text = await Utils.GeneratePdfText(doc); + Assert.Multiple(() => { + Assert.That(text, Contains.Substring("WG Test | Genossenschaftsstraße 1 | 2120 Wolkersdorf")); + Assert.That(text, Contains.Substring(""" + WINZER Waltraud + Wiener Straße 15 + 2120 Wolkersdorf im Weinviertel + """)); + Console.WriteLine(text); + }); + } + } +} diff --git a/Tests/DocumentTests/MemberDataSheetTest.cs b/Tests/DocumentTests/MemberDataSheetTest.cs new file mode 100644 index 0000000..2a8e256 --- /dev/null +++ b/Tests/DocumentTests/MemberDataSheetTest.cs @@ -0,0 +1,41 @@ +using Elwig.Documents; +using Elwig.Helpers; + +namespace Tests.DocumentTests { + [TestFixture] + public class MemberDataSheetTest { + + [Test] + public async Task Test_01_SimpleMember() { + using var ctx = new AppDbContext(); + var m = await ctx.Members.FindAsync(104); + using var doc = new MemberDataSheet(m!, ctx); + var text = await Utils.GeneratePdfText(doc); + Assert.Multiple(() => { + Assert.That(text, Contains.Substring(""" + WINZER Waltraud + Wiener Straße 15 + 2120 Wolkersdorf im Weinviertel + """)); + Assert.That(text, Contains.Substring("Stammdatenblatt WINZER Waltraud")); + Assert.That(text, Contains.Substring(""" + Titel (vorangestellt) Vorname Nachname Titel (nachgestellt) + Waltraud Winzer + """)); + Assert.That(text, Contains.Substring("Mitglieds-Nr.: 104")); + Assert.That(text, Contains.Substring("Adresse: Wiener Straße 15")); + Assert.That(text, Contains.Substring("PLZ/Ort: 2120 Wolkersdorf im Weinviertel (Wolkersdorf im Weinviertel)")); + Assert.That(text, Contains.Substring("Adresse: Wiener Straße 15")); + Assert.That(text, Contains.Substring(""" + Rechnungsadresse (optional) + Name: Weinbau Waltraud Winzer GmbH + Adresse: Hauptstraße 1 + PLZ/Ort: 2122 Riedenthal (Riedenthal) + """)); + Assert.That(text, Contains.Substring("IBAN: AT12 3456 7890 1234 5678")); + Assert.That(text, Contains.Substring("Betriebs-Nr.: 2583691")); + Assert.That(text, Contains.Substring("Stammgemeinde: Wolkersdorf")); + }); + } + } +} diff --git a/Tests/DocumentTests/MemberListTest.cs b/Tests/DocumentTests/MemberListTest.cs new file mode 100644 index 0000000..d868860 --- /dev/null +++ b/Tests/DocumentTests/MemberListTest.cs @@ -0,0 +1,26 @@ +using Elwig.Documents; +using Elwig.Helpers; +using Elwig.Models.Dtos; + +namespace Tests.DocumentTests { + [TestFixture] + public class MemberListTest { + + [Test] + public async Task Test_01_TwoMembers() { + using var ctx = new AppDbContext(); + var data = await MemberListData.FromQuery(ctx.Members, []); + using var doc = new MemberList("Alle Mitglieder", data); + var text = await Utils.GeneratePdfText(doc, true); + Assert.Multiple(() => { + Assert.That(text, Contains.Substring("Mitgliederliste")); + Assert.That(text, Contains.Substring("Alle Mitglieder")); + Assert.That(text, Contains.Substring(""" + 101 MUSTERMANN Max Winzerstraße 1 2223 Hohenruppersdorf 1472583 0 Hohenruppersdorf + 102 WEINBAUER Wernhardt Winzerstraße 2 2223 Hohenruppersdorf 4725836 0 Hohenruppersdorf + W&B Weinbauer GesbR Winzerstraße 2 2223 Hohenruppersdorf + """)); + }); + } + } +} diff --git a/Tests/DocumentTests/Utils.cs b/Tests/DocumentTests/Utils.cs index 89e6dac..53938cb 100644 --- a/Tests/DocumentTests/Utils.cs +++ b/Tests/DocumentTests/Utils.cs @@ -6,11 +6,11 @@ namespace Tests.DocumentTests { private static readonly string FileName = Path.Combine(Path.GetTempPath(), "test_document.pdf"); - public static async Task GeneratePdfText(Document doc) { + public static async Task GeneratePdfText(Document doc, bool preserveLayout = false) { await doc.Generate(); try { doc.SaveTo(FileName); - var conv = new PdfToTextConverter { CustomArgs = "-raw " }; + var conv = new PdfToTextConverter { CustomArgs = preserveLayout ? "-layout " : "-raw " }; return conv.GenerateText(FileName); } finally { File.Delete(FileName);