Tests: Use Assert.EnterMultipleScope instead of Assert.Multiple
Test / Run tests (push) Successful in 2m6s

This commit is contained in:
2026-06-29 02:33:36 +02:00
parent fcd0555e4d
commit 69efca1cc3
18 changed files with 243 additions and 242 deletions
@@ -8,7 +8,7 @@ namespace Tests.UnitTests.DocumentTests {
public async Task Test_01_VirtualCreditNote() { public async Task Test_01_VirtualCreditNote() {
using var doc = await CreditNote.Initialize(2020, 1, 101, null); using var doc = await CreditNote.Initialize(2020, 1, 101, null);
var text = await Utils.GeneratePdfText(doc); var text = await Utils.GeneratePdfText(doc);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(text, Contains.Substring(""" Assert.That(text, Contains.Substring("""
MUSTERMANN Max MUSTERMANN Max
Winzerstraße 1 Winzerstraße 1
@@ -32,7 +32,7 @@ namespace Tests.UnitTests.DocumentTests {
""")); """));
Assert.That(text, Contains.Substring("Gesamtbetrag: € 1 000,00")); Assert.That(text, Contains.Substring("Gesamtbetrag: € 1 000,00"));
Assert.That(text, Contains.Substring("Auszahlungsbetrag: € 1 000,00")); Assert.That(text, Contains.Substring("Auszahlungsbetrag: € 1 000,00"));
}); }
} }
} }
} }
@@ -14,7 +14,7 @@ namespace Tests.UnitTests.DocumentTests {
using var doc = new DeliveryAncmtList(filter, data); using var doc = new DeliveryAncmtList(filter, data);
var text = await Utils.GeneratePdfText(doc, true); var text = await Utils.GeneratePdfText(doc, true);
var table = Utils.ExtractTable(text); var table = Utils.ExtractTable(text);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(text, Contains.Substring("Anmeldeliste")); Assert.That(text, Contains.Substring("Anmeldeliste"));
Assert.That(text, Contains.Substring("01.10.2020 Matzen GV Kabinettaktion")); Assert.That(text, Contains.Substring("01.10.2020 Matzen GV Kabinettaktion"));
Assert.That(table, Is.EqualTo(new string[][] { Assert.That(table, Is.EqualTo(new string[][] {
@@ -24,7 +24,7 @@ namespace Tests.UnitTests.DocumentTests {
["01.10.2020", "104 WINZER Waltraud", "Wolkersdorf", "Grüner Veltliner", "-", "2 000"], ["01.10.2020", "104 WINZER Waltraud", "Wolkersdorf", "Grüner Veltliner", "-", "2 000"],
["Gesamt:", "Anmeldungen: 4", "25 000"], ["Gesamt:", "Anmeldungen: 4", "25 000"],
})); }));
}); }
} }
} }
} }
@@ -13,7 +13,7 @@ namespace Tests.UnitTests.DocumentTests {
var data = await DeliveryConfirmationDeliveryData.ForMember(ctx.DeliveryParts, 2020, m!); var data = await DeliveryConfirmationDeliveryData.ForMember(ctx.DeliveryParts, 2020, m!);
using var doc = new DeliveryConfirmation(2020, m!, null, data); using var doc = new DeliveryConfirmation(2020, m!, null, data);
var text = await Utils.GeneratePdfText(doc); var text = await Utils.GeneratePdfText(doc);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(text, Contains.Substring(""" Assert.That(text, Contains.Substring("""
MUSTERMANN Max MUSTERMANN Max
Winzerstraße 1 Winzerstraße 1
@@ -39,7 +39,7 @@ namespace Tests.UnitTests.DocumentTests {
Welschriesling 5 382 - 5 382 Welschriesling 5 382 - 5 382
12 442 3 129 15 571 12 442 3 129 15 571
""")); """));
}); }
} }
} }
} }
@@ -13,7 +13,7 @@ namespace Tests.UnitTests.DocumentTests {
using var doc = new DeliveryDepreciationList("Saison 2020", data); using var doc = new DeliveryDepreciationList("Saison 2020", data);
var text = await Utils.GeneratePdfText(doc, true); var text = await Utils.GeneratePdfText(doc, true);
var table = Utils.ExtractTable(text); var table = Utils.ExtractTable(text);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(text, Contains.Substring("Abwertungsliste")); Assert.That(text, Contains.Substring("Abwertungsliste"));
Assert.That(text, Contains.Substring("Saison 2020")); Assert.That(text, Contains.Substring("Saison 2020"));
Assert.That(table, Is.EqualTo(new string[][] { Assert.That(table, Is.EqualTo(new string[][] {
@@ -26,7 +26,7 @@ namespace Tests.UnitTests.DocumentTests {
["20201002X002 1 02.10.2020 09:28 Grüner Veltliner", "Bio", "78", "16,0", "2 901"], ["20201002X002 1 02.10.2020 09:28 Grüner Veltliner", "Bio", "78", "16,0", "2 901"],
["Gesamt:", "(Teil-)Lieferungen: 3 (5)", "80", "16,3", "13 069"], ["Gesamt:", "(Teil-)Lieferungen: 3 (5)", "80", "16,3", "13 069"],
})); }));
}); }
} }
} }
} }
@@ -13,7 +13,7 @@ namespace Tests.UnitTests.DocumentTests {
using var doc = new DeliveryJournal("Saison 2020", data); using var doc = new DeliveryJournal("Saison 2020", data);
var text = await Utils.GeneratePdfText(doc, true); var text = await Utils.GeneratePdfText(doc, true);
var table = Utils.ExtractTable(text); var table = Utils.ExtractTable(text);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(text, Contains.Substring("Lieferjournal")); Assert.That(text, Contains.Substring("Lieferjournal"));
Assert.That(text, Contains.Substring("Saison 2020")); Assert.That(text, Contains.Substring("Saison 2020"));
Assert.That(table, Is.EqualTo(new string[][] { Assert.That(table, Is.EqualTo(new string[][] {
@@ -42,7 +42,7 @@ namespace Tests.UnitTests.DocumentTests {
["20201003X003", "2", "03.10.2020 15:15", "104 WINZER Waltraud", "Blauer Portugieser", "89", "18,1", "2 313"], ["20201003X003", "2", "03.10.2020 15:15", "104 WINZER Waltraud", "Blauer Portugieser", "89", "18,1", "2 313"],
["Gesamt:", "(Teil-)Lieferungen: 12 (23)", "82", "16,6", "58 886"], ["Gesamt:", "(Teil-)Lieferungen: 12 (23)", "82", "16,6", "58 886"],
})); }));
}); }
} }
} }
} }
@@ -135,7 +135,7 @@ namespace Tests.UnitTests.DocumentTests {
public async Task Test_05_DeliveryPartsWithModifier() { public async Task Test_05_DeliveryPartsWithModifier() {
using var doc = await DeliveryNote.Initialize(2020, 2); using var doc = await DeliveryNote.Initialize(2020, 2);
var text = await Utils.GeneratePdfText(doc); var text = await Utils.GeneratePdfText(doc);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(text, Contains.Substring(""" Assert.That(text, Contains.Substring("""
W&B Weinbauer GesbR W&B Weinbauer GesbR
WEINBAUER Wernhardt WEINBAUER Wernhardt
@@ -160,7 +160,7 @@ namespace Tests.UnitTests.DocumentTests {
Waage: ?, ID: ? (gerebelt gewogen) Waage: ?, ID: ? (gerebelt gewogen)
Gesamt: 87 17,6 4 860 Gesamt: 87 17,6 4 860
""")); """));
}); }
} }
} }
} }
@@ -11,14 +11,14 @@ namespace Tests.UnitTests.DocumentTests {
var m = await ctx.FetchMembers(104).SingleAsync(); var m = await ctx.FetchMembers(104).SingleAsync();
using var doc = new Letterhead(m!); using var doc = new Letterhead(m!);
var text = await Utils.GeneratePdfText(doc); var text = await Utils.GeneratePdfText(doc);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(text, Contains.Substring("WG Test | Genossenschaftsstraße 1 | 2120 Wolkersdorf")); Assert.That(text, Contains.Substring("WG Test | Genossenschaftsstraße 1 | 2120 Wolkersdorf"));
Assert.That(text, Contains.Substring(""" Assert.That(text, Contains.Substring("""
WINZER Waltraud WINZER Waltraud
Wiener Straße 15 Wiener Straße 15
2120 Wolkersdorf im Weinviertel 2120 Wolkersdorf im Weinviertel
""")); """));
}); }
} }
} }
} }
@@ -8,7 +8,7 @@ namespace Tests.UnitTests.DocumentTests {
public async Task Test_01_SimpleMember() { public async Task Test_01_SimpleMember() {
using var doc = await MemberDataSheet.Initialize(104); using var doc = await MemberDataSheet.Initialize(104);
var text = await Utils.GeneratePdfText(doc); var text = await Utils.GeneratePdfText(doc);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(text, Contains.Substring(""" Assert.That(text, Contains.Substring("""
WINZER Waltraud WINZER Waltraud
Wiener Straße 15 Wiener Straße 15
@@ -32,7 +32,7 @@ namespace Tests.UnitTests.DocumentTests {
Assert.That(text, Contains.Substring("IBAN: AT97 1234 5678 9012 3460")); Assert.That(text, Contains.Substring("IBAN: AT97 1234 5678 9012 3460"));
Assert.That(text, Contains.Substring("Betriebs-Nr.: 0123498")); Assert.That(text, Contains.Substring("Betriebs-Nr.: 0123498"));
Assert.That(text, Contains.Substring("Stammgemeinde: Wolkersdorf")); Assert.That(text, Contains.Substring("Stammgemeinde: Wolkersdorf"));
}); }
} }
} }
} }
@@ -13,7 +13,7 @@ namespace Tests.UnitTests.DocumentTests {
using var doc = new MemberList("Alle Mitglieder", data); using var doc = new MemberList("Alle Mitglieder", data);
var text = await Utils.GeneratePdfText(doc, true); var text = await Utils.GeneratePdfText(doc, true);
var table = Utils.ExtractTable(text); var table = Utils.ExtractTable(text);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(text, Contains.Substring("Mitgliederliste")); Assert.That(text, Contains.Substring("Mitgliederliste"));
Assert.That(text, Contains.Substring("Alle Mitglieder")); Assert.That(text, Contains.Substring("Alle Mitglieder"));
Assert.That(table.Take(3), Is.EqualTo(new string[][] { Assert.That(table.Take(3), Is.EqualTo(new string[][] {
@@ -21,7 +21,7 @@ namespace Tests.UnitTests.DocumentTests {
["102 WEINBAUER Wernhardt", "Winzerstraße 2", "2223", "Hohenruppersdorf", "0123471", "0 Hohenruppersdorf"], ["102 WEINBAUER Wernhardt", "Winzerstraße 2", "2223", "Hohenruppersdorf", "0123471", "0 Hohenruppersdorf"],
[ "W&B Weinbauer GesbR", "Winzerstraße 2", "2223", "Hohenruppersdorf"], [ "W&B Weinbauer GesbR", "Winzerstraße 2", "2223", "Hohenruppersdorf"],
})); }));
}); }
} }
} }
} }
@@ -9,7 +9,7 @@ namespace Tests.UnitTests.DocumentTests {
using var doc = await PaymentVariantSummary.Initialize(2020, 1); using var doc = await PaymentVariantSummary.Initialize(2020, 1);
var text = await Utils.GeneratePdfText(doc, true); var text = await Utils.GeneratePdfText(doc, true);
var table = Utils.ExtractTable(text); var table = Utils.ExtractTable(text);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(text, Contains.Substring("Auszahlungsvariante")); Assert.That(text, Contains.Substring("Auszahlungsvariante"));
Assert.That(text, Contains.Substring(doc.Variant.Name)); Assert.That(text, Contains.Substring(doc.Variant.Name));
Assert.That(table.Skip(19).ToArray(), Is.EqualTo(new string[][] { Assert.That(table.Skip(19).ToArray(), Is.EqualTo(new string[][] {
@@ -18,7 +18,7 @@ namespace Tests.UnitTests.DocumentTests {
["Grüner Veltliner", "3 219", "0", "0", "1 609,50"], ["Grüner Veltliner", "3 219", "0", "0", "1 609,50"],
["Qualitätswein", "73", "3 219", "0,5000", "-", "-", "-", "-", "1 609,50"] ["Qualitätswein", "73", "3 219", "0,5000", "-", "-", "-", "-", "1 609,50"]
})); }));
}); }
} }
} }
} }
+7 -5
View File
@@ -4,10 +4,13 @@ using NReco.PdfRenderer;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
namespace Tests.UnitTests.DocumentTests { namespace Tests.UnitTests.DocumentTests {
public static class Utils { public static partial class Utils {
private static readonly string FileName = Path.Combine(Path.GetTempPath(), "test_document.pdf"); private static readonly string FileName = Path.Combine(Path.GetTempPath(), "test_document.pdf");
[GeneratedRegex(@"\s{2,}")]
private static partial Regex WideSpaces();
public static async Task<string> GeneratePdfText(Document doc, bool preserveLayout = false) { public static async Task<string> GeneratePdfText(Document doc, bool preserveLayout = false) {
using (var ctx = new AppDbContext()) { using (var ctx = new AppDbContext()) {
await doc.Generate(ctx); await doc.Generate(ctx);
@@ -22,11 +25,10 @@ namespace Tests.UnitTests.DocumentTests {
} }
public static string[][] ExtractTable(string text) { public static string[][] ExtractTable(string text) {
return text.Split('\n') return [.. text.Split('\n')
.Select(row => Regex.Split(row, @"\s{2,}").Select(c => c.Trim()).Where(c => c.Length > 0).ToArray()) .Select(row => WideSpaces().Split(row).Select(c => c.Trim()).Where(c => c.Length > 0).ToArray())
.Where(row => row.Length >= 3) .Where(row => row.Length >= 3)
.Skip(1) .Skip(1)];
.ToArray();
} }
} }
} }
@@ -12,7 +12,7 @@ namespace Tests.UnitTests.DocumentTests {
var data = await WineQualityStatisticsData.FromQuery(ctx.Deliveries.Where(d => d.Year == 2020).SelectMany(d => d.Parts)); var data = await WineQualityStatisticsData.FromQuery(ctx.Deliveries.Where(d => d.Year == 2020).SelectMany(d => d.Parts));
using var doc = new WineQualityStatistics("Saison 2020", data); using var doc = new WineQualityStatistics("Saison 2020", data);
var text = await Utils.GeneratePdfText(doc); var text = await Utils.GeneratePdfText(doc);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(text, Contains.Substring("Qualitätsstatistik")); Assert.That(text, Contains.Substring("Qualitätsstatistik"));
Assert.That(text, Contains.Substring("Saison 2020")); Assert.That(text, Contains.Substring("Saison 2020"));
Assert.That(text, Contains.Substring(""" Assert.That(text, Contains.Substring("""
@@ -44,7 +44,7 @@ namespace Tests.UnitTests.DocumentTests {
"- 0 0 " + "- 0 0 " +
"77 5 " + "11 568 " + "77 5 " + "11 568 " +
"85 6 " + "17 561")); "85 6 " + "17 561"));
}); }
} }
} }
} }
+25 -26
View File
@@ -51,10 +51,10 @@ namespace Tests.UnitTests.HelperTests {
"curves": [] "curves": []
} }
""", Vaributes); """, Vaributes);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
TestCalcOe(data, "GV", 73, 0.5m); TestCalcOe(data, "GV", 73, 0.5m);
TestCalcOe(data, "WRS", 74, 0.5m); TestCalcOe(data, "WRS", 74, 0.5m);
}); }
} }
[Test] [Test]
@@ -76,7 +76,7 @@ namespace Tests.UnitTests.HelperTests {
}] }]
} }
""", Vaributes); """, Vaributes);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
TestCalcOe(data, "GV", 70, 0.25m); TestCalcOe(data, "GV", 70, 0.25m);
TestCalcOe(data, "GV", 72, 0.25m); TestCalcOe(data, "GV", 72, 0.25m);
TestCalcOe(data, "GV", 73, 0.50m); TestCalcOe(data, "GV", 73, 0.50m);
@@ -89,7 +89,7 @@ namespace Tests.UnitTests.HelperTests {
TestCalcOe(data, "GV", 80, 0.95m, geb: true); TestCalcOe(data, "GV", 80, 0.95m, geb: true);
TestCalcOe(data, "GV", 83, 1.10m, geb: true); TestCalcOe(data, "GV", 83, 1.10m, geb: true);
TestCalcOe(data, "GV", 90, 1.10m, geb: true); TestCalcOe(data, "GV", 90, 1.10m, geb: true);
}); }
} }
[Test] [Test]
@@ -113,7 +113,7 @@ namespace Tests.UnitTests.HelperTests {
}] }]
} }
""", Vaributes); """, Vaributes);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
TestCalcKmw(data, "GV", 13.00, 0.10m); TestCalcKmw(data, "GV", 13.00, 0.10m);
TestCalcKmw(data, "GV", 13.50, 0.10m); TestCalcKmw(data, "GV", 13.50, 0.10m);
TestCalcKmw(data, "GV", 13.99, 0.10m); TestCalcKmw(data, "GV", 13.99, 0.10m);
@@ -128,7 +128,7 @@ namespace Tests.UnitTests.HelperTests {
TestCalcKmw(data, "GV", 17.50, 1.25m); TestCalcKmw(data, "GV", 17.50, 1.25m);
TestCalcKmw(data, "GV", 18.00, 1.25m); TestCalcKmw(data, "GV", 18.00, 1.25m);
TestCalcKmw(data, "GV", 18.50, 1.25m); TestCalcKmw(data, "GV", 18.50, 1.25m);
}); }
} }
[Test] [Test]
@@ -147,7 +147,7 @@ namespace Tests.UnitTests.HelperTests {
"curves": [] "curves": []
} }
""", Vaributes); """, Vaributes);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
TestCalcOe(data, "WR", 73, 0.10m); TestCalcOe(data, "WR", 73, 0.10m);
TestCalcOe(data, "WRS", 73, 0.15m); TestCalcOe(data, "WRS", 73, 0.15m);
TestCalcOe(data, "GV", 73, 0.20m); TestCalcOe(data, "GV", 73, 0.20m);
@@ -158,7 +158,7 @@ namespace Tests.UnitTests.HelperTests {
TestCalcOe(data, "ZW", 73, 0.25m); TestCalcOe(data, "ZW", 73, 0.25m);
TestCalcOe(data, "ZWS", 73, 0.15m); TestCalcOe(data, "ZWS", 73, 0.15m);
TestCalcOe(data, "ZWZ", 73, 0.25m); TestCalcOe(data, "ZWZ", 73, 0.25m);
}); }
} }
[Test] [Test]
@@ -175,7 +175,7 @@ namespace Tests.UnitTests.HelperTests {
"curves": [] "curves": []
} }
""", Vaributes); """, Vaributes);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
TestCalcOe(data, "WR", 73, 0.10m); TestCalcOe(data, "WR", 73, 0.10m);
TestCalcOe(data, "WR-B", 73, 0.20m); TestCalcOe(data, "WR-B", 73, 0.20m);
TestCalcOe(data, "WRS", 73, 0.30m); TestCalcOe(data, "WRS", 73, 0.30m);
@@ -191,7 +191,7 @@ namespace Tests.UnitTests.HelperTests {
TestCalcOe(data, "ZW-B", 73, 0.20m); TestCalcOe(data, "ZW-B", 73, 0.20m);
TestCalcOe(data, "ZWS", 73, 0.30m); TestCalcOe(data, "ZWS", 73, 0.30m);
TestCalcOe(data, "ZWZ", 73, 0.10m); TestCalcOe(data, "ZWZ", 73, 0.10m);
}); }
} }
[Test] [Test]
@@ -211,7 +211,7 @@ namespace Tests.UnitTests.HelperTests {
"curves": [] "curves": []
} }
""", Vaributes); """, Vaributes);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
TestCalcOe(data, "GV", 75, 0.30m, qualid: "WEI"); TestCalcOe(data, "GV", 75, 0.30m, qualid: "WEI");
TestCalcOe(data, "ZW", 76, 0.25m, qualid: "WEI"); TestCalcOe(data, "ZW", 76, 0.25m, qualid: "WEI");
TestCalcOe(data, "GVS", 75, 0.20m, qualid: "WEI"); TestCalcOe(data, "GVS", 75, 0.20m, qualid: "WEI");
@@ -222,7 +222,7 @@ namespace Tests.UnitTests.HelperTests {
TestCalcOe(data, "GV", 73, 0.5m); TestCalcOe(data, "GV", 73, 0.5m);
TestCalcOe(data, "ZWS", 74, 0.5m); TestCalcOe(data, "ZWS", 74, 0.5m);
TestCalcOe(data, "GVK", 80, 0.5m); TestCalcOe(data, "GVK", 80, 0.5m);
}); }
} }
[Test] [Test]
@@ -253,7 +253,7 @@ namespace Tests.UnitTests.HelperTests {
}] }]
} }
""", Vaributes); """, Vaributes);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
TestCalcKmw(data, "GV", 15.0, 2.0m); TestCalcKmw(data, "GV", 15.0, 2.0m);
TestCalcKmw(data, "GV", 15.5, 2.272727m); TestCalcKmw(data, "GV", 15.5, 2.272727m);
TestCalcKmw(data, "GV", 16.0, 2.454545m); TestCalcKmw(data, "GV", 16.0, 2.454545m);
@@ -264,7 +264,7 @@ namespace Tests.UnitTests.HelperTests {
TestCalcKmw(data, "ZW", 16.0, 2.50m); TestCalcKmw(data, "ZW", 16.0, 2.50m);
TestCalcKmw(data, "ZW", 16.5, 2.75m); TestCalcKmw(data, "ZW", 16.5, 2.75m);
TestCalcKmw(data, "ZW", 17.0, 3.0m); TestCalcKmw(data, "ZW", 17.0, 3.0m);
}); }
} }
[Test] [Test]
@@ -313,7 +313,7 @@ namespace Tests.UnitTests.HelperTests {
}] }]
} }
""", Vaributes); """, Vaributes);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
TestCalcKmw(data, "GV", 15.0, 0.75m); TestCalcKmw(data, "GV", 15.0, 0.75m);
TestCalcKmw(data, "GVS", 15.0, 0.50m); TestCalcKmw(data, "GVS", 15.0, 0.50m);
TestCalcKmw(data, "GVS", 16.0, 0.55m); TestCalcKmw(data, "GVS", 16.0, 0.55m);
@@ -333,7 +333,7 @@ namespace Tests.UnitTests.HelperTests {
TestCalcKmw(data, "WRS", 15.0, 0.80m, geb: true); TestCalcKmw(data, "WRS", 15.0, 0.80m, geb: true);
TestCalcKmw(data, "WRS", 16.0, 0.875m, geb: true); TestCalcKmw(data, "WRS", 16.0, 0.875m, geb: true);
TestCalcKmw(data, "WRS", 17.0, 0.95m, geb: true); TestCalcKmw(data, "WRS", 17.0, 0.95m, geb: true);
}); }
} }
[Test] [Test]
@@ -372,12 +372,12 @@ namespace Tests.UnitTests.HelperTests {
}] }]
} }
""", Vaributes); """, Vaributes);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
TestCalcOe(data, "GVK", 73, 0.032m); TestCalcOe(data, "GVK", 73, 0.032m);
TestCalcOe(data, "ZWS", 74, 0.033m); TestCalcOe(data, "ZWS", 74, 0.033m);
TestCalcOe(data, "GV", 75, 0.005m, qualid: "WEI"); TestCalcOe(data, "GV", 75, 0.005m, qualid: "WEI");
TestCalcOe(data, "GVK", 115, 0.065m); TestCalcOe(data, "GVK", 115, 0.065m);
}); }
} }
[Test] [Test]
@@ -395,17 +395,17 @@ namespace Tests.UnitTests.HelperTests {
"curves": [] "curves": []
} }
""", Vaributes); """, Vaributes);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
TestCalcOe(data, "GV", 73, 0.10m); TestCalcOe(data, "GV", 73, 0.10m);
TestCalcOe(data, "GVS", 73, 0.20m); TestCalcOe(data, "GVS", 73, 0.20m);
TestCalcOe(data, "GV-B", 73, 0.30m); TestCalcOe(data, "GV-B", 73, 0.30m);
TestCalcOe(data, "GVS-B", 73, 0.40m); TestCalcOe(data, "GVS-B", 73, 0.40m);
TestCalcOe(data, "ZWS-B", 73, 0.20m); TestCalcOe(data, "ZWS-B", 73, 0.20m);
}); }
} }
private static List<Varibute> GetSelection(IEnumerable<string> attVars) { private static List<Varibute> GetSelection(IEnumerable<string> attVars) {
return attVars.Select(s => new Varibute(new RawVaribute(s))).ToList(); return [.. attVars.Select(s => new Varibute(new RawVaribute(s)))];
} }
[Test] [Test]
@@ -1002,11 +1002,10 @@ namespace Tests.UnitTests.HelperTests {
if (!TestedCurves.Add(str)) if (!TestedCurves.Add(str))
return; return;
var vaributes = curves.SelectMany(v => v).ToList(); var vaributes = curves.SelectMany(v => v).ToList();
List<GraphEntry> entries = curves List<GraphEntry> entries = [.. curves
.Select((l, n) => new GraphEntry(n, 4, new BillingData.Curve(BillingData.CurveMode.Oe, new() { .Select((l, n) => new GraphEntry(n, 4, new BillingData.Curve(BillingData.CurveMode.Oe, new() {
[73] = n + 1, [73] = n + 1,
}, null), GetSelection(l.Select(v => v.ToString())))) }, null), GetSelection(l.Select(v => v.ToString()))))];
.ToList();
var data = BillingData.FromGraphEntries(entries); var data = BillingData.FromGraphEntries(entries);
var test = PaymentBillingData.FromJson(data.ToJsonString(), vaributes); var test = PaymentBillingData.FromJson(data.ToJsonString(), vaributes);
for (int i = 0; i < curves.Count; i++) { for (int i = 0; i < curves.Count; i++) {
@@ -1027,12 +1026,12 @@ namespace Tests.UnitTests.HelperTests {
[new("GV/-"), new("WR/-"), new("GV/-B"), new("WR/-B"), new("GV/-KIP"), new("WR/-KIP")], [new("GV/-"), new("WR/-"), new("GV/-B"), new("WR/-B"), new("GV/-KIP"), new("WR/-KIP")],
[new("GV/-"), new("GV/K-"), new("ZW/-"), new("ZW/K-"), new("GV/-B"), new("GV/K-B"), new("ZW/-B"), new("ZW/K-B")], [new("GV/-"), new("GV/K-"), new("ZW/-"), new("ZW/K-"), new("GV/-B"), new("GV/K-B"), new("ZW/-B"), new("ZW/K-B")],
]; ];
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
foreach (var config in configurations) { foreach (var config in configurations) {
foreach (var c in GetCurves(config)) foreach (var c in GetCurves(config))
TestCollapse(c); TestCollapse(c);
} }
}); }
} }
} }
} }
+22 -22
View File
@@ -128,24 +128,24 @@ namespace Tests.UnitTests.HelperTests {
var areaCom = await GetMemberAreaCommitmentBuckets(year, mgnr); var areaCom = await GetMemberAreaCommitmentBuckets(year, mgnr);
Assert.That(areaCom, Is.Empty); Assert.That(areaCom, Is.Empty);
var delivery = await GetMemberDeliveryBuckets(year, mgnr); var delivery = await GetMemberDeliveryBuckets(year, mgnr);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(delivery, Has.Count.EqualTo(3)); Assert.That(delivery, Has.Count.EqualTo(3));
Assert.That(delivery["GV"], Is.EqualTo(16_000)); Assert.That(delivery["GV"], Is.EqualTo(16_000));
Assert.That(delivery["GV_"], Is.EqualTo( 1_000)); Assert.That(delivery["GV_"], Is.EqualTo( 1_000));
Assert.That(delivery["GVK"], Is.EqualTo( 4_000)); Assert.That(delivery["GVK"], Is.EqualTo( 4_000));
}); }
var b = await BillingVariant.Create(year, 1); var b = await BillingVariant.Create(year, 1);
await b.CalculateBuckets(false, false, false); await b.CalculateBuckets(false, false, false);
var payment = await GetMemberPaymentBuckets(year, mgnr); var payment = await GetMemberPaymentBuckets(year, mgnr);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(payment, Has.Count.EqualTo(1)); Assert.That(payment, Has.Count.EqualTo(1));
Assert.That(payment["GV_"], Is.EqualTo(17_000)); Assert.That(payment["GV_"], Is.EqualTo(17_000));
}); }
await b.Calculate(); await b.Calculate();
var prices = await GetMemberDeliveryPrices(year, mgnr); var prices = await GetMemberDeliveryPrices(year, mgnr);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(prices, Has.Count.EqualTo(6)); Assert.That(prices, Has.Count.EqualTo(6));
// Kabinett // Kabinett
Assert.That(prices[("20201001X001/1", "GV_")], Is.EqualTo((4_000, GV_ungeb))); Assert.That(prices[("20201001X001/1", "GV_")], Is.EqualTo((4_000, GV_ungeb)));
@@ -159,7 +159,7 @@ namespace Tests.UnitTests.HelperTests {
Assert.That(prices[("20201001X003/1", "GV_")], Is.EqualTo(( 500, WEI))); Assert.That(prices[("20201001X003/1", "GV_")], Is.EqualTo(( 500, WEI)));
// ohne Attribut // ohne Attribut
Assert.That(prices[("20201001X003/2", "GV_")], Is.EqualTo(( 500, GV_ungeb))); Assert.That(prices[("20201001X003/2", "GV_")], Is.EqualTo(( 500, GV_ungeb)));
}); }
} }
[Test] [Test]
@@ -167,30 +167,30 @@ namespace Tests.UnitTests.HelperTests {
int mgnr = MgNr1, year = Year2; int mgnr = MgNr1, year = Year2;
var areaCom = await GetMemberAreaCommitmentBuckets(year, mgnr); var areaCom = await GetMemberAreaCommitmentBuckets(year, mgnr);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(areaCom, Has.Count.EqualTo(1)); Assert.That(areaCom, Has.Count.EqualTo(1));
Assert.That(areaCom["GV"], Is.EqualTo(new AreaComBucket(10_000, 5_000, 10_000))); Assert.That(areaCom["GV"], Is.EqualTo(new AreaComBucket(10_000, 5_000, 10_000)));
}); }
var delivery = await GetMemberDeliveryBuckets(year, mgnr); var delivery = await GetMemberDeliveryBuckets(year, mgnr);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(delivery, Has.Count.EqualTo(3)); Assert.That(delivery, Has.Count.EqualTo(3));
Assert.That(delivery["GV"], Is.EqualTo(16_000)); Assert.That(delivery["GV"], Is.EqualTo(16_000));
Assert.That(delivery["GV_"], Is.EqualTo( 1_000)); Assert.That(delivery["GV_"], Is.EqualTo( 1_000));
Assert.That(delivery["GVK"], Is.EqualTo( 4_000)); Assert.That(delivery["GVK"], Is.EqualTo( 4_000));
}); }
var b = await BillingVariant.Create(year, 1); var b = await BillingVariant.Create(year, 1);
await b.CalculateBuckets(false, false, false, Connection); await b.CalculateBuckets(false, false, false, Connection);
var payment = await GetMemberPaymentBuckets(year, mgnr); var payment = await GetMemberPaymentBuckets(year, mgnr);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(payment, Has.Count.EqualTo(2)); Assert.That(payment, Has.Count.EqualTo(2));
Assert.That(payment["GV_"], Is.EqualTo( 7_000)); Assert.That(payment["GV_"], Is.EqualTo( 7_000));
Assert.That(payment["GV"], Is.EqualTo(10_000)); Assert.That(payment["GV"], Is.EqualTo(10_000));
}); }
await b.Calculate(true, false, false, false); await b.Calculate(true, false, false, false);
var prices = await GetMemberDeliveryPrices(year, mgnr); var prices = await GetMemberDeliveryPrices(year, mgnr);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(prices, Has.Count.EqualTo(7)); Assert.That(prices, Has.Count.EqualTo(7));
// Kabinett // Kabinett
Assert.That(prices[("20211001X001/1", "GV")] , Is.EqualTo((4_000, GV_geb))); Assert.That(prices[("20211001X001/1", "GV")] , Is.EqualTo((4_000, GV_geb)));
@@ -205,7 +205,7 @@ namespace Tests.UnitTests.HelperTests {
Assert.That(prices[("20211001X003/1", "GV_")], Is.EqualTo(( 500, WEI))); Assert.That(prices[("20211001X003/1", "GV_")], Is.EqualTo(( 500, WEI)));
// ohne Attribut // ohne Attribut
Assert.That(prices[("20211001X003/2", "GV_")], Is.EqualTo(( 500, GV_ungeb))); Assert.That(prices[("20211001X003/2", "GV_")], Is.EqualTo(( 500, GV_ungeb)));
}); }
} }
[Test] [Test]
@@ -213,30 +213,30 @@ namespace Tests.UnitTests.HelperTests {
int mgnr = MgNr1, year = Year2; int mgnr = MgNr1, year = Year2;
var areaCom = await GetMemberAreaCommitmentBuckets(year, mgnr); var areaCom = await GetMemberAreaCommitmentBuckets(year, mgnr);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(areaCom, Has.Count.EqualTo(1)); Assert.That(areaCom, Has.Count.EqualTo(1));
Assert.That(areaCom["GV"], Is.EqualTo(new AreaComBucket(10_000, 5_000, 10_000))); Assert.That(areaCom["GV"], Is.EqualTo(new AreaComBucket(10_000, 5_000, 10_000)));
}); }
var delivery = await GetMemberDeliveryBuckets(year, mgnr); var delivery = await GetMemberDeliveryBuckets(year, mgnr);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(delivery, Has.Count.EqualTo(3)); Assert.That(delivery, Has.Count.EqualTo(3));
Assert.That(delivery["GV"], Is.EqualTo(16_000)); Assert.That(delivery["GV"], Is.EqualTo(16_000));
Assert.That(delivery["GV_"], Is.EqualTo( 1_000)); Assert.That(delivery["GV_"], Is.EqualTo( 1_000));
Assert.That(delivery["GVK"], Is.EqualTo( 4_000)); Assert.That(delivery["GVK"], Is.EqualTo( 4_000));
}); }
var b = await BillingVariant.Create(year, 1); var b = await BillingVariant.Create(year, 1);
await b.CalculateBuckets(true, false, false, Connection); await b.CalculateBuckets(true, false, false, Connection);
var payment = await GetMemberPaymentBuckets(year, mgnr); var payment = await GetMemberPaymentBuckets(year, mgnr);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(payment, Has.Count.EqualTo(2)); Assert.That(payment, Has.Count.EqualTo(2));
Assert.That(payment["GV_"], Is.EqualTo(9_000)); Assert.That(payment["GV_"], Is.EqualTo(9_000));
Assert.That(payment["GV"], Is.EqualTo(8_000)); Assert.That(payment["GV"], Is.EqualTo(8_000));
}); }
await b.Calculate(true, true, false, false); await b.Calculate(true, true, false, false);
var prices = await GetMemberDeliveryPrices(year, mgnr); var prices = await GetMemberDeliveryPrices(year, mgnr);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(prices, Has.Count.EqualTo(6)); Assert.That(prices, Has.Count.EqualTo(6));
// Kabinett // Kabinett
Assert.That(prices[("20211001X001/1", "GV")], Is.EqualTo((4_000, GV_geb))); Assert.That(prices[("20211001X001/1", "GV")], Is.EqualTo((4_000, GV_geb)));
@@ -250,7 +250,7 @@ namespace Tests.UnitTests.HelperTests {
Assert.That(prices[("20211001X003/1", "GV_")], Is.EqualTo(( 500, WEI))); Assert.That(prices[("20211001X003/1", "GV_")], Is.EqualTo(( 500, WEI)));
// ohne Attribut // ohne Attribut
Assert.That(prices[("20211001X003/2", "GV_")], Is.EqualTo(( 500, GV_ungeb))); Assert.That(prices[("20211001X003/2", "GV_")], Is.EqualTo(( 500, GV_ungeb)));
}); }
} }
[Test] [Test]
+16 -16
View File
@@ -17,45 +17,45 @@ namespace Tests.UnitTests.HelperTests {
[Test] [Test]
public void Test_KmwToOe() { public void Test_KmwToOe() {
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
for (int i = 0; i < Gradation.GetLength(0); i++) { for (int i = 0; i < Gradation.GetLength(0); i++) {
Assert.That(Utils.KmwToOe(Gradation[i, 0]), Is.EqualTo(Gradation[i, 1])); Assert.That(Utils.KmwToOe(Gradation[i, 0]), Is.EqualTo(Gradation[i, 1]));
} }
}); }
} }
[Test] [Test]
public void Test_OeToKmw() { public void Test_OeToKmw() {
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
for (int i = 0; i < Gradation.GetLength(0); i++) { for (int i = 0; i < Gradation.GetLength(0); i++) {
Assert.That(Utils.OeToKmw(Gradation[i, 1]), Is.EqualTo(Gradation[i, 0])); Assert.That(Utils.OeToKmw(Gradation[i, 1]), Is.EqualTo(Gradation[i, 0]));
} }
}); }
} }
[Test] [Test]
public void Test_DecFromDb() { public void Test_DecFromDb() {
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(Utils.DecFromDb(10670, 3), Is.EqualTo(10.67M)); Assert.That(Utils.DecFromDb(10670, 3), Is.EqualTo(10.67M));
Assert.That(Utils.DecFromDb(-1009999, 4), Is.EqualTo(-100.9999M)); Assert.That(Utils.DecFromDb(-1009999, 4), Is.EqualTo(-100.9999M));
Assert.That(Utils.DecFromDb(1, 2), Is.EqualTo(0.01M)); Assert.That(Utils.DecFromDb(1, 2), Is.EqualTo(0.01M));
}); }
} }
[Test] [Test]
public void Test_DecToDb() { public void Test_DecToDb() {
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(Utils.DecToDb(219.48M, 2), Is.EqualTo(21948)); Assert.That(Utils.DecToDb(219.48M, 2), Is.EqualTo(21948));
Assert.That(Utils.DecToDb(-1.2345M, 4), Is.EqualTo(-12345)); Assert.That(Utils.DecToDb(-1.2345M, 4), Is.EqualTo(-12345));
Assert.That(Utils.DecToDb(99190, 0), Is.EqualTo(99190)); Assert.That(Utils.DecToDb(99190, 0), Is.EqualTo(99190));
Assert.That(Utils.DecToDb(817.9099M, 3), Is.EqualTo(817910)); Assert.That(Utils.DecToDb(817.9099M, 3), Is.EqualTo(817910));
Assert.That(Utils.DecToDb(-5618.944M, 2), Is.EqualTo(-561894)); Assert.That(Utils.DecToDb(-5618.944M, 2), Is.EqualTo(-561894));
}); }
} }
[Test] [Test]
public void Test_Modulo() { public void Test_Modulo() {
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(Utils.Modulo("1", 2), Is.EqualTo(1)); Assert.That(Utils.Modulo("1", 2), Is.EqualTo(1));
Assert.That(Utils.Modulo("12", 11), Is.EqualTo(1)); Assert.That(Utils.Modulo("12", 11), Is.EqualTo(1));
Assert.That(Utils.Modulo("65", 16), Is.EqualTo(1)); Assert.That(Utils.Modulo("65", 16), Is.EqualTo(1));
@@ -66,12 +66,12 @@ namespace Tests.UnitTests.HelperTests {
Assert.Throws<ArgumentException>(() => Utils.Modulo("123", 1)); Assert.Throws<ArgumentException>(() => Utils.Modulo("123", 1));
Assert.Throws<ArgumentException>(() => Utils.Modulo("456", 0)); Assert.Throws<ArgumentException>(() => Utils.Modulo("456", 0));
Assert.Throws<ArgumentException>(() => Utils.Modulo("789", -1)); Assert.Throws<ArgumentException>(() => Utils.Modulo("789", -1));
}); }
} }
[Test] [Test]
public void Test_SplitAddress() { public void Test_SplitAddress() {
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(Utils.SplitAddress("Winzerstraße 1"), Is.EqualTo(("Winzerstraße", "1"))); Assert.That(Utils.SplitAddress("Winzerstraße 1"), Is.EqualTo(("Winzerstraße", "1")));
Assert.That(Utils.SplitAddress("Auf dem Feld 12"), Is.EqualTo(("Auf dem Feld", "12"))); Assert.That(Utils.SplitAddress("Auf dem Feld 12"), Is.EqualTo(("Auf dem Feld", "12")));
Assert.That(Utils.SplitAddress("Winzerstraße 5a"), Is.EqualTo(("Winzerstraße", "5a"))); Assert.That(Utils.SplitAddress("Winzerstraße 5a"), Is.EqualTo(("Winzerstraße", "5a")));
@@ -80,12 +80,12 @@ namespace Tests.UnitTests.HelperTests {
Assert.That(Utils.SplitAddress("Winzerstraße 7/2/4/77"), Is.EqualTo(("Winzerstraße", "7/2/4/77"))); Assert.That(Utils.SplitAddress("Winzerstraße 7/2/4/77"), Is.EqualTo(("Winzerstraße", "7/2/4/77")));
Assert.That(Utils.SplitAddress("Winzerstraße 95b"), Is.EqualTo(("Winzerstraße", "95b"))); Assert.That(Utils.SplitAddress("Winzerstraße 95b"), Is.EqualTo(("Winzerstraße", "95b")));
Assert.That(Utils.SplitAddress("Winzerstraße 1, TOP 3"), Is.EqualTo(("Winzerstraße", "1, TOP 3"))); Assert.That(Utils.SplitAddress("Winzerstraße 1, TOP 3"), Is.EqualTo(("Winzerstraße", "1, TOP 3")));
}); }
} }
[Test] [Test]
public void Test_SplitName() { public void Test_SplitName() {
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(Utils.SplitName("Max Bauer", "Bauer"), Is.EqualTo(("Bauer", "Max"))); Assert.That(Utils.SplitName("Max Bauer", "Bauer"), Is.EqualTo(("Bauer", "Max")));
Assert.That(Utils.SplitName("Bauer Max", "Bauer"), Is.EqualTo(("Bauer", "Max"))); Assert.That(Utils.SplitName("Bauer Max", "Bauer"), Is.EqualTo(("Bauer", "Max")));
Assert.That(Utils.SplitName("Max und Moritz Bauer", "Bauer"), Is.EqualTo(("Bauer", "Max und Moritz"))); Assert.That(Utils.SplitName("Max und Moritz Bauer", "Bauer"), Is.EqualTo(("Bauer", "Max und Moritz")));
@@ -98,12 +98,12 @@ namespace Tests.UnitTests.HelperTests {
Assert.That(Utils.SplitName("Max und Moritz Bauer und Mustermann", "Bauer"), Is.EqualTo(("Bauer und Mustermann", "Max und Moritz"))); Assert.That(Utils.SplitName("Max und Moritz Bauer und Mustermann", "Bauer"), Is.EqualTo(("Bauer und Mustermann", "Max und Moritz")));
Assert.That(Utils.SplitName("Bauer und Mustermann Max und Moritz", "Bauer"), Is.EqualTo(("Bauer und Mustermann", "Max und Moritz"))); Assert.That(Utils.SplitName("Bauer und Mustermann Max und Moritz", "Bauer"), Is.EqualTo(("Bauer und Mustermann", "Max und Moritz")));
Assert.That(Utils.SplitName("ABC GesbR", "Bauer"), Is.EqualTo(((string, string?))("ABC GesbR", null))); Assert.That(Utils.SplitName("ABC GesbR", "Bauer"), Is.EqualTo(((string, string?))("ABC GesbR", null)));
}); }
} }
[Test] [Test]
public void Test_CalcCrc16Modbus() { public void Test_CalcCrc16Modbus() {
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(Utils.CalcCrc16Modbus(""), Is.EqualTo(0xFFFF)); Assert.That(Utils.CalcCrc16Modbus(""), Is.EqualTo(0xFFFF));
Assert.That(Utils.CalcCrc16Modbus("abcd"), Is.EqualTo(0x1D97)); Assert.That(Utils.CalcCrc16Modbus("abcd"), Is.EqualTo(0x1D97));
Assert.That(Utils.CalcCrc16Modbus("ABCD"), Is.EqualTo(0x0F85)); Assert.That(Utils.CalcCrc16Modbus("ABCD"), Is.EqualTo(0x0F85));
@@ -145,7 +145,7 @@ namespace Tests.UnitTests.HelperTests {
Assert.That(Utils.CalcCrc16Modbus("000019.02.2410:50 91 40 0 40kg 001"), Is.EqualTo(60047)); Assert.That(Utils.CalcCrc16Modbus("000019.02.2410:50 91 40 0 40kg 001"), Is.EqualTo(60047));
Assert.That(Utils.CalcCrc16Modbus("000019.02.2410:50 101 40 0 40kg 001"), Is.EqualTo(60785)); Assert.That(Utils.CalcCrc16Modbus("000019.02.2410:50 101 40 0 40kg 001"), Is.EqualTo(60785));
Assert.That(Utils.CalcCrc16Modbus("000019.02.2410:50 111 45 0 45kg 001"), Is.EqualTo(35918)); Assert.That(Utils.CalcCrc16Modbus("000019.02.2410:50 111 45 0 45kg 001"), Is.EqualTo(35918));
}); }
} }
} }
} }
+18 -18
View File
@@ -15,69 +15,69 @@ namespace Tests.UnitTests.HelperTests {
[Test] [Test]
public void Test_CheckInteger_Simple() { public void Test_CheckInteger_Simple() {
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(Validator.CheckInteger(TB(""), true).IsValid, Is.False); Assert.That(Validator.CheckInteger(TB(""), true).IsValid, Is.False);
Assert.That(Validator.CheckInteger(TB(""), false).IsValid, Is.True); Assert.That(Validator.CheckInteger(TB(""), false).IsValid, Is.True);
Assert.That(Validator.CheckInteger(TB("123"), true).IsValid, Is.True); Assert.That(Validator.CheckInteger(TB("123"), true).IsValid, Is.True);
Assert.That(Validator.CheckInteger(TB("456"), false).IsValid, Is.True); Assert.That(Validator.CheckInteger(TB("456"), false).IsValid, Is.True);
Assert.That(Validator.CheckInteger(TB("1234"), false, 4).IsValid, Is.True); Assert.That(Validator.CheckInteger(TB("1234"), false, 4).IsValid, Is.True);
Assert.That(Validator.CheckInteger(TB("4567"), false, 3).IsValid, Is.True); Assert.That(Validator.CheckInteger(TB("4567"), false, 3).IsValid, Is.True);
}); }
} }
[Test] [Test]
public void Test_CheckInteger_Caret() { public void Test_CheckInteger_Caret() {
var tb = TB("1a2b3c", 2); var tb = TB("1a2b3c", 2);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(Validator.CheckInteger(tb, true).IsValid, Is.True); Assert.That(Validator.CheckInteger(tb, true).IsValid, Is.True);
Assert.That(tb.Text, Is.EqualTo("123")); Assert.That(tb.Text, Is.EqualTo("123"));
Assert.That(tb.CaretIndex, Is.EqualTo(1)); Assert.That(tb.CaretIndex, Is.EqualTo(1));
}); }
} }
[Test] [Test]
public void Test_CheckInteger_MaxLen() { public void Test_CheckInteger_MaxLen() {
var tb = TB("1a2b3c4d5e", 4); var tb = TB("1a2b3c4d5e", 4);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(Validator.CheckInteger(tb, true, 3).IsValid, Is.True); Assert.That(Validator.CheckInteger(tb, true, 3).IsValid, Is.True);
Assert.That(tb.Text, Is.EqualTo("123")); Assert.That(tb.Text, Is.EqualTo("123"));
Assert.That(tb.CaretIndex, Is.EqualTo(2)); Assert.That(tb.CaretIndex, Is.EqualTo(2));
}); }
} }
[Test] [Test]
public void Test_CheckPhoneNumber_Simple() { public void Test_CheckPhoneNumber_Simple() {
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(Validator.CheckPhoneNumber(TB(""), true).IsValid, Is.False); Assert.That(Validator.CheckPhoneNumber(TB(""), true).IsValid, Is.False);
Assert.That(Validator.CheckPhoneNumber(TB("+43"), false).IsValid, Is.False); Assert.That(Validator.CheckPhoneNumber(TB("+43"), false).IsValid, Is.False);
Assert.That(Validator.CheckPhoneNumber(TB("066412345678"), true).IsValid, Is.True); Assert.That(Validator.CheckPhoneNumber(TB("066412345678"), true).IsValid, Is.True);
Assert.That(Validator.CheckPhoneNumber(TB("0ab66412cd345678"), true).IsValid, Is.True); Assert.That(Validator.CheckPhoneNumber(TB("0ab66412cd345678"), true).IsValid, Is.True);
}); }
} }
[Test] [Test]
public void Test_CheckPhoneNumber_Format_1() { public void Test_CheckPhoneNumber_Format_1() {
var tb = TB("066412345678", 5); var tb = TB("066412345678", 5);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(Validator.CheckPhoneNumber(tb, true).IsValid, Is.True); Assert.That(Validator.CheckPhoneNumber(tb, true).IsValid, Is.True);
Assert.That(tb.Text, Is.EqualTo("+43 664 12345678")); Assert.That(tb.Text, Is.EqualTo("+43 664 12345678"));
Assert.That(tb.CaretIndex, Is.EqualTo(9)); Assert.That(tb.CaretIndex, Is.EqualTo(9));
}); }
} }
[Test] [Test]
public void Test_CheckPhoneNumber_Format_2() { public void Test_CheckPhoneNumber_Format_2() {
var tb = TB("0a2574b1c2d34..", 7); var tb = TB("0a2574b1c2d34..", 7);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(Validator.CheckPhoneNumber(tb, true).IsValid, Is.True); Assert.That(Validator.CheckPhoneNumber(tb, true).IsValid, Is.True);
Assert.That(tb.Text, Is.EqualTo("+43 2574 1234")); Assert.That(tb.Text, Is.EqualTo("+43 2574 1234"));
Assert.That(tb.CaretIndex, Is.EqualTo(8)); Assert.That(tb.CaretIndex, Is.EqualTo(8));
}); }
} }
[Test] [Test]
public void Test_CheckEmailAddress_Simple() { public void Test_CheckEmailAddress_Simple() {
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(Validator.CheckEmailAddress(TB(""), true).IsValid, Is.False); Assert.That(Validator.CheckEmailAddress(TB(""), true).IsValid, Is.False);
Assert.That(Validator.CheckEmailAddress(TB("name"), false).IsValid, Is.False); Assert.That(Validator.CheckEmailAddress(TB("name"), false).IsValid, Is.False);
Assert.That(Validator.CheckEmailAddress(TB("@"), false).IsValid, Is.False); Assert.That(Validator.CheckEmailAddress(TB("@"), false).IsValid, Is.False);
@@ -87,27 +87,27 @@ namespace Tests.UnitTests.HelperTests {
Assert.That(Validator.CheckEmailAddress(TB("name@a.com.a"), true).IsValid, Is.False); Assert.That(Validator.CheckEmailAddress(TB("name@a.com.a"), true).IsValid, Is.False);
Assert.That(Validator.CheckEmailAddress(TB("name@a.com"), true).IsValid, Is.True); Assert.That(Validator.CheckEmailAddress(TB("name@a.com"), true).IsValid, Is.True);
Assert.That(Validator.CheckEmailAddress(TB("my.name@hello#.com"), true).IsValid, Is.True); Assert.That(Validator.CheckEmailAddress(TB("my.name@hello#.com"), true).IsValid, Is.True);
}); }
} }
[Test] [Test]
public void Test_CheckEmailAddress_Format_1() { public void Test_CheckEmailAddress_Format_1() {
var tb = TB("my . name . is @heinz#.com", 17); var tb = TB("my . name . is @heinz#.com", 17);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(Validator.CheckEmailAddress(tb, true).IsValid, Is.True); Assert.That(Validator.CheckEmailAddress(tb, true).IsValid, Is.True);
Assert.That(tb.Text, Is.EqualTo("my.name.is@heinz.com")); Assert.That(tb.Text, Is.EqualTo("my.name.is@heinz.com"));
Assert.That(tb.CaretIndex, Is.EqualTo(12)); Assert.That(tb.CaretIndex, Is.EqualTo(12));
}); }
} }
[Test] [Test]
public void Test_CheckEmailAddress_Format_2() { public void Test_CheckEmailAddress_Format_2() {
var tb = TB("sabine.müsterfrau@heinz#.com.b", 30); var tb = TB("sabine.müsterfrau@heinz#.com.b", 30);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(Validator.CheckEmailAddress(tb, true).IsValid, Is.False); Assert.That(Validator.CheckEmailAddress(tb, true).IsValid, Is.False);
Assert.That(tb.Text, Is.EqualTo("sabine.müsterfrau@heinz.com.b")); Assert.That(tb.Text, Is.EqualTo("sabine.müsterfrau@heinz.com.b"));
Assert.That(tb.CaretIndex, Is.EqualTo(29)); Assert.That(tb.CaretIndex, Is.EqualTo(29));
}); }
} }
} }
} }
@@ -67,7 +67,7 @@ namespace Tests.UnitTests.ServiceTests {
Assert.That(d.Parts, Has.Count.EqualTo(1)); Assert.That(d.Parts, Has.Count.EqualTo(1));
var p = d.Parts.First(); var p = d.Parts.First();
Assert.That(p, Is.Not.Null); Assert.That(p, Is.Not.Null);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(d.LsNr, Is.EqualTo("20221001X001")); Assert.That(d.LsNr, Is.EqualTo("20221001X001"));
Assert.That(d.Date, Is.EqualTo(new DateOnly(2022, 10, 1))); Assert.That(d.Date, Is.EqualTo(new DateOnly(2022, 10, 1)));
Assert.That(d.ZwstId, Is.EqualTo("X")); Assert.That(d.ZwstId, Is.EqualTo("X"));
@@ -82,7 +82,7 @@ namespace Tests.UnitTests.ServiceTests {
Assert.That(p.IsNetWeight, Is.False); Assert.That(p.IsNetWeight, Is.False);
Assert.That(p.IsManualWeighing, Is.True); Assert.That(p.IsManualWeighing, Is.True);
Assert.That(p.HkId, Is.EqualTo("WLNO")); Assert.That(p.HkId, Is.EqualTo("WLNO"));
}); }
vm = new DeliveryAdminViewModel(); vm = new DeliveryAdminViewModel();
await InitViewModel(vm); await InitViewModel(vm);
@@ -90,7 +90,7 @@ namespace Tests.UnitTests.ServiceTests {
vm.FillInputs(d); vm.FillInputs(d);
vm.FillInputs(p); vm.FillInputs(p);
}); });
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(vm.LsNr, Is.EqualTo("20221001X001")); Assert.That(vm.LsNr, Is.EqualTo("20221001X001"));
Assert.That(vm.Date, Is.EqualTo("01.10.2022")); Assert.That(vm.Date, Is.EqualTo("01.10.2022"));
Assert.That(vm.Branch?.ZwstId, Is.EqualTo("X")); Assert.That(vm.Branch?.ZwstId, Is.EqualTo("X"));
@@ -104,7 +104,7 @@ namespace Tests.UnitTests.ServiceTests {
Assert.That(vm.IsNetWeight, Is.False); Assert.That(vm.IsNetWeight, Is.False);
Assert.That(vm.IsManualWeighing, Is.True); Assert.That(vm.IsManualWeighing, Is.True);
Assert.That(vm.WineOrigin?.HkId, Is.EqualTo("WLNO")); Assert.That(vm.WineOrigin?.HkId, Is.EqualTo("WLNO"));
}); }
} }
[Test] [Test]
@@ -139,7 +139,7 @@ namespace Tests.UnitTests.ServiceTests {
Assert.That(d.Parts, Has.Count.EqualTo(1)); Assert.That(d.Parts, Has.Count.EqualTo(1));
var p = d.Parts.First(); var p = d.Parts.First();
Assert.That(p, Is.Not.Null); Assert.That(p, Is.Not.Null);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(d.LsNr, Is.EqualTo("20221002X001")); Assert.That(d.LsNr, Is.EqualTo("20221002X001"));
Assert.That(d.Date, Is.EqualTo(new DateOnly(2022, 10, 2))); Assert.That(d.Date, Is.EqualTo(new DateOnly(2022, 10, 2)));
Assert.That(d.ZwstId, Is.EqualTo("X")); Assert.That(d.ZwstId, Is.EqualTo("X"));
@@ -156,7 +156,7 @@ namespace Tests.UnitTests.ServiceTests {
Assert.That(p.WeighingData, Is.EqualTo("{}")); Assert.That(p.WeighingData, Is.EqualTo("{}"));
Assert.That(p.HkId, Is.EqualTo("WLNO")); Assert.That(p.HkId, Is.EqualTo("WLNO"));
Assert.That(p.Modifiers.Count(), Is.EqualTo(1)); Assert.That(p.Modifiers.Count(), Is.EqualTo(1));
}); }
vm = new DeliveryAdminViewModel(); vm = new DeliveryAdminViewModel();
await InitViewModel(vm); await InitViewModel(vm);
@@ -164,7 +164,7 @@ namespace Tests.UnitTests.ServiceTests {
vm.FillInputs(d); vm.FillInputs(d);
vm.FillInputs(p); vm.FillInputs(p);
}); });
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(vm.LsNr, Is.EqualTo("20221002X001")); Assert.That(vm.LsNr, Is.EqualTo("20221002X001"));
Assert.That(vm.Date, Is.EqualTo("02.10.2022")); Assert.That(vm.Date, Is.EqualTo("02.10.2022"));
Assert.That(vm.Branch?.ZwstId, Is.EqualTo("X")); Assert.That(vm.Branch?.ZwstId, Is.EqualTo("X"));
@@ -180,7 +180,7 @@ namespace Tests.UnitTests.ServiceTests {
Assert.That(vm.WeighingData, Is.EqualTo("{}")); Assert.That(vm.WeighingData, Is.EqualTo("{}"));
Assert.That(vm.WineOrigin?.HkId, Is.EqualTo("WLNO")); Assert.That(vm.WineOrigin?.HkId, Is.EqualTo("WLNO"));
Assert.That(vm.Modifiers, Has.Count.EqualTo(1)); Assert.That(vm.Modifiers, Has.Count.EqualTo(1));
}); }
} }
[Test] [Test]
@@ -219,22 +219,22 @@ namespace Tests.UnitTests.ServiceTests {
var d = await GetDelivery("20221003X001"); var d = await GetDelivery("20221003X001");
Assert.That(d, Is.Not.Null); Assert.That(d, Is.Not.Null);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(d.Parts, Has.Count.EqualTo(2)); Assert.That(d.Parts, Has.Count.EqualTo(2));
Assert.That(d.MgNr, Is.EqualTo(101)); Assert.That(d.MgNr, Is.EqualTo(101));
}); }
var p = d.Parts.First(); var p = d.Parts.First();
Assert.That(p, Is.Not.Null); Assert.That(p, Is.Not.Null);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(p.DPNr, Is.EqualTo(1)); Assert.That(p.DPNr, Is.EqualTo(1));
Assert.That(p.SortId, Is.EqualTo("GV")); Assert.That(p.SortId, Is.EqualTo("GV"));
}); }
p = d.Parts.Skip(1).First(); p = d.Parts.Skip(1).First();
Assert.That(p, Is.Not.Null); Assert.That(p, Is.Not.Null);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(p.DPNr, Is.EqualTo(2)); Assert.That(p.DPNr, Is.EqualTo(2));
Assert.That(p.SortId, Is.EqualTo("WR")); Assert.That(p.SortId, Is.EqualTo("WR"));
}); }
} }
[Test] [Test]
@@ -279,10 +279,10 @@ namespace Tests.UnitTests.ServiceTests {
var d = await GetDelivery("20221004X001"); var d = await GetDelivery("20221004X001");
Assert.That(d, Is.Not.Null); Assert.That(d, Is.Not.Null);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(d.Parts, Has.Count.EqualTo(2)); Assert.That(d.Parts, Has.Count.EqualTo(2));
Assert.That(d.MgNr, Is.EqualTo(102)); Assert.That(d.MgNr, Is.EqualTo(102));
}); }
} }
[Test] [Test]
@@ -344,10 +344,10 @@ namespace Tests.UnitTests.ServiceTests {
vm.FillInputs(d); vm.FillInputs(d);
vm.FillInputs(p); vm.FillInputs(p);
}); });
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(vm.SortId, Is.EqualTo("WR")); Assert.That(vm.SortId, Is.EqualTo("WR"));
Assert.That(vm.GradationKmw, Is.EqualTo(15.9)); Assert.That(vm.GradationKmw, Is.EqualTo(15.9));
}); }
} }
[Test] [Test]
@@ -411,45 +411,45 @@ namespace Tests.UnitTests.ServiceTests {
public async Task TestSplit_01_Depreciate_One() { public async Task TestSplit_01_Depreciate_One() {
var d = await GetDelivery("20231001X001"); var d = await GetDelivery("20231001X001");
Assert.That(d, Is.Not.Null); Assert.That(d, Is.Not.Null);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
var ps = GetParts(d); var ps = GetParts(d);
Assert.That(ps, Has.Length.EqualTo(3)); Assert.That(ps, Has.Length.EqualTo(3));
Assert.That(ps[0].Weight, Is.EqualTo(1000)); Assert.That(ps[0].Weight, Is.EqualTo(1000));
Assert.That(ps[0].QualId, Is.Not.EqualTo("WEI")); Assert.That(ps[0].QualId, Is.Not.EqualTo("WEI"));
Assert.That(ps[1].QualId, Is.Not.EqualTo("WEI")); Assert.That(ps[1].QualId, Is.Not.EqualTo("WEI"));
Assert.That(ps[2].QualId, Is.Not.EqualTo("WEI")); Assert.That(ps[2].QualId, Is.Not.EqualTo("WEI"));
}); }
Assert.DoesNotThrowAsync(async () => await DeliveryService.DepreciateDelivery(d.Year, d.DId, [1000, 0, 0])); Assert.DoesNotThrowAsync(async () => await DeliveryService.DepreciateDelivery(d.Year, d.DId, [1000, 0, 0]));
d = await GetDelivery("20231001X001"); d = await GetDelivery("20231001X001");
Assert.That(d, Is.Not.Null); Assert.That(d, Is.Not.Null);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
var ps = GetParts(d); var ps = GetParts(d);
Assert.That(ps, Has.Length.EqualTo(3)); Assert.That(ps, Has.Length.EqualTo(3));
Assert.That(ps[0].Weight, Is.EqualTo(1000)); Assert.That(ps[0].Weight, Is.EqualTo(1000));
Assert.That(ps[0].QualId, Is.EqualTo("WEI")); Assert.That(ps[0].QualId, Is.EqualTo("WEI"));
Assert.That(ps[1].QualId, Is.Not.EqualTo("WEI")); Assert.That(ps[1].QualId, Is.Not.EqualTo("WEI"));
Assert.That(ps[2].QualId, Is.Not.EqualTo("WEI")); Assert.That(ps[2].QualId, Is.Not.EqualTo("WEI"));
}); }
} }
[Test] [Test]
public async Task TestSplit_02_Depreciate_Partial() { public async Task TestSplit_02_Depreciate_Partial() {
var d = await GetDelivery("20231001X002"); var d = await GetDelivery("20231001X002");
Assert.That(d, Is.Not.Null); Assert.That(d, Is.Not.Null);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
var ps = GetParts(d); var ps = GetParts(d);
Assert.That(ps, Has.Length.EqualTo(3)); Assert.That(ps, Has.Length.EqualTo(3));
Assert.That(ps[0].Weight, Is.EqualTo(1000)); Assert.That(ps[0].Weight, Is.EqualTo(1000));
Assert.That(ps[0].QualId, Is.Not.EqualTo("WEI")); Assert.That(ps[0].QualId, Is.Not.EqualTo("WEI"));
Assert.That(ps[1].QualId, Is.Not.EqualTo("WEI")); Assert.That(ps[1].QualId, Is.Not.EqualTo("WEI"));
Assert.That(ps[2].QualId, Is.Not.EqualTo("WEI")); Assert.That(ps[2].QualId, Is.Not.EqualTo("WEI"));
}); }
Assert.DoesNotThrowAsync(async () => await DeliveryService.DepreciateDelivery(d.Year, d.DId, [600, 0, 0])); Assert.DoesNotThrowAsync(async () => await DeliveryService.DepreciateDelivery(d.Year, d.DId, [600, 0, 0]));
d = await GetDelivery("20231001X002"); d = await GetDelivery("20231001X002");
Assert.That(d, Is.Not.Null); Assert.That(d, Is.Not.Null);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
var ps = GetParts(d); var ps = GetParts(d);
Assert.That(ps, Has.Length.EqualTo(4)); Assert.That(ps, Has.Length.EqualTo(4));
Assert.That(ps[0].Weight, Is.EqualTo(400)); Assert.That(ps[0].Weight, Is.EqualTo(400));
@@ -458,14 +458,14 @@ namespace Tests.UnitTests.ServiceTests {
Assert.That(ps[2].QualId, Is.Not.EqualTo("WEI")); Assert.That(ps[2].QualId, Is.Not.EqualTo("WEI"));
Assert.That(ps[3].Weight, Is.EqualTo(600)); Assert.That(ps[3].Weight, Is.EqualTo(600));
Assert.That(ps[3].QualId, Is.EqualTo("WEI")); Assert.That(ps[3].QualId, Is.EqualTo("WEI"));
}); }
} }
[Test] [Test]
public async Task TestSplit_03_Depreciate_Mixed() { public async Task TestSplit_03_Depreciate_Mixed() {
var d = await GetDelivery("20231001X003"); var d = await GetDelivery("20231001X003");
Assert.That(d, Is.Not.Null); Assert.That(d, Is.Not.Null);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
var ps = GetParts(d); var ps = GetParts(d);
Assert.That(ps, Has.Length.EqualTo(3)); Assert.That(ps, Has.Length.EqualTo(3));
Assert.That(ps[0].Weight, Is.EqualTo(1000)); Assert.That(ps[0].Weight, Is.EqualTo(1000));
@@ -473,12 +473,12 @@ namespace Tests.UnitTests.ServiceTests {
Assert.That(ps[1].Weight, Is.EqualTo(1000)); Assert.That(ps[1].Weight, Is.EqualTo(1000));
Assert.That(ps[1].QualId, Is.Not.EqualTo("WEI")); Assert.That(ps[1].QualId, Is.Not.EqualTo("WEI"));
Assert.That(ps[2].QualId, Is.Not.EqualTo("WEI")); Assert.That(ps[2].QualId, Is.Not.EqualTo("WEI"));
}); }
Assert.DoesNotThrowAsync(async () => await DeliveryService.DepreciateDelivery(d.Year, d.DId, [1000, 700, -5])); Assert.DoesNotThrowAsync(async () => await DeliveryService.DepreciateDelivery(d.Year, d.DId, [1000, 700, -5]));
d = await GetDelivery("20231001X003"); d = await GetDelivery("20231001X003");
Assert.That(d, Is.Not.Null); Assert.That(d, Is.Not.Null);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
var ps = GetParts(d); var ps = GetParts(d);
Assert.That(ps, Has.Length.EqualTo(4)); Assert.That(ps, Has.Length.EqualTo(4));
Assert.That(ps[0].Weight, Is.EqualTo(1000)); Assert.That(ps[0].Weight, Is.EqualTo(1000));
@@ -489,14 +489,14 @@ namespace Tests.UnitTests.ServiceTests {
Assert.That(ps[2].QualId, Is.Not.EqualTo("WEI")); Assert.That(ps[2].QualId, Is.Not.EqualTo("WEI"));
Assert.That(ps[3].Weight, Is.EqualTo(700)); Assert.That(ps[3].Weight, Is.EqualTo(700));
Assert.That(ps[3].QualId, Is.EqualTo("WEI")); Assert.That(ps[3].QualId, Is.EqualTo("WEI"));
}); }
} }
[Test] [Test]
public async Task TestSplit_04_Depreciate_Complete() { public async Task TestSplit_04_Depreciate_Complete() {
var d = await GetDelivery("20231001X004"); var d = await GetDelivery("20231001X004");
Assert.That(d, Is.Not.Null); Assert.That(d, Is.Not.Null);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
var ps = GetParts(d); var ps = GetParts(d);
Assert.That(ps, Has.Length.EqualTo(3)); Assert.That(ps, Has.Length.EqualTo(3));
Assert.That(ps[0].Weight, Is.EqualTo(1000)); Assert.That(ps[0].Weight, Is.EqualTo(1000));
@@ -505,12 +505,12 @@ namespace Tests.UnitTests.ServiceTests {
Assert.That(ps[1].QualId, Is.Not.EqualTo("WEI")); Assert.That(ps[1].QualId, Is.Not.EqualTo("WEI"));
Assert.That(ps[2].Weight, Is.EqualTo(1000)); Assert.That(ps[2].Weight, Is.EqualTo(1000));
Assert.That(ps[2].QualId, Is.Not.EqualTo("WEI")); Assert.That(ps[2].QualId, Is.Not.EqualTo("WEI"));
}); }
Assert.DoesNotThrowAsync(async () => await DeliveryService.DepreciateDelivery(d.Year, d.DId, [1000, 1100, int.MaxValue])); Assert.DoesNotThrowAsync(async () => await DeliveryService.DepreciateDelivery(d.Year, d.DId, [1000, 1100, int.MaxValue]));
d = await GetDelivery("20231001X004"); d = await GetDelivery("20231001X004");
Assert.That(d, Is.Not.Null); Assert.That(d, Is.Not.Null);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
var ps = GetParts(d); var ps = GetParts(d);
Assert.That(ps, Has.Length.EqualTo(3)); Assert.That(ps, Has.Length.EqualTo(3));
Assert.That(ps[0].Weight, Is.EqualTo(1000)); Assert.That(ps[0].Weight, Is.EqualTo(1000));
@@ -519,34 +519,34 @@ namespace Tests.UnitTests.ServiceTests {
Assert.That(ps[1].QualId, Is.EqualTo("WEI")); Assert.That(ps[1].QualId, Is.EqualTo("WEI"));
Assert.That(ps[2].Weight, Is.EqualTo(1000)); Assert.That(ps[2].Weight, Is.EqualTo(1000));
Assert.That(ps[2].QualId, Is.EqualTo("WEI")); Assert.That(ps[2].QualId, Is.EqualTo("WEI"));
}); }
} }
[Test] [Test]
public async Task TestSplit_05_OtherMember_One() { public async Task TestSplit_05_OtherMember_One() {
var d1 = await GetDelivery("20231002X001"); var d1 = await GetDelivery("20231002X001");
var d2 = await GetDelivery("20231002X002"); var d2 = await GetDelivery("20231002X002");
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(d1, Is.Not.Null); Assert.That(d1, Is.Not.Null);
Assert.That(d2, Is.Null); Assert.That(d2, Is.Null);
}); }
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
var ps1 = GetParts(d1); var ps1 = GetParts(d1);
Assert.That(d1.MgNr, Is.EqualTo(101)); Assert.That(d1.MgNr, Is.EqualTo(101));
Assert.That(ps1, Has.Length.EqualTo(3)); Assert.That(ps1, Has.Length.EqualTo(3));
Assert.That(ps1[0].Weight, Is.EqualTo(1000)); Assert.That(ps1[0].Weight, Is.EqualTo(1000));
Assert.That(ps1[1].Weight, Is.EqualTo(1000)); Assert.That(ps1[1].Weight, Is.EqualTo(1000));
Assert.That(ps1[2].Weight, Is.EqualTo(1000)); Assert.That(ps1[2].Weight, Is.EqualTo(1000));
}); }
Assert.DoesNotThrowAsync(async () => await DeliveryService.SplitDeliveryToMember(d1.Year, d1.DId, [1000, 0, 0], 102)); Assert.DoesNotThrowAsync(async () => await DeliveryService.SplitDeliveryToMember(d1.Year, d1.DId, [1000, 0, 0], 102));
d1 = await GetDelivery("20231002X001"); d1 = await GetDelivery("20231002X001");
d2 = await GetDelivery("20231002X002"); d2 = await GetDelivery("20231002X002");
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(d1, Is.Not.Null); Assert.That(d1, Is.Not.Null);
Assert.That(d2, Is.Not.Null); Assert.That(d2, Is.Not.Null);
}); }
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
var ps1 = GetParts(d1); var ps1 = GetParts(d1);
var ps2 = GetParts(d2); var ps2 = GetParts(d2);
Assert.That(d1.MgNr, Is.EqualTo(101)); Assert.That(d1.MgNr, Is.EqualTo(101));
@@ -559,34 +559,34 @@ namespace Tests.UnitTests.ServiceTests {
Assert.That(ps2, Has.Length.EqualTo(1)); Assert.That(ps2, Has.Length.EqualTo(1));
Assert.That(ps2[0].DPNr, Is.EqualTo(1)); Assert.That(ps2[0].DPNr, Is.EqualTo(1));
Assert.That(ps2[0].Weight, Is.EqualTo(1000)); Assert.That(ps2[0].Weight, Is.EqualTo(1000));
}); }
} }
[Test] [Test]
public async Task TestSplit_06_OtherMember_Partial() { public async Task TestSplit_06_OtherMember_Partial() {
var d1 = await GetDelivery("20231003X001"); var d1 = await GetDelivery("20231003X001");
var d2 = await GetDelivery("20231003X002"); var d2 = await GetDelivery("20231003X002");
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(d1, Is.Not.Null); Assert.That(d1, Is.Not.Null);
Assert.That(d2, Is.Null); Assert.That(d2, Is.Null);
}); }
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
var ps1 = GetParts(d1); var ps1 = GetParts(d1);
Assert.That(d1.MgNr, Is.EqualTo(101)); Assert.That(d1.MgNr, Is.EqualTo(101));
Assert.That(ps1, Has.Length.EqualTo(3)); Assert.That(ps1, Has.Length.EqualTo(3));
Assert.That(ps1[0].Weight, Is.EqualTo(1000)); Assert.That(ps1[0].Weight, Is.EqualTo(1000));
Assert.That(ps1[1].Weight, Is.EqualTo(1000)); Assert.That(ps1[1].Weight, Is.EqualTo(1000));
Assert.That(ps1[2].Weight, Is.EqualTo(1000)); Assert.That(ps1[2].Weight, Is.EqualTo(1000));
}); }
Assert.DoesNotThrowAsync(async () => await DeliveryService.SplitDeliveryToMember(d1.Year, d1.DId, [400, -1, -2], 102)); Assert.DoesNotThrowAsync(async () => await DeliveryService.SplitDeliveryToMember(d1.Year, d1.DId, [400, -1, -2], 102));
d1 = await GetDelivery("20231003X001"); d1 = await GetDelivery("20231003X001");
d2 = await GetDelivery("20231003X002"); d2 = await GetDelivery("20231003X002");
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(d1, Is.Not.Null); Assert.That(d1, Is.Not.Null);
Assert.That(d2, Is.Not.Null); Assert.That(d2, Is.Not.Null);
}); }
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
var ps1 = GetParts(d1); var ps1 = GetParts(d1);
var ps2 = GetParts(d2); var ps2 = GetParts(d2);
Assert.That(d1.MgNr, Is.EqualTo(101)); Assert.That(d1.MgNr, Is.EqualTo(101));
@@ -597,34 +597,34 @@ namespace Tests.UnitTests.ServiceTests {
Assert.That(ps1[2].Weight, Is.EqualTo(1000)); Assert.That(ps1[2].Weight, Is.EqualTo(1000));
Assert.That(ps2, Has.Length.EqualTo(1)); Assert.That(ps2, Has.Length.EqualTo(1));
Assert.That(ps2[0].Weight, Is.EqualTo(400)); Assert.That(ps2[0].Weight, Is.EqualTo(400));
}); }
} }
[Test] [Test]
public async Task TestSplit_07_OtherMember_Mixed() { public async Task TestSplit_07_OtherMember_Mixed() {
var d1 = await GetDelivery("20231004X001"); var d1 = await GetDelivery("20231004X001");
var d2 = await GetDelivery("20231004X002"); var d2 = await GetDelivery("20231004X002");
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(d1, Is.Not.Null); Assert.That(d1, Is.Not.Null);
Assert.That(d2, Is.Null); Assert.That(d2, Is.Null);
}); }
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
var ps1 = GetParts(d1); var ps1 = GetParts(d1);
Assert.That(d1.MgNr, Is.EqualTo(101)); Assert.That(d1.MgNr, Is.EqualTo(101));
Assert.That(ps1, Has.Length.EqualTo(3)); Assert.That(ps1, Has.Length.EqualTo(3));
Assert.That(ps1[0].Weight, Is.EqualTo(1000)); Assert.That(ps1[0].Weight, Is.EqualTo(1000));
Assert.That(ps1[1].Weight, Is.EqualTo(1000)); Assert.That(ps1[1].Weight, Is.EqualTo(1000));
Assert.That(ps1[2].Weight, Is.EqualTo(1000)); Assert.That(ps1[2].Weight, Is.EqualTo(1000));
}); }
Assert.DoesNotThrowAsync(async () => await DeliveryService.SplitDeliveryToMember(d1.Year, d1.DId, [200, 1000, int.MinValue], 102)); Assert.DoesNotThrowAsync(async () => await DeliveryService.SplitDeliveryToMember(d1.Year, d1.DId, [200, 1000, int.MinValue], 102));
d1 = await GetDelivery("20231004X001"); d1 = await GetDelivery("20231004X001");
d2 = await GetDelivery("20231004X002"); d2 = await GetDelivery("20231004X002");
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(d1, Is.Not.Null); Assert.That(d1, Is.Not.Null);
Assert.That(d2, Is.Not.Null); Assert.That(d2, Is.Not.Null);
}); }
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
var ps1 = GetParts(d1); var ps1 = GetParts(d1);
var ps2 = GetParts(d2); var ps2 = GetParts(d2);
Assert.That(d1.MgNr, Is.EqualTo(101)); Assert.That(d1.MgNr, Is.EqualTo(101));
@@ -639,52 +639,52 @@ namespace Tests.UnitTests.ServiceTests {
Assert.That(ps2[0].Weight, Is.EqualTo(200)); Assert.That(ps2[0].Weight, Is.EqualTo(200));
Assert.That(ps2[1].DPNr, Is.EqualTo(2)); Assert.That(ps2[1].DPNr, Is.EqualTo(2));
Assert.That(ps2[1].Weight, Is.EqualTo(1000)); Assert.That(ps2[1].Weight, Is.EqualTo(1000));
}); }
} }
[Test] [Test]
public async Task TestSplit_08_OtherMember_Complete() { public async Task TestSplit_08_OtherMember_Complete() {
var d1 = await GetDelivery("20231005X001"); var d1 = await GetDelivery("20231005X001");
var d2 = await GetDelivery("20231005X002"); var d2 = await GetDelivery("20231005X002");
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(d1, Is.Not.Null); Assert.That(d1, Is.Not.Null);
Assert.That(d2, Is.Null); Assert.That(d2, Is.Null);
}); }
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
var ps1 = GetParts(d1); var ps1 = GetParts(d1);
Assert.That(d1.MgNr, Is.EqualTo(101)); Assert.That(d1.MgNr, Is.EqualTo(101));
Assert.That(ps1, Has.Length.EqualTo(3)); Assert.That(ps1, Has.Length.EqualTo(3));
Assert.That(ps1[0].Weight, Is.EqualTo(1000)); Assert.That(ps1[0].Weight, Is.EqualTo(1000));
Assert.That(ps1[1].Weight, Is.EqualTo(1000)); Assert.That(ps1[1].Weight, Is.EqualTo(1000));
Assert.That(ps1[2].Weight, Is.EqualTo(1000)); Assert.That(ps1[2].Weight, Is.EqualTo(1000));
}); }
Assert.DoesNotThrowAsync(async () => await DeliveryService.SplitDeliveryToMember(d1.Year, d1.DId, [1000, int.MaxValue, 1100], 102)); Assert.DoesNotThrowAsync(async () => await DeliveryService.SplitDeliveryToMember(d1.Year, d1.DId, [1000, int.MaxValue, 1100], 102));
d1 = await GetDelivery("20231005X001"); d1 = await GetDelivery("20231005X001");
d2 = await GetDelivery("20231005X002"); d2 = await GetDelivery("20231005X002");
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(d1, Is.Null); Assert.That(d1, Is.Null);
Assert.That(d2, Is.Not.Null); Assert.That(d2, Is.Not.Null);
}); }
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
var ps2 = GetParts(d2); var ps2 = GetParts(d2);
Assert.That(d2.MgNr, Is.EqualTo(102)); Assert.That(d2.MgNr, Is.EqualTo(102));
Assert.That(ps2, Has.Length.EqualTo(3)); Assert.That(ps2, Has.Length.EqualTo(3));
Assert.That(ps2[0].Weight, Is.EqualTo(1000)); Assert.That(ps2[0].Weight, Is.EqualTo(1000));
Assert.That(ps2[1].Weight, Is.EqualTo(1000)); Assert.That(ps2[1].Weight, Is.EqualTo(1000));
Assert.That(ps2[2].Weight, Is.EqualTo(1000)); Assert.That(ps2[2].Weight, Is.EqualTo(1000));
}); }
} }
[Test] [Test]
public async Task TestSplit_09_OtherDelivery_One() { public async Task TestSplit_09_OtherDelivery_One() {
var d1 = await GetDelivery("20231006X001"); var d1 = await GetDelivery("20231006X001");
var d2 = await GetDelivery("20231006X002"); var d2 = await GetDelivery("20231006X002");
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(d1, Is.Not.Null); Assert.That(d1, Is.Not.Null);
Assert.That(d2, Is.Not.Null); Assert.That(d2, Is.Not.Null);
}); }
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
var ps1 = GetParts(d1); var ps1 = GetParts(d1);
var ps2 = GetParts(d2); var ps2 = GetParts(d2);
Assert.That(ps1, Has.Length.EqualTo(3)); Assert.That(ps1, Has.Length.EqualTo(3));
@@ -693,16 +693,16 @@ namespace Tests.UnitTests.ServiceTests {
Assert.That(ps1[2].Weight, Is.EqualTo(1000)); Assert.That(ps1[2].Weight, Is.EqualTo(1000));
Assert.That(ps2, Has.Length.EqualTo(1)); Assert.That(ps2, Has.Length.EqualTo(1));
Assert.That(ps2[0].Weight, Is.EqualTo(1000)); Assert.That(ps2[0].Weight, Is.EqualTo(1000));
}); }
Assert.DoesNotThrowAsync(async () => await DeliveryService.SplitDeliveryToLsNr(d1.Year, d1.DId, [0, 1000, -4], d2.LsNr)); Assert.DoesNotThrowAsync(async () => await DeliveryService.SplitDeliveryToLsNr(d1.Year, d1.DId, [0, 1000, -4], d2.LsNr));
d1 = await GetDelivery("20231006X001"); d1 = await GetDelivery("20231006X001");
d2 = await GetDelivery("20231006X002"); d2 = await GetDelivery("20231006X002");
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(d1, Is.Not.Null); Assert.That(d1, Is.Not.Null);
Assert.That(d2, Is.Not.Null); Assert.That(d2, Is.Not.Null);
}); }
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
var ps1 = GetParts(d1); var ps1 = GetParts(d1);
var ps2 = GetParts(d2); var ps2 = GetParts(d2);
Assert.That(ps1, Has.Length.EqualTo(2)); Assert.That(ps1, Has.Length.EqualTo(2));
@@ -713,18 +713,18 @@ namespace Tests.UnitTests.ServiceTests {
Assert.That(ps2, Has.Length.EqualTo(2)); Assert.That(ps2, Has.Length.EqualTo(2));
Assert.That(ps2[0].Weight, Is.EqualTo(1000)); Assert.That(ps2[0].Weight, Is.EqualTo(1000));
Assert.That(ps2[1].Weight, Is.EqualTo(1000)); Assert.That(ps2[1].Weight, Is.EqualTo(1000));
}); }
} }
[Test] [Test]
public async Task TestSplit_10_OtherDelivery_Partial() { public async Task TestSplit_10_OtherDelivery_Partial() {
var d1 = await GetDelivery("20231007X001"); var d1 = await GetDelivery("20231007X001");
var d2 = await GetDelivery("20231007X002"); var d2 = await GetDelivery("20231007X002");
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(d1, Is.Not.Null); Assert.That(d1, Is.Not.Null);
Assert.That(d2, Is.Not.Null); Assert.That(d2, Is.Not.Null);
}); }
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
var ps1 = GetParts(d1); var ps1 = GetParts(d1);
var ps2 = GetParts(d2); var ps2 = GetParts(d2);
Assert.That(ps1, Has.Length.EqualTo(3)); Assert.That(ps1, Has.Length.EqualTo(3));
@@ -733,16 +733,16 @@ namespace Tests.UnitTests.ServiceTests {
Assert.That(ps1[2].Weight, Is.EqualTo(1000)); Assert.That(ps1[2].Weight, Is.EqualTo(1000));
Assert.That(ps2, Has.Length.EqualTo(1)); Assert.That(ps2, Has.Length.EqualTo(1));
Assert.That(ps2[0].Weight, Is.EqualTo(1000)); Assert.That(ps2[0].Weight, Is.EqualTo(1000));
}); }
Assert.DoesNotThrowAsync(async () => await DeliveryService.SplitDeliveryToLsNr(d1.Year, d1.DId, [0, 300, int.MinValue], d2.LsNr)); Assert.DoesNotThrowAsync(async () => await DeliveryService.SplitDeliveryToLsNr(d1.Year, d1.DId, [0, 300, int.MinValue], d2.LsNr));
d1 = await GetDelivery("20231007X001"); d1 = await GetDelivery("20231007X001");
d2 = await GetDelivery("20231007X002"); d2 = await GetDelivery("20231007X002");
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(d1, Is.Not.Null); Assert.That(d1, Is.Not.Null);
Assert.That(d2, Is.Not.Null); Assert.That(d2, Is.Not.Null);
}); }
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
var ps1 = GetParts(d1); var ps1 = GetParts(d1);
var ps2 = GetParts(d2); var ps2 = GetParts(d2);
Assert.That(ps1, Has.Length.EqualTo(3)); Assert.That(ps1, Has.Length.EqualTo(3));
@@ -752,18 +752,18 @@ namespace Tests.UnitTests.ServiceTests {
Assert.That(ps2, Has.Length.EqualTo(2)); Assert.That(ps2, Has.Length.EqualTo(2));
Assert.That(ps2[0].Weight, Is.EqualTo(1000)); Assert.That(ps2[0].Weight, Is.EqualTo(1000));
Assert.That(ps2[1].Weight, Is.EqualTo(300)); Assert.That(ps2[1].Weight, Is.EqualTo(300));
}); }
} }
[Test] [Test]
public async Task TestSplit_11_OtherDelivery_Mixed() { public async Task TestSplit_11_OtherDelivery_Mixed() {
var d1 = await GetDelivery("20231008X001"); var d1 = await GetDelivery("20231008X001");
var d2 = await GetDelivery("20231008X002"); var d2 = await GetDelivery("20231008X002");
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(d1, Is.Not.Null); Assert.That(d1, Is.Not.Null);
Assert.That(d2, Is.Not.Null); Assert.That(d2, Is.Not.Null);
}); }
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
var ps1 = GetParts(d1); var ps1 = GetParts(d1);
var ps2 = GetParts(d2); var ps2 = GetParts(d2);
Assert.That(ps1, Has.Length.EqualTo(3)); Assert.That(ps1, Has.Length.EqualTo(3));
@@ -772,16 +772,16 @@ namespace Tests.UnitTests.ServiceTests {
Assert.That(ps1[2].Weight, Is.EqualTo(1000)); Assert.That(ps1[2].Weight, Is.EqualTo(1000));
Assert.That(ps2, Has.Length.EqualTo(1)); Assert.That(ps2, Has.Length.EqualTo(1));
Assert.That(ps2[0].Weight, Is.EqualTo(1000)); Assert.That(ps2[0].Weight, Is.EqualTo(1000));
}); }
Assert.DoesNotThrowAsync(async () => await DeliveryService.SplitDeliveryToLsNr(d1.Year, d1.DId, [850, 1000, -4], d2.LsNr)); Assert.DoesNotThrowAsync(async () => await DeliveryService.SplitDeliveryToLsNr(d1.Year, d1.DId, [850, 1000, -4], d2.LsNr));
d1 = await GetDelivery("20231008X001"); d1 = await GetDelivery("20231008X001");
d2 = await GetDelivery("20231008X002"); d2 = await GetDelivery("20231008X002");
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(d1, Is.Not.Null); Assert.That(d1, Is.Not.Null);
Assert.That(d2, Is.Not.Null); Assert.That(d2, Is.Not.Null);
}); }
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
var ps1 = GetParts(d1); var ps1 = GetParts(d1);
var ps2 = GetParts(d2); var ps2 = GetParts(d2);
Assert.That(ps1, Has.Length.EqualTo(2)); Assert.That(ps1, Has.Length.EqualTo(2));
@@ -793,18 +793,18 @@ namespace Tests.UnitTests.ServiceTests {
Assert.That(ps2[0].Weight, Is.EqualTo(1000)); Assert.That(ps2[0].Weight, Is.EqualTo(1000));
Assert.That(ps2[1].Weight, Is.EqualTo(850)); Assert.That(ps2[1].Weight, Is.EqualTo(850));
Assert.That(ps2[2].Weight, Is.EqualTo(1000)); Assert.That(ps2[2].Weight, Is.EqualTo(1000));
}); }
} }
[Test] [Test]
public async Task TestSplit_12_OtherDelivery_Complete() { public async Task TestSplit_12_OtherDelivery_Complete() {
var d1 = await GetDelivery("20231009X001"); var d1 = await GetDelivery("20231009X001");
var d2 = await GetDelivery("20231009X002"); var d2 = await GetDelivery("20231009X002");
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(d1, Is.Not.Null); Assert.That(d1, Is.Not.Null);
Assert.That(d2, Is.Not.Null); Assert.That(d2, Is.Not.Null);
}); }
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
var ps1 = GetParts(d1); var ps1 = GetParts(d1);
var ps2 = GetParts(d2); var ps2 = GetParts(d2);
Assert.That(ps1, Has.Length.EqualTo(3)); Assert.That(ps1, Has.Length.EqualTo(3));
@@ -813,23 +813,23 @@ namespace Tests.UnitTests.ServiceTests {
Assert.That(ps1[2].Weight, Is.EqualTo(1000)); Assert.That(ps1[2].Weight, Is.EqualTo(1000));
Assert.That(ps2, Has.Length.EqualTo(1)); Assert.That(ps2, Has.Length.EqualTo(1));
Assert.That(ps2[0].Weight, Is.EqualTo(1000)); Assert.That(ps2[0].Weight, Is.EqualTo(1000));
}); }
Assert.DoesNotThrowAsync(async () => await DeliveryService.SplitDeliveryToLsNr(d1.Year, d1.DId, [1200, int.MaxValue, 1000], d2.LsNr)); Assert.DoesNotThrowAsync(async () => await DeliveryService.SplitDeliveryToLsNr(d1.Year, d1.DId, [1200, int.MaxValue, 1000], d2.LsNr));
d1 = await GetDelivery("20231009X001"); d1 = await GetDelivery("20231009X001");
d2 = await GetDelivery("20231009X002"); d2 = await GetDelivery("20231009X002");
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(d1, Is.Null); Assert.That(d1, Is.Null);
Assert.That(d2, Is.Not.Null); Assert.That(d2, Is.Not.Null);
}); }
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
var ps2 = GetParts(d2); var ps2 = GetParts(d2);
Assert.That(ps2, Has.Length.EqualTo(4)); Assert.That(ps2, Has.Length.EqualTo(4));
Assert.That(ps2[0].Weight, Is.EqualTo(1000)); Assert.That(ps2[0].Weight, Is.EqualTo(1000));
Assert.That(ps2[1].Weight, Is.EqualTo(1000)); Assert.That(ps2[1].Weight, Is.EqualTo(1000));
Assert.That(ps2[2].Weight, Is.EqualTo(1000)); Assert.That(ps2[2].Weight, Is.EqualTo(1000));
Assert.That(ps2[3].Weight, Is.EqualTo(1000)); Assert.That(ps2[3].Weight, Is.EqualTo(1000));
}); }
} }
[Test] [Test]
@@ -31,18 +31,18 @@ namespace Tests.UnitTests.ServiceTests {
Assert.That(vm.MgNr, Is.EqualTo(205)); Assert.That(vm.MgNr, Is.EqualTo(205));
using (var ctx = new AppDbContext()) { using (var ctx = new AppDbContext()) {
Assert.That(await ctx.FetchMembers(205, includeNotActive: true).SingleOrDefaultAsync(), Is.Null); Assert.That(await ctx.FetchMembers(205).SingleOrDefaultAsync(), Is.Null);
} }
Assert.DoesNotThrowAsync(async () => await vm.UpdateMember(null)); Assert.DoesNotThrowAsync(async () => await vm.UpdateMember(null));
Member m; Member m;
using (var ctx = new AppDbContext()) { using (var ctx = new AppDbContext()) {
m = await ctx.FetchMembers(vm.MgNr, includeNotActive: true, includeContactInfo: true).SingleAsync(); m = await ctx.FetchMembers(vm.MgNr, includeContactInfo: true).SingleAsync();
} }
Assert.That(m, Is.Not.Null); Assert.That(m, Is.Not.Null);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(m.MgNr, Is.EqualTo(205)); Assert.That(m.MgNr, Is.EqualTo(205));
Assert.That(m.Name, Is.EqualTo("Neuling")); Assert.That(m.Name, Is.EqualTo("Neuling"));
Assert.That(m.GivenName, Is.EqualTo("Nadine")); Assert.That(m.GivenName, Is.EqualTo("Nadine"));
@@ -51,12 +51,12 @@ namespace Tests.UnitTests.ServiceTests {
Assert.That(m.PostalDest.AtPlz?.Ort.Name, Is.EqualTo("Wolkersdorf im Weinviertel")); Assert.That(m.PostalDest.AtPlz?.Ort.Name, Is.EqualTo("Wolkersdorf im Weinviertel"));
Assert.That(m.BusinessShares, Is.EqualTo(1)); Assert.That(m.BusinessShares, Is.EqualTo(1));
Assert.That(m.DefaultKg?.Name, Is.EqualTo("Wolkersdorf")); Assert.That(m.DefaultKg?.Name, Is.EqualTo("Wolkersdorf"));
}); }
vm = new MemberAdminViewModel(); vm = new MemberAdminViewModel();
await InitViewModel(vm); await InitViewModel(vm);
Assert.DoesNotThrow(() => vm.FillInputs(m)); Assert.DoesNotThrow(() => vm.FillInputs(m));
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(vm.MgNr, Is.EqualTo(205)); Assert.That(vm.MgNr, Is.EqualTo(205));
Assert.That(vm.Name, Is.EqualTo("Neuling")); Assert.That(vm.Name, Is.EqualTo("Neuling"));
Assert.That(vm.GivenName, Is.EqualTo("Nadine")); Assert.That(vm.GivenName, Is.EqualTo("Nadine"));
@@ -65,7 +65,7 @@ namespace Tests.UnitTests.ServiceTests {
Assert.That(vm.Ort?.Ort.Name, Is.EqualTo("Wolkersdorf im Weinviertel")); Assert.That(vm.Ort?.Ort.Name, Is.EqualTo("Wolkersdorf im Weinviertel"));
Assert.That(vm.BusinessShares, Is.EqualTo(1)); Assert.That(vm.BusinessShares, Is.EqualTo(1));
Assert.That(vm.DefaultKg?.Name, Is.EqualTo("Wolkersdorf")); Assert.That(vm.DefaultKg?.Name, Is.EqualTo("Wolkersdorf"));
}); }
} }
[Test] [Test]
@@ -111,18 +111,18 @@ namespace Tests.UnitTests.ServiceTests {
vm.IsFunktionär = true; vm.IsFunktionär = true;
using (var ctx = new AppDbContext()) { using (var ctx = new AppDbContext()) {
Assert.That(await ctx.FetchMembers(999, includeNotActive: true).SingleOrDefaultAsync(), Is.Null); Assert.That(await ctx.FetchMembers(999).SingleOrDefaultAsync(), Is.Null);
} }
Assert.DoesNotThrowAsync(async () => await vm.UpdateMember(null)); Assert.DoesNotThrowAsync(async () => await vm.UpdateMember(null));
Member m; Member m;
using (var ctx = new AppDbContext()) { using (var ctx = new AppDbContext()) {
m = await ctx.FetchMembers(vm.MgNr, includeNotActive: true, includeContactInfo: true).SingleAsync(); m = await ctx.FetchMembers(vm.MgNr, includeContactInfo: true).SingleAsync();
} }
Assert.That(m, Is.Not.Null); Assert.That(m, Is.Not.Null);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(m.MgNr, Is.EqualTo(999)); Assert.That(m.MgNr, Is.EqualTo(999));
Assert.That(m.IsJuridicalPerson, Is.True); Assert.That(m.IsJuridicalPerson, Is.True);
Assert.That(m.Name, Is.EqualTo("Neue GmbH")); Assert.That(m.Name, Is.EqualTo("Neue GmbH"));
@@ -131,15 +131,15 @@ namespace Tests.UnitTests.ServiceTests {
Assert.That(m.PostalDest.AtPlz?.Plz, Is.EqualTo(2120)); Assert.That(m.PostalDest.AtPlz?.Plz, Is.EqualTo(2120));
Assert.That(m.PostalDest.AtPlz?.Ort.Name, Is.EqualTo("Wolkersdorf im Weinviertel")); Assert.That(m.PostalDest.AtPlz?.Ort.Name, Is.EqualTo("Wolkersdorf im Weinviertel"));
Assert.That(m.EmailAddresses.Select(a => (a.Nr, a.Address)), Is.EquivalentTo(new (int, string)[] { Assert.That(m.EmailAddresses.Select(a => (a.Nr, a.Address)), Is.EquivalentTo([
(1, "neue.gmbh@mail.com"), (1, "neue.gmbh@mail.com"),
(2, "norbert.neuling@mail.com"), (2, "norbert.neuling@mail.com"),
})); ]));
Assert.That(m.TelephoneNumbers.Select(n => (n.Nr, n.Type, n.Number, n.Comment)), Is.EquivalentTo(new (int, string, string, string?)[] { Assert.That(m.TelephoneNumbers.Select(n => (n.Nr, n.Type, n.Number, n.Comment)), Is.EquivalentTo([
(1, "landline", "+43 2245 9876", "Büro"), (1, "landline", "+43 2245 9876", "Büro"),
(2, "mobile", "+43 664 123456789", "Hr. Neuling"), (2, "mobile", "+43 664 123456789", "Hr. Neuling"),
(3, "fax", "+43 2245 9876-2", null), (3, "fax", "+43 2245 9876-2", null),
})); ]));
Assert.That(m.Iban, Is.EqualTo("AT971234567890123460")); Assert.That(m.Iban, Is.EqualTo("AT971234567890123460"));
Assert.That(m.Bic, Is.EqualTo("RLNWATWWWDF")); Assert.That(m.Bic, Is.EqualTo("RLNWATWWWDF"));
@@ -163,12 +163,12 @@ namespace Tests.UnitTests.ServiceTests {
Assert.That(m.ContactViaEmail, Is.True); Assert.That(m.ContactViaEmail, Is.True);
Assert.That(m.IsVollLieferant, Is.True); Assert.That(m.IsVollLieferant, Is.True);
Assert.That(m.IsFunktionär, Is.True); Assert.That(m.IsFunktionär, Is.True);
}); }
vm = new MemberAdminViewModel(); vm = new MemberAdminViewModel();
await InitViewModel(vm); await InitViewModel(vm);
Assert.DoesNotThrow(() => vm.FillInputs(m)); Assert.DoesNotThrow(() => vm.FillInputs(m));
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(vm.MgNr, Is.EqualTo(999)); Assert.That(vm.MgNr, Is.EqualTo(999));
Assert.That(vm.IsJuridicalPerson, Is.True); Assert.That(vm.IsJuridicalPerson, Is.True);
Assert.That(vm.Name, Is.EqualTo("Neue GmbH")); Assert.That(vm.Name, Is.EqualTo("Neue GmbH"));
@@ -177,11 +177,11 @@ namespace Tests.UnitTests.ServiceTests {
Assert.That(vm.Plz, Is.EqualTo(2120)); Assert.That(vm.Plz, Is.EqualTo(2120));
Assert.That(vm.Ort?.Ort.Name, Is.EqualTo("Wolkersdorf im Weinviertel")); Assert.That(vm.Ort?.Ort.Name, Is.EqualTo("Wolkersdorf im Weinviertel"));
Assert.That(vm.EmailAddresses, Is.EquivalentTo(new string?[] { Assert.That(vm.EmailAddresses, Is.EquivalentTo([
"neue.gmbh@mail.com", "neue.gmbh@mail.com",
"norbert.neuling@mail.com", "norbert.neuling@mail.com",
null, null, null, null, null, null, null null, null, null, null, null, null, null
})); ]));
Assert.That(vm.PhoneNrs, Is.EquivalentTo(new MemberAdminViewModel.PhoneNr?[] { Assert.That(vm.PhoneNrs, Is.EquivalentTo(new MemberAdminViewModel.PhoneNr?[] {
new(0, "+43 2245 9876", "Büro"), new(0, "+43 2245 9876", "Büro"),
new(1, "+43 664 123456789", "Hr. Neuling"), new(1, "+43 664 123456789", "Hr. Neuling"),
@@ -210,7 +210,7 @@ namespace Tests.UnitTests.ServiceTests {
Assert.That(vm.ContactViaEmail, Is.True); Assert.That(vm.ContactViaEmail, Is.True);
Assert.That(vm.IsVollLieferant, Is.True); Assert.That(vm.IsVollLieferant, Is.True);
Assert.That(vm.IsFunktionär, Is.True); Assert.That(vm.IsFunktionär, Is.True);
}); }
} }
[Test] [Test]
@@ -218,7 +218,7 @@ namespace Tests.UnitTests.ServiceTests {
var vm = new MemberAdminViewModel(); var vm = new MemberAdminViewModel();
await InitViewModel(vm); await InitViewModel(vm);
using (var ctx = new AppDbContext()) { using (var ctx = new AppDbContext()) {
vm.FillInputs(await ctx.FetchMembers(202, includeNotActive: true, includeContactInfo: true).SingleAsync()); vm.FillInputs(await ctx.FetchMembers(202, includeContactInfo: true).SingleAsync());
} }
Assert.That(vm.IsActive, Is.True); Assert.That(vm.IsActive, Is.True);
@@ -231,22 +231,22 @@ namespace Tests.UnitTests.ServiceTests {
Member m; Member m;
using (var ctx = new AppDbContext()) { using (var ctx = new AppDbContext()) {
m = await ctx.FetchMembers(202, includeNotActive: true, includeContactInfo: true).SingleAsync(); m = await ctx.FetchMembers(202, includeContactInfo: true).SingleAsync();
} }
Assert.That(m, Is.Not.Null); Assert.That(m, Is.Not.Null);
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(m.IsActive, Is.False); Assert.That(m.IsActive, Is.False);
Assert.That(m.ExitDateString, Is.EqualTo($"{exitDate:yyyy-MM-dd}")); Assert.That(m.ExitDateString, Is.EqualTo($"{exitDate:yyyy-MM-dd}"));
}); }
vm = new MemberAdminViewModel(); vm = new MemberAdminViewModel();
await InitViewModel(vm); await InitViewModel(vm);
Assert.DoesNotThrow(() => vm.FillInputs(m)); Assert.DoesNotThrow(() => vm.FillInputs(m));
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(vm.IsActive, Is.False); Assert.That(vm.IsActive, Is.False);
Assert.That(vm.ExitDate, Is.EqualTo($"{exitDate:dd.MM.yyyy}")); Assert.That(vm.ExitDate, Is.EqualTo($"{exitDate:dd.MM.yyyy}"));
}); }
} }
[Test] [Test]
@@ -254,59 +254,59 @@ namespace Tests.UnitTests.ServiceTests {
var vm = new MemberAdminViewModel(); var vm = new MemberAdminViewModel();
await InitViewModel(vm); await InitViewModel(vm);
using (var ctx = new AppDbContext()) { using (var ctx = new AppDbContext()) {
vm.FillInputs(await ctx.FetchMembers(203, includeNotActive: true, includeContactInfo: true).SingleAsync()); vm.FillInputs(await ctx.FetchMembers(203, includeContactInfo: true).SingleAsync());
} }
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(vm.MgNr, Is.EqualTo(203)); Assert.That(vm.MgNr, Is.EqualTo(203));
Assert.That(vm.EmailAddresses[0], Is.Not.Null); Assert.That(vm.EmailAddresses[0], Is.Not.Null);
Assert.That(vm.PhoneNrs[0], Is.Not.Null); Assert.That(vm.PhoneNrs[0], Is.Not.Null);
Assert.That(vm.BillingName, Is.Not.Null); Assert.That(vm.BillingName, Is.Not.Null);
}); }
vm.MgNr = 210; vm.MgNr = 210;
Assert.DoesNotThrowAsync(async () => await vm.UpdateMember(203)); Assert.DoesNotThrowAsync(async () => await vm.UpdateMember(203));
Member m; Member m;
using (var ctx = new AppDbContext()) { using (var ctx = new AppDbContext()) {
m = await ctx.FetchMembers(210, includeNotActive: true, includeContactInfo: true).SingleAsync(); m = await ctx.FetchMembers(210, includeContactInfo: true).SingleAsync();
} }
Assert.That(m, Is.Not.Null); Assert.That(m, Is.Not.Null);
vm = new MemberAdminViewModel(); vm = new MemberAdminViewModel();
await InitViewModel(vm); await InitViewModel(vm);
Assert.DoesNotThrow(() => vm.FillInputs(m)); Assert.DoesNotThrow(() => vm.FillInputs(m));
Assert.Multiple(() => { using (Assert.EnterMultipleScope()) {
Assert.That(vm.MgNr, Is.EqualTo(210)); Assert.That(vm.MgNr, Is.EqualTo(210));
Assert.That(vm.EmailAddresses[0], Is.Not.Null); Assert.That(vm.EmailAddresses[0], Is.Not.Null);
Assert.That(vm.PhoneNrs[0], Is.Not.Null); Assert.That(vm.PhoneNrs[0], Is.Not.Null);
Assert.That(vm.BillingName, Is.Not.Null); Assert.That(vm.BillingName, Is.Not.Null);
}); }
} }
[Test] [Test]
public async Task TestDelete_01_NoReferences() { public async Task TestDelete_01_NoReferences() {
using (var ctx = new AppDbContext()) { using (var ctx = new AppDbContext()) {
Assert.That(await ctx.FetchMembers(201, includeNotActive: true).SingleOrDefaultAsync(), Is.Not.Null); Assert.That(await ctx.FetchMembers(201).SingleOrDefaultAsync(), Is.Not.Null);
} }
Assert.DoesNotThrowAsync(async () => await MemberService.DeleteMember(201, false, false, false)); Assert.DoesNotThrowAsync(async () => await MemberService.DeleteMember(201, false, false, false));
using (var ctx = new AppDbContext()) { using (var ctx = new AppDbContext()) {
Assert.That(await ctx.FetchMembers(201, includeNotActive: true).SingleOrDefaultAsync(), Is.Null); Assert.That(await ctx.FetchMembers(201).SingleOrDefaultAsync(), Is.Null);
} }
} }
[Test] [Test]
public async Task TestDelete_02_AllReferences() { public async Task TestDelete_02_AllReferences() {
using (var ctx = new AppDbContext()) { using (var ctx = new AppDbContext()) {
Assert.That(await ctx.FetchMembers(204, includeNotActive: true).SingleOrDefaultAsync(), Is.Not.Null); Assert.That(await ctx.FetchMembers(204).SingleOrDefaultAsync(), Is.Not.Null);
} }
for (int i = 0; i < 7; i++) { for (int i = 0; i < 7; i++) {
Assert.ThrowsAsync<DbUpdateException>(async () => await MemberService.DeleteMember(204, (i & 1) != 0, (i & 2) != 0, (i & 4) != 0)); Assert.ThrowsAsync<DbUpdateException>(async () => await MemberService.DeleteMember(204, (i & 1) != 0, (i & 2) != 0, (i & 4) != 0));
using var ctx = new AppDbContext(); using var ctx = new AppDbContext();
Assert.That(await ctx.FetchMembers(204, includeNotActive: true).SingleOrDefaultAsync(), Is.Not.Null); Assert.That(await ctx.FetchMembers(204).SingleOrDefaultAsync(), Is.Not.Null);
} }
Assert.DoesNotThrowAsync(async () => await MemberService.DeleteMember(204, true, true, true)); Assert.DoesNotThrowAsync(async () => await MemberService.DeleteMember(204, true, true, true));
using (var ctx = new AppDbContext()) { using (var ctx = new AppDbContext()) {
Assert.That(await ctx.FetchMembers(204, includeNotActive: true).SingleOrDefaultAsync(), Is.Null); Assert.That(await ctx.FetchMembers(204).SingleOrDefaultAsync(), Is.Null);
} }
} }
} }