Tests: Add more DocumentsTests

This commit is contained in:
2024-03-30 09:51:48 +01:00
parent 1047bc6e8f
commit 66898714bb
5 changed files with 97 additions and 6 deletions

View File

@ -5,12 +5,11 @@ namespace Tests.DocumentTests {
[TestFixture] [TestFixture]
public class DeliveryNoteTest { public class DeliveryNoteTest {
private readonly AppDbContext Context = new();
[Test] [Test]
public async Task Test_01_OneDeliveryPart() { public async Task Test_01_OneDeliveryPart() {
var d = await Context.Deliveries.FindAsync(2020, 1); using var ctx = new AppDbContext();
using var doc = new DeliveryNote(d!, Context); var d = await ctx.Deliveries.FindAsync(2020, 1);
using var doc = new DeliveryNote(d!, ctx);
var text = await Utils.GeneratePdfText(doc); var text = await Utils.GeneratePdfText(doc);
Assert.Multiple(() => { Assert.Multiple(() => {
Assert.That(text, Contains.Substring(""" Assert.That(text, Contains.Substring("""

View File

@ -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);
});
}
}
}

View File

@ -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"));
});
}
}
}

View File

@ -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
"""));
});
}
}
}

View File

@ -6,11 +6,11 @@ namespace Tests.DocumentTests {
private static readonly string FileName = Path.Combine(Path.GetTempPath(), "test_document.pdf"); private static readonly string FileName = Path.Combine(Path.GetTempPath(), "test_document.pdf");
public static async Task<string> GeneratePdfText(Document doc) { public static async Task<string> GeneratePdfText(Document doc, bool preserveLayout = false) {
await doc.Generate(); await doc.Generate();
try { try {
doc.SaveTo(FileName); doc.SaveTo(FileName);
var conv = new PdfToTextConverter { CustomArgs = "-raw " }; var conv = new PdfToTextConverter { CustomArgs = preserveLayout ? "-layout " : "-raw " };
return conv.GenerateText(FileName); return conv.GenerateText(FileName);
} finally { } finally {
File.Delete(FileName); File.Delete(FileName);