Tests: Add more DocumentsTests
This commit is contained in:
@ -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("""
|
||||||
|
25
Tests/DocumentTests/LetterHeadTest.cs
Normal file
25
Tests/DocumentTests/LetterHeadTest.cs
Normal 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);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
41
Tests/DocumentTests/MemberDataSheetTest.cs
Normal file
41
Tests/DocumentTests/MemberDataSheetTest.cs
Normal 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"));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
26
Tests/DocumentTests/MemberListTest.cs
Normal file
26
Tests/DocumentTests/MemberListTest.cs
Normal 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
|
||||||
|
"""));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -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);
|
||||||
|
Reference in New Issue
Block a user