[#11] Tests: Add DeliveryServiceTest
All checks were successful
Test / Run tests (push) Successful in 1m56s
All checks were successful
Test / Run tests (push) Successful in 1m56s
This commit is contained in:
@ -7,9 +7,6 @@ using Elwig.Helpers;
|
||||
using Elwig.Helpers.Weighing;
|
||||
using System.Collections.Generic;
|
||||
using System.Windows.Threading;
|
||||
using System.Globalization;
|
||||
using System.Threading;
|
||||
using System.Windows.Markup;
|
||||
using System.Reflection;
|
||||
using Elwig.Helpers.Printing;
|
||||
using Elwig.Windows;
|
||||
@ -62,7 +59,7 @@ namespace Elwig {
|
||||
MainDispatcher = Dispatcher;
|
||||
Scales = [];
|
||||
CurrentApp = this;
|
||||
OverrideCulture();
|
||||
Utils.OverrideCulture();
|
||||
|
||||
var args = Environment.GetCommandLineArgs();
|
||||
if (args.Length >= 2) {
|
||||
@ -82,23 +79,6 @@ namespace Elwig {
|
||||
MainDispatcher.BeginInvoke(HintContextChange);
|
||||
}
|
||||
|
||||
private static void OverrideCulture() {
|
||||
var locale = new CultureInfo("de-AT", false);
|
||||
locale.NumberFormat.CurrencyGroupSeparator = Utils.GroupSeparator;
|
||||
locale.NumberFormat.NumberGroupSeparator = Utils.GroupSeparator;
|
||||
locale.NumberFormat.PercentGroupSeparator = Utils.GroupSeparator;
|
||||
CultureInfo.CurrentCulture = locale;
|
||||
CultureInfo.CurrentUICulture = locale;
|
||||
Thread.CurrentThread.CurrentCulture = locale;
|
||||
Thread.CurrentThread.CurrentUICulture = locale;
|
||||
CultureInfo.DefaultThreadCurrentCulture = locale;
|
||||
CultureInfo.DefaultThreadCurrentUICulture = locale;
|
||||
FrameworkElement.LanguageProperty.OverrideMetadata(
|
||||
typeof(FrameworkElement),
|
||||
new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.Name))
|
||||
);
|
||||
}
|
||||
|
||||
protected override async void OnStartup(StartupEventArgs evt) {
|
||||
Version = new Version(typeof(App).GetTypeInfo().Assembly.GetCustomAttribute<AssemblyInformationalVersionAttribute>()?.InformationalVersion.Split('+')[0] ?? "0.0.0");
|
||||
|
||||
|
@ -28,6 +28,9 @@ using LinqKit;
|
||||
using System.Linq.Expressions;
|
||||
using Elwig.Models;
|
||||
using Microsoft.Win32;
|
||||
using System.Globalization;
|
||||
using System.Threading;
|
||||
using System.Windows.Markup;
|
||||
|
||||
namespace Elwig.Helpers {
|
||||
public static partial class Utils {
|
||||
@ -118,6 +121,23 @@ namespace Elwig.Helpers {
|
||||
0x8201, 0x42C0, 0x4380, 0x8341, 0x4100, 0x81C1, 0x8081, 0x4040,
|
||||
];
|
||||
|
||||
public static void OverrideCulture() {
|
||||
var locale = new CultureInfo("de-AT", false);
|
||||
locale.NumberFormat.CurrencyGroupSeparator = Utils.GroupSeparator;
|
||||
locale.NumberFormat.NumberGroupSeparator = Utils.GroupSeparator;
|
||||
locale.NumberFormat.PercentGroupSeparator = Utils.GroupSeparator;
|
||||
CultureInfo.CurrentCulture = locale;
|
||||
CultureInfo.CurrentUICulture = locale;
|
||||
Thread.CurrentThread.CurrentCulture = locale;
|
||||
Thread.CurrentThread.CurrentUICulture = locale;
|
||||
CultureInfo.DefaultThreadCurrentCulture = locale;
|
||||
CultureInfo.DefaultThreadCurrentUICulture = locale;
|
||||
FrameworkElement.LanguageProperty.OverrideMetadata(
|
||||
typeof(FrameworkElement),
|
||||
new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.Name))
|
||||
);
|
||||
}
|
||||
|
||||
public static SerialPort OpenSerialConnection(string connection) {
|
||||
var m = SerialRegex.Match(connection);
|
||||
if (!m.Success)
|
||||
|
@ -462,7 +462,7 @@ namespace Elwig.Services {
|
||||
LNr = newLnr ?? oldDelivery!.LNr,
|
||||
ZwstId = vm.Branch!.ZwstId,
|
||||
LsNr = newLsNr ?? vm.LsNr!,
|
||||
MgNr = (int)vm.MgNr!,
|
||||
MgNr = vm.MgNr!.Value,
|
||||
Comment = string.IsNullOrEmpty(vm.Comment) ? null : vm.Comment,
|
||||
};
|
||||
|
||||
@ -474,7 +474,7 @@ namespace Elwig.Services {
|
||||
SortId = vm.WineVar!.SortId,
|
||||
AttrId = vm.WineAttr?.AttrId,
|
||||
CultId = vm.WineCult?.CultId,
|
||||
Kmw = (double)vm.GradationKmw!,
|
||||
Kmw = vm.GradationKmw!.Value,
|
||||
QualId = vm.WineQualityLevel!.QualId,
|
||||
HkId = vm.WineOrigin!.HkId,
|
||||
KgNr = vm.WineKg?.KgNr,
|
||||
@ -488,7 +488,7 @@ namespace Elwig.Services {
|
||||
Acid = vm.Acid,
|
||||
Comment = string.IsNullOrEmpty(vm.PartComment) ? null : vm.PartComment,
|
||||
|
||||
Weight = (int)vm.Weight!,
|
||||
Weight = vm.Weight!.Value,
|
||||
IsManualWeighing = vm.IsManualWeighing,
|
||||
ScaleId = vm.ScaleId,
|
||||
WeighingData = vm.WeighingData,
|
||||
@ -971,5 +971,13 @@ namespace Elwig.Services {
|
||||
|
||||
return (wGrid, gGrid);
|
||||
}
|
||||
|
||||
public static async Task DeleteDelivery(string lsnr) {
|
||||
using (var ctx = new AppDbContext()) {
|
||||
await ctx.Deliveries.Where(d => d.LsNr == lsnr).ExecuteDeleteAsync();
|
||||
await ctx.SaveChangesAsync();
|
||||
}
|
||||
App.HintContextChange();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -96,10 +96,16 @@ namespace Elwig.ViewModels {
|
||||
private IEnumerable<object> _wineCultSource = [];
|
||||
[ObservableProperty]
|
||||
private string? _gradationOeString;
|
||||
public double? GradationOe => double.TryParse(GradationOeString, out var oe) ? oe : null;
|
||||
public double? GradationOe {
|
||||
get => double.TryParse(GradationOeString, out var oe) ? oe : null;
|
||||
set => GradationOeString = $"{value:0}";
|
||||
}
|
||||
[ObservableProperty]
|
||||
private string? _gradationKmwString;
|
||||
public double? GradationKmw => double.TryParse(GradationKmwString, out var kmw) ? kmw : null;
|
||||
public double? GradationKmw {
|
||||
get => double.TryParse(GradationKmwString, out var kmw) ? kmw : null;
|
||||
set => GradationKmwString = $"{value:0.0}";
|
||||
}
|
||||
[ObservableProperty]
|
||||
private WineQualLevel? _wineQualityLevel;
|
||||
[ObservableProperty]
|
||||
@ -152,10 +158,16 @@ namespace Elwig.ViewModels {
|
||||
private string? _partComment;
|
||||
[ObservableProperty]
|
||||
private string? _temperatureString;
|
||||
public double? Temperature => double.TryParse(TemperatureString, out var t) ? t : null;
|
||||
public double? Temperature {
|
||||
get => double.TryParse(TemperatureString, out var t) ? t : null;
|
||||
set => TemperatureString = $"{value:0.0}";
|
||||
}
|
||||
[ObservableProperty]
|
||||
private string? _acidString;
|
||||
public double? Acid => double.TryParse(AcidString, out var a) ? a : null;
|
||||
public double? Acid {
|
||||
get => double.TryParse(AcidString, out var a) ? a : null;
|
||||
set => AcidString = $"{value:0.0}";
|
||||
}
|
||||
[ObservableProperty]
|
||||
private bool _isLesewagen;
|
||||
[ObservableProperty]
|
||||
|
@ -172,9 +172,11 @@ namespace Elwig.Windows {
|
||||
Title = $"Traubentransportscheinliste (BKI) speichern unter - Elwig"
|
||||
};
|
||||
if (d.ShowDialog() == true) {
|
||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||
Mouse.OverrideCursor = Cursors.Wait;
|
||||
await Task.Run(async () => {
|
||||
using var file = new Bki(d.FileName);
|
||||
await file.ExportAsync(year);
|
||||
});
|
||||
Mouse.OverrideCursor = null;
|
||||
}
|
||||
}
|
||||
@ -933,12 +935,13 @@ namespace Elwig.Windows {
|
||||
"Lieferung löschen", MessageBoxButton.OKCancel, MessageBoxImage.Warning, MessageBoxResult.Cancel);
|
||||
if (r == MessageBoxResult.OK) {
|
||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||
using (var ctx = new AppDbContext()) {
|
||||
ctx.Remove(d);
|
||||
await ctx.SaveChangesAsync();
|
||||
try {
|
||||
await DeliveryService.DeleteDelivery(d.LsNr);
|
||||
} catch (Exception exc) {
|
||||
var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message;
|
||||
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
|
||||
MessageBox.Show(str, "Lieferung löschen", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
}
|
||||
await RefreshList();
|
||||
await RefreshDeliveryParts();
|
||||
Mouse.OverrideCursor = null;
|
||||
}
|
||||
}
|
||||
|
@ -30,6 +30,11 @@ namespace Tests {
|
||||
await BillingData.Init();
|
||||
}
|
||||
|
||||
[OneTimeSetUp]
|
||||
public void Setup_4_Culture() {
|
||||
Utils.OverrideCulture();
|
||||
}
|
||||
|
||||
[OneTimeTearDown]
|
||||
public async Task TeardownDatabase() {
|
||||
AppDbContext.ConnectionStringOverride = null;
|
||||
|
@ -7,3 +7,5 @@ DELETE FROM season;
|
||||
DELETE FROM area_commitment;
|
||||
DELETE FROM area_commitment_type;
|
||||
DELETE FROM member WHERE mgnr >= 200;
|
||||
DELETE FROM wine_cultivation;
|
||||
DELETE FROM wine_attribute;
|
||||
|
@ -1,5 +1,12 @@
|
||||
-- inserts for ServiceTests
|
||||
|
||||
|
||||
INSERT INTO wine_cultivation (cultid, name, description) VALUES
|
||||
('B', 'Bio', 'AT-BIO-302');
|
||||
|
||||
INSERT INTO wine_attribute (attrid, name, active, max_kg_per_ha, strict, fill_lower) VALUES
|
||||
('K', 'Kabinett', TRUE, NULL, FALSE, 0);
|
||||
|
||||
INSERT INTO member (mgnr, given_name, name, zwstid, volllieferant, buchführend, country, postal_dest, address, default_kgnr, iban, lfbis_nr, ustid_nr) VALUES
|
||||
(201, 'Theodor', 'Testbauer', 'X', FALSE, FALSE, 40, 222303524, 'Teststraße 1', 06109, 'AT811234567890123457', '0123463', NULL ),
|
||||
(202, 'Thomas', 'Testmann', 'X', FALSE, FALSE, 40, 222303524, 'Teststraße 2', 06109, 'AT541234567890123458', '0123471', 'ATU12345684'),
|
||||
@ -30,21 +37,93 @@ INSERT INTO area_commitment (fbnr, mgnr, vtrgid, cultid, area, kgnr, gstnr, rdnr
|
||||
|
||||
|
||||
INSERT INTO season (year, currency, min_kg_per_bs, max_kg_per_bs, penalty_per_kg, penalty_amount, penalty_none, start_date, end_date) VALUES
|
||||
(2021, 'EUR', 2000, 4000, NULL, NULL, NULL, NULL, NULL);
|
||||
(2021, 'EUR', 2000, 4000, NULL, NULL, NULL, NULL, NULL),
|
||||
(2022, 'EUR', 2000, 4000, NULL, NULL, NULL, NULL, NULL),
|
||||
(2023, 'EUR', 2000, 4000, NULL, NULL, NULL, NULL, NULL);
|
||||
|
||||
INSERT INTO modifier (year, modid, ordering, name, abs, rel, active) VALUES
|
||||
(2021, 'S', 0, 'Geschädigte Trauben', NULL, -0.1, TRUE);
|
||||
(2021, 'S', 0, 'Geschädigte Trauben', NULL, -0.1, TRUE),
|
||||
(2022, 'S', 0, 'Geschädigte Trauben', NULL, -0.1, TRUE);
|
||||
|
||||
INSERT INTO delivery (mgnr, year, did, date, time, zwstid, lnr) VALUES
|
||||
(203, 2021, 1, '2021-10-01', NULL, 'X', 1),
|
||||
(204, 2021, 2, '2021-10-01', NULL, 'X', 2);
|
||||
(204, 2021, 2, '2021-10-01', NULL, 'X', 2),
|
||||
(101, 2022, 1, '2022-09-29', NULL, 'X', 1),
|
||||
(101, 2022, 2, '2022-09-30', NULL, 'X', 1),
|
||||
(101, 2023, 1, '2023-10-01', NULL, 'X', 1),
|
||||
(101, 2023, 2, '2023-10-01', NULL, 'X', 2),
|
||||
(101, 2023, 3, '2023-10-01', NULL, 'X', 3),
|
||||
(101, 2023, 4, '2023-10-01', NULL, 'X', 4),
|
||||
(101, 2023, 5, '2023-10-02', NULL, 'X', 1),
|
||||
(101, 2023, 6, '2023-10-03', NULL, 'X', 1),
|
||||
(101, 2023, 7, '2023-10-04', NULL, 'X', 1),
|
||||
(101, 2023, 8, '2023-10-05', NULL, 'X', 1),
|
||||
(101, 2023, 9, '2023-10-06', NULL, 'X', 1),
|
||||
(101, 2023, 10, '2023-10-06', NULL, 'X', 2),
|
||||
(101, 2023, 11, '2023-10-07', NULL, 'X', 1),
|
||||
(101, 2023, 12, '2023-10-07', NULL, 'X', 2),
|
||||
(101, 2023, 13, '2023-10-08', NULL, 'X', 1),
|
||||
(101, 2023, 14, '2023-10-08', NULL, 'X', 2),
|
||||
(101, 2023, 15, '2023-10-09', NULL, 'X', 1),
|
||||
(101, 2023, 16, '2023-10-09', NULL, 'X', 2),
|
||||
(101, 2023, 17, '2023-10-10', NULL, 'X', 1),
|
||||
(101, 2023, 18, '2023-10-10', NULL, 'X', 2),
|
||||
(101, 2023, 19, '2023-10-10', NULL, 'X', 3);
|
||||
|
||||
INSERT INTO delivery_part (year, did, dpnr, sortid, attrid, cultid, weight, kmw, qualid, hkid, kgnr, net_weight, manual_weighing, spl_check, scale_id, weighing_data, weighing_reason) VALUES
|
||||
(2021, 1, 1, 'GV', NULL, NULL, 3500, 15, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2021, 2, 1, 'GV', NULL, NULL, 4000, 17, 'KAB', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2021, 2, 2, 'GV', NULL, NULL, 4000, 16, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL);
|
||||
(2021, 1, 1, 'GV', NULL, NULL, 3500, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2021, 2, 1, 'GV', NULL, NULL, 4000, 17.0, 'KAB', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2021, 2, 2, 'GV', NULL, NULL, 4000, 16.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2022, 1, 1, 'GV', NULL, NULL, 3700, 16.5, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2022, 1, 2, 'GV', NULL, NULL, 3700, 16.5, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 1, 1, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 1, 2, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 1, 3, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 2, 1, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 2, 2, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 2, 3, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 3, 1, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 3, 2, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 3, 3, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 4, 1, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 4, 2, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 4, 3, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 5, 1, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 5, 2, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 5, 3, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 6, 1, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 6, 2, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 6, 3, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 7, 1, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 7, 2, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 7, 3, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 8, 1, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 8, 2, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 8, 3, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 9, 1, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 9, 2, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 9, 3, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 10, 1, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 11, 1, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 11, 2, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 11, 3, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 12, 1, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 13, 1, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 13, 2, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 13, 3, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 14, 1, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 15, 1, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 15, 2, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 15, 3, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 16, 1, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 17, 1, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 18, 1, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2023, 19, 1, 'GV', NULL, NULL, 1000, 15.0, 'QUW', 'WLNO', 15224, TRUE, FALSE, FALSE, NULL, NULL, NULL);
|
||||
|
||||
INSERT INTO delivery_part_modifier (year, did, dpnr, modid) VALUES
|
||||
(2021, 1, 1, 'S'),
|
||||
(2021, 2, 2, 'S');
|
||||
(2021, 2, 2, 'S'),
|
||||
(2022, 1, 2, 'S');
|
||||
|
||||
INSERT INTO payment_variant (year, avnr, name, date, transfer_date, test_variant, calc_time, comment, data) VALUES
|
||||
(2021, 1, 'Probevariante', '2022-01-15', '2022-01-15', TRUE, NULL, NULL, '{"mode":"elwig","version":1,"payment":0.5,"curves":[]}');
|
||||
|
847
Tests/ServiceTests/DeliveryServiceTest.cs
Normal file
847
Tests/ServiceTests/DeliveryServiceTest.cs
Normal file
@ -0,0 +1,847 @@
|
||||
using Elwig.Helpers;
|
||||
using Elwig.Models.Entities;
|
||||
using Elwig.Services;
|
||||
using Elwig.ViewModels;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace Tests.ServiceTests {
|
||||
[TestFixture]
|
||||
public class DeliveryServiceTest {
|
||||
|
||||
private static async Task InitViewModel(DeliveryAdminViewModel vm) {
|
||||
using var ctx = new AppDbContext();
|
||||
vm.MemberSource = await ctx.Members.ToListAsync();
|
||||
vm.BranchSource = await ctx.Branches.ToListAsync();
|
||||
vm.WineVarSource = await ctx.WineVarieties.ToListAsync();
|
||||
List<object> attrs = (await ctx.WineAttributes.ToListAsync()).Cast<object>().ToList();
|
||||
attrs.Insert(0, new NullItem());
|
||||
vm.WineAttrSource = attrs;
|
||||
List<object> cults = (await ctx.WineCultivations.ToListAsync()).Cast<object>().ToList();
|
||||
cults.Insert(0, new NullItem());
|
||||
vm.WineCultSource = cults;
|
||||
vm.WineQualityLevelSource = await ctx.WineQualityLevels.ToListAsync();
|
||||
vm.WineOriginSource = await ctx.WineOrigins.ToListAsync();
|
||||
vm.WineKgSource = await ctx.Katastralgemeinden.ToListAsync();
|
||||
vm.ModifiersSource = await ctx.Modifiers.Where(m => m.Year == 2022).ToListAsync();
|
||||
}
|
||||
|
||||
private static async Task<Delivery?> GetDelivery(string lsnr) {
|
||||
using var ctx = new AppDbContext();
|
||||
return await ctx.Deliveries
|
||||
.Where(d => d.LsNr == lsnr)
|
||||
.Include(d => d.Parts)
|
||||
.ThenInclude(p => p.PartModifiers)
|
||||
.ThenInclude(m => m.Modifier)
|
||||
.AsSplitQuery()
|
||||
.FirstOrDefaultAsync();
|
||||
}
|
||||
|
||||
private static DeliveryPart[] GetParts(Delivery d) {
|
||||
return [.. d.Parts.OrderBy(p => p.DPNr)];
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestCreate_01_Minimal() {
|
||||
var vm = new DeliveryAdminViewModel();
|
||||
await InitViewModel(vm);
|
||||
|
||||
vm.Date = "01.10.2022";
|
||||
vm.Branch = vm.BranchSource.First();
|
||||
vm.MgNr = 101;
|
||||
vm.Member = vm.MemberSource.First(m => m.MgNr == vm.MgNr);
|
||||
vm.SortId = "GV";
|
||||
vm.WineVar = vm.WineVarSource.First(v => v.SortId == vm.SortId);
|
||||
vm.GradationKmw = 15.0;
|
||||
vm.GradationOe = 73;
|
||||
vm.Weight = 1234;
|
||||
vm.IsManualWeighing = true;
|
||||
vm.IsNetWeight = false;
|
||||
vm.WineQualityLevel = vm.WineQualityLevelSource.First(l => l.QualId == "QUW");
|
||||
vm.WineOrigin = vm.WineOriginSource.First(o => o.HkId == "WLNO");
|
||||
|
||||
var p1 = await vm.UpdateDeliveryPart(2022, null, null, false, false, true);
|
||||
Assert.That(p1.Delivery.LsNr, Is.EqualTo("20221001X001"));
|
||||
|
||||
var d = await GetDelivery("20221001X001");
|
||||
|
||||
Assert.That(d, Is.Not.Null);
|
||||
Assert.That(d.Parts, Has.Count.EqualTo(1));
|
||||
var p = d.Parts.First();
|
||||
Assert.That(p, Is.Not.Null);
|
||||
Assert.Multiple(() => {
|
||||
Assert.That(d.LsNr, Is.EqualTo("20221001X001"));
|
||||
Assert.That(d.Date, Is.EqualTo(new DateOnly(2022, 10, 1)));
|
||||
Assert.That(d.ZwstId, Is.EqualTo("X"));
|
||||
Assert.That(d.MgNr, Is.EqualTo(101));
|
||||
Assert.That(p.SortId, Is.EqualTo("GV"));
|
||||
Assert.That(p.AttrId, Is.Null);
|
||||
Assert.That(p.CultId, Is.Null);
|
||||
Assert.That(p.Kmw, Is.EqualTo(15.0));
|
||||
Assert.That(p.Oe, Is.EqualTo(73));
|
||||
Assert.That(p.QualId, Is.EqualTo("QUW"));
|
||||
Assert.That(p.Weight, Is.EqualTo(1234));
|
||||
Assert.That(p.IsNetWeight, Is.False);
|
||||
Assert.That(p.IsManualWeighing, Is.True);
|
||||
Assert.That(p.HkId, Is.EqualTo("WLNO"));
|
||||
});
|
||||
|
||||
vm = new DeliveryAdminViewModel();
|
||||
await InitViewModel(vm);
|
||||
Assert.DoesNotThrow(() => {
|
||||
vm.FillInputs(d);
|
||||
vm.FillInputs(p);
|
||||
});
|
||||
Assert.Multiple(() => {
|
||||
Assert.That(vm.LsNr, Is.EqualTo("20221001X001"));
|
||||
Assert.That(vm.Date, Is.EqualTo("01.10.2022"));
|
||||
Assert.That(vm.Branch?.ZwstId, Is.EqualTo("X"));
|
||||
Assert.That(vm.MgNr, Is.EqualTo(101));
|
||||
Assert.That(vm.SortId, Is.EqualTo("GV"));
|
||||
Assert.That(vm.WineAttr?.AttrId, Is.Null);
|
||||
Assert.That(vm.WineCult?.CultId, Is.Null);
|
||||
Assert.That(vm.GradationKmw, Is.EqualTo(15.0));
|
||||
Assert.That(vm.WineQualityLevel?.QualId, Is.EqualTo("QUW"));
|
||||
Assert.That(vm.Weight, Is.EqualTo(1234));
|
||||
Assert.That(vm.IsNetWeight, Is.False);
|
||||
Assert.That(vm.IsManualWeighing, Is.True);
|
||||
Assert.That(vm.WineOrigin?.HkId, Is.EqualTo("WLNO"));
|
||||
});
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestCreate_02_Advanced() {
|
||||
var vm = new DeliveryAdminViewModel();
|
||||
await InitViewModel(vm);
|
||||
|
||||
vm.Date = "02.10.2022";
|
||||
vm.Branch = vm.BranchSource.First();
|
||||
vm.MgNr = 102;
|
||||
vm.Member = vm.MemberSource.First(m => m.MgNr == vm.MgNr);
|
||||
vm.SortId = "ZW";
|
||||
vm.WineVar = vm.WineVarSource.First(v => v.SortId == vm.SortId);
|
||||
vm.WineAttr = vm.WineAttrSource.Skip(1).First() as WineAttr;
|
||||
vm.WineCult = vm.WineCultSource.Skip(1).First() as WineCult;
|
||||
vm.GradationKmw = 15.9;
|
||||
vm.GradationOe = 78;
|
||||
vm.Weight = 3456;
|
||||
vm.IsManualWeighing = false;
|
||||
vm.IsNetWeight = true;
|
||||
vm.WeighingData = "{}";
|
||||
vm.WineQualityLevel = vm.WineQualityLevelSource.First(l => l.QualId == "QUW");
|
||||
vm.WineOrigin = vm.WineOriginSource.First(o => o.HkId == "WLNO");
|
||||
vm.Modifiers.Add(vm.ModifiersSource.First());
|
||||
|
||||
var p1 = await vm.UpdateDeliveryPart(2022, null, null, false, false, true);
|
||||
Assert.That(p1.Delivery.LsNr, Is.EqualTo("20221002X001"));
|
||||
|
||||
var d = await GetDelivery("20221002X001");
|
||||
|
||||
Assert.That(d, Is.Not.Null);
|
||||
Assert.That(d.Parts, Has.Count.EqualTo(1));
|
||||
var p = d.Parts.First();
|
||||
Assert.That(p, Is.Not.Null);
|
||||
Assert.Multiple(() => {
|
||||
Assert.That(d.LsNr, Is.EqualTo("20221002X001"));
|
||||
Assert.That(d.Date, Is.EqualTo(new DateOnly(2022, 10, 2)));
|
||||
Assert.That(d.ZwstId, Is.EqualTo("X"));
|
||||
Assert.That(d.MgNr, Is.EqualTo(102));
|
||||
Assert.That(p.SortId, Is.EqualTo("ZW"));
|
||||
Assert.That(p.AttrId, Is.Not.Null);
|
||||
Assert.That(p.CultId, Is.Not.Null);
|
||||
Assert.That(p.Kmw, Is.EqualTo(15.9));
|
||||
Assert.That(p.Oe, Is.EqualTo(78));
|
||||
Assert.That(p.QualId, Is.EqualTo("QUW"));
|
||||
Assert.That(p.Weight, Is.EqualTo(3456));
|
||||
Assert.That(p.IsNetWeight, Is.True);
|
||||
Assert.That(p.IsManualWeighing, Is.False);
|
||||
Assert.That(p.WeighingData, Is.EqualTo("{}"));
|
||||
Assert.That(p.HkId, Is.EqualTo("WLNO"));
|
||||
Assert.That(p.Modifiers.Count(), Is.EqualTo(1));
|
||||
});
|
||||
|
||||
vm = new DeliveryAdminViewModel();
|
||||
await InitViewModel(vm);
|
||||
Assert.DoesNotThrow(() => {
|
||||
vm.FillInputs(d);
|
||||
vm.FillInputs(p);
|
||||
});
|
||||
Assert.Multiple(() => {
|
||||
Assert.That(vm.LsNr, Is.EqualTo("20221002X001"));
|
||||
Assert.That(vm.Date, Is.EqualTo("02.10.2022"));
|
||||
Assert.That(vm.Branch?.ZwstId, Is.EqualTo("X"));
|
||||
Assert.That(vm.MgNr, Is.EqualTo(102));
|
||||
Assert.That(vm.SortId, Is.EqualTo("ZW"));
|
||||
Assert.That(vm.WineAttr?.AttrId, Is.Not.Null);
|
||||
Assert.That(vm.WineCult?.CultId, Is.Not.Null);
|
||||
Assert.That(vm.GradationKmw, Is.EqualTo(15.9));
|
||||
Assert.That(vm.WineQualityLevel?.QualId, Is.EqualTo("QUW"));
|
||||
Assert.That(vm.Weight, Is.EqualTo(3456));
|
||||
Assert.That(vm.IsNetWeight, Is.True);
|
||||
Assert.That(vm.IsManualWeighing, Is.False);
|
||||
Assert.That(vm.WeighingData, Is.EqualTo("{}"));
|
||||
Assert.That(vm.WineOrigin?.HkId, Is.EqualTo("WLNO"));
|
||||
Assert.That(vm.Modifiers, Has.Count.EqualTo(1));
|
||||
});
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestCreate_03_TwoParts() {
|
||||
var vm = new DeliveryAdminViewModel();
|
||||
await InitViewModel(vm);
|
||||
|
||||
vm.Date = "03.10.2022";
|
||||
vm.Branch = vm.BranchSource.First();
|
||||
vm.MgNr = 101;
|
||||
vm.Member = vm.MemberSource.First(m => m.MgNr == vm.MgNr);
|
||||
vm.SortId = "GV";
|
||||
vm.WineVar = vm.WineVarSource.First(v => v.SortId == vm.SortId);
|
||||
vm.GradationKmw = 15.0;
|
||||
vm.GradationOe = 73;
|
||||
vm.WineQualityLevel = vm.WineQualityLevelSource.First(l => l.QualId == "QUW");
|
||||
vm.Weight = 1234;
|
||||
vm.IsManualWeighing = true;
|
||||
vm.IsNetWeight = true;
|
||||
vm.WineOrigin = vm.WineOriginSource.First(o => o.HkId == "WLNO");
|
||||
var p1 = await vm.UpdateDeliveryPart(2022, null, null, false, false, true);
|
||||
|
||||
Assert.That(p1.Delivery.LsNr, Is.EqualTo("20221003X001"));
|
||||
vm.FillInputs(p1.Delivery);
|
||||
|
||||
vm.SortId = "WR";
|
||||
vm.WineVar = vm.WineVarSource.First(v => v.SortId == vm.SortId);
|
||||
vm.GradationKmw = 18.0;
|
||||
vm.GradationOe = 89;
|
||||
vm.WineQualityLevel = vm.WineQualityLevelSource.First(l => l.QualId == "KAB");
|
||||
vm.Weight = 2345;
|
||||
var p2 = await vm.UpdateDeliveryPart(p1.Year, p1.DId, null, false, false, true);
|
||||
|
||||
Assert.That(p2.Delivery.LsNr, Is.EqualTo("20221003X001"));
|
||||
|
||||
var d = await GetDelivery("20221003X001");
|
||||
|
||||
Assert.That(d, Is.Not.Null);
|
||||
Assert.Multiple(() => {
|
||||
Assert.That(d.Parts, Has.Count.EqualTo(2));
|
||||
Assert.That(d.MgNr, Is.EqualTo(101));
|
||||
});
|
||||
var p = d.Parts.First();
|
||||
Assert.That(p, Is.Not.Null);
|
||||
Assert.Multiple(() => {
|
||||
Assert.That(p.DPNr, Is.EqualTo(1));
|
||||
Assert.That(p.SortId, Is.EqualTo("GV"));
|
||||
});
|
||||
p = d.Parts.Skip(1).First();
|
||||
Assert.That(p, Is.Not.Null);
|
||||
Assert.Multiple(() => {
|
||||
Assert.That(p.DPNr, Is.EqualTo(2));
|
||||
Assert.That(p.SortId, Is.EqualTo("WR"));
|
||||
});
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestCreate_04_ChangeMember() {
|
||||
var vm = new DeliveryAdminViewModel();
|
||||
await InitViewModel(vm);
|
||||
|
||||
vm.Date = "04.10.2022";
|
||||
vm.Branch = vm.BranchSource.First();
|
||||
vm.MgNr = 101;
|
||||
vm.Member = vm.MemberSource.First(m => m.MgNr == vm.MgNr);
|
||||
vm.SortId = "GV";
|
||||
vm.WineVar = vm.WineVarSource.First(v => v.SortId == vm.SortId);
|
||||
vm.GradationKmw = 15.0;
|
||||
vm.GradationOe = 73;
|
||||
vm.WineQualityLevel = vm.WineQualityLevelSource.First(l => l.QualId == "QUW");
|
||||
vm.Weight = 1234;
|
||||
vm.IsManualWeighing = true;
|
||||
vm.IsNetWeight = true;
|
||||
vm.WineOrigin = vm.WineOriginSource.First(o => o.HkId == "WLNO");
|
||||
var p1 = await vm.UpdateDeliveryPart(2022, null, null, false, false, true);
|
||||
|
||||
Assert.That(p1.Delivery.LsNr, Is.EqualTo("20221004X001"));
|
||||
vm.FillInputs(p1.Delivery);
|
||||
|
||||
vm.MgNr = 102;
|
||||
vm.Member = vm.MemberSource.First(m => m.MgNr == vm.MgNr);
|
||||
vm.SortId = "GV";
|
||||
vm.WineVar = vm.WineVarSource.First(v => v.SortId == vm.SortId);
|
||||
vm.GradationKmw = 15.0;
|
||||
vm.GradationOe = 73;
|
||||
vm.WineQualityLevel = vm.WineQualityLevelSource.First(l => l.QualId == "QUW");
|
||||
vm.Weight = 1234;
|
||||
vm.IsManualWeighing = true;
|
||||
vm.IsNetWeight = true;
|
||||
vm.WineOrigin = vm.WineOriginSource.First(o => o.HkId == "WLNO");
|
||||
|
||||
var p2 = await vm.UpdateDeliveryPart(p1.Year, p1.DId, null, false, false, true);
|
||||
|
||||
Assert.That(p2.Delivery.LsNr, Is.EqualTo("20221004X001"));
|
||||
|
||||
var d = await GetDelivery("20221004X001");
|
||||
|
||||
Assert.That(d, Is.Not.Null);
|
||||
Assert.Multiple(() => {
|
||||
Assert.That(d.Parts, Has.Count.EqualTo(2));
|
||||
Assert.That(d.MgNr, Is.EqualTo(102));
|
||||
});
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestCreate_05_LNrChanged() {
|
||||
var vm = new DeliveryAdminViewModel();
|
||||
await InitViewModel(vm);
|
||||
|
||||
vm.Date = "29.09.2022";
|
||||
vm.Branch = vm.BranchSource.First();
|
||||
vm.LsNr = "20220929X001"; // "old" LNr, simulated change in DB
|
||||
vm.MgNr = 101;
|
||||
vm.Member = vm.MemberSource.First(m => m.MgNr == vm.MgNr);
|
||||
vm.SortId = "GV";
|
||||
vm.WineVar = vm.WineVarSource.First(v => v.SortId == vm.SortId);
|
||||
vm.GradationKmw = 15.0;
|
||||
vm.GradationOe = 73;
|
||||
vm.WineQualityLevel = vm.WineQualityLevelSource.First(l => l.QualId == "QUW");
|
||||
vm.Weight = 1234;
|
||||
vm.IsManualWeighing = true;
|
||||
vm.IsNetWeight = true;
|
||||
vm.WineOrigin = vm.WineOriginSource.First(o => o.HkId == "WLNO");
|
||||
var p1 = await vm.UpdateDeliveryPart(2022, null, null, false, false, true);
|
||||
|
||||
Assert.That(p1.Delivery.LsNr, Is.EqualTo("20220929X002"));
|
||||
|
||||
var d = GetDelivery("20220929X002");
|
||||
Assert.That(d, Is.Not.Null);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestUpdate_01_Simple() {
|
||||
var vm = new DeliveryAdminViewModel();
|
||||
await InitViewModel(vm);
|
||||
|
||||
var d = await GetDelivery("20231010X001");
|
||||
Assert.That(d, Is.Not.Null);
|
||||
var p = d.Parts.First();
|
||||
Assert.That(p, Is.Not.Null);
|
||||
Assert.DoesNotThrow(() => {
|
||||
vm.FillInputs(d);
|
||||
vm.FillInputs(p);
|
||||
});
|
||||
|
||||
vm.SortId = "WR";
|
||||
vm.WineVar = vm.WineVarSource.First(v => v.SortId == vm.SortId);
|
||||
vm.GradationKmw = 15.9;
|
||||
vm.GradationOe = 79;
|
||||
|
||||
Assert.DoesNotThrowAsync(async () => await DeliveryService.UpdateDeliveryPart(vm, p.Year, p.DId, p.DPNr, false, false, true));
|
||||
|
||||
d = await GetDelivery("20231010X001");
|
||||
Assert.That(d, Is.Not.Null);
|
||||
p = d.Parts.First();
|
||||
Assert.That(p, Is.Not.Null);
|
||||
|
||||
vm = new DeliveryAdminViewModel();
|
||||
await InitViewModel(vm);
|
||||
Assert.DoesNotThrow(() => {
|
||||
vm.FillInputs(d);
|
||||
vm.FillInputs(p);
|
||||
});
|
||||
Assert.Multiple(() => {
|
||||
Assert.That(vm.SortId, Is.EqualTo("WR"));
|
||||
Assert.That(vm.GradationKmw, Is.EqualTo(15.9));
|
||||
});
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestUpdate_02_Member() {
|
||||
var vm = new DeliveryAdminViewModel();
|
||||
await InitViewModel(vm);
|
||||
|
||||
var d = await GetDelivery("20231010X002");
|
||||
Assert.That(d, Is.Not.Null);
|
||||
var p = d.Parts.First();
|
||||
Assert.That(p, Is.Not.Null);
|
||||
Assert.DoesNotThrow(() => {
|
||||
vm.FillInputs(d);
|
||||
vm.FillInputs(p);
|
||||
});
|
||||
Assert.That(d.MgNr, Is.EqualTo(101));
|
||||
|
||||
vm.SortId = "GV";
|
||||
vm.WineVar = vm.WineVarSource.First(v => v.SortId == vm.SortId);
|
||||
vm.MgNr = 102;
|
||||
vm.Member = vm.MemberSource.First(m => m.MgNr == vm.MgNr);
|
||||
|
||||
Assert.DoesNotThrowAsync(async () => await DeliveryService.UpdateDeliveryPart(vm, p.Year, p.DId, p.DPNr, false, false, true));
|
||||
|
||||
d = await GetDelivery("20231010X002");
|
||||
Assert.That(d, Is.Not.Null);
|
||||
Assert.That(d.MgNr, Is.EqualTo(102));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestUpdate_03_DateAndTime() {
|
||||
var vm = new DeliveryAdminViewModel();
|
||||
await InitViewModel(vm);
|
||||
|
||||
var d = await GetDelivery("20231015X001");
|
||||
Assert.That(d, Is.Null);
|
||||
d = await GetDelivery("20231010X003");
|
||||
Assert.That(d, Is.Not.Null);
|
||||
var p = d.Parts.First();
|
||||
Assert.That(p, Is.Not.Null);
|
||||
Assert.DoesNotThrow(() => {
|
||||
vm.FillInputs(d);
|
||||
vm.FillInputs(p);
|
||||
});
|
||||
Assert.That(d.MgNr, Is.EqualTo(101));
|
||||
|
||||
vm.SortId = "GV";
|
||||
vm.WineVar = vm.WineVarSource.First(v => v.SortId == vm.SortId);
|
||||
vm.Date = "15.10.2023";
|
||||
vm.Time = "12:00";
|
||||
|
||||
Assert.DoesNotThrowAsync(async () => await DeliveryService.UpdateDeliveryPart(vm, p.Year, p.DId, p.DPNr, true, true, false));
|
||||
|
||||
d = await GetDelivery("20231010X003");
|
||||
Assert.That(d, Is.Null);
|
||||
d = await GetDelivery("20231015X001");
|
||||
Assert.That(d, Is.Not.Null);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestSplit_01_Depreciate_One() {
|
||||
var d = await GetDelivery("20231001X001");
|
||||
Assert.That(d, Is.Not.Null);
|
||||
Assert.Multiple(() => {
|
||||
var ps = GetParts(d);
|
||||
Assert.That(ps, Has.Length.EqualTo(3));
|
||||
Assert.That(ps[0].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps[0].QualId, Is.Not.EqualTo("WEI"));
|
||||
Assert.That(ps[1].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]));
|
||||
d = await GetDelivery("20231001X001");
|
||||
Assert.That(d, Is.Not.Null);
|
||||
Assert.Multiple(() => {
|
||||
var ps = GetParts(d);
|
||||
Assert.That(ps, Has.Length.EqualTo(3));
|
||||
Assert.That(ps[0].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps[0].QualId, Is.EqualTo("WEI"));
|
||||
Assert.That(ps[1].QualId, Is.Not.EqualTo("WEI"));
|
||||
Assert.That(ps[2].QualId, Is.Not.EqualTo("WEI"));
|
||||
});
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestSplit_02_Depreciate_Partial() {
|
||||
var d = await GetDelivery("20231001X002");
|
||||
Assert.That(d, Is.Not.Null);
|
||||
Assert.Multiple(() => {
|
||||
var ps = GetParts(d);
|
||||
Assert.That(ps, Has.Length.EqualTo(3));
|
||||
Assert.That(ps[0].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps[0].QualId, Is.Not.EqualTo("WEI"));
|
||||
Assert.That(ps[1].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]));
|
||||
d = await GetDelivery("20231001X002");
|
||||
Assert.That(d, Is.Not.Null);
|
||||
Assert.Multiple(() => {
|
||||
var ps = GetParts(d);
|
||||
Assert.That(ps, Has.Length.EqualTo(4));
|
||||
Assert.That(ps[0].Weight, Is.EqualTo(400));
|
||||
Assert.That(ps[0].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[3].Weight, Is.EqualTo(600));
|
||||
Assert.That(ps[3].QualId, Is.EqualTo("WEI"));
|
||||
});
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestSplit_03_Depreciate_Mixed() {
|
||||
var d = await GetDelivery("20231001X003");
|
||||
Assert.That(d, Is.Not.Null);
|
||||
Assert.Multiple(() => {
|
||||
var ps = GetParts(d);
|
||||
Assert.That(ps, Has.Length.EqualTo(3));
|
||||
Assert.That(ps[0].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps[0].QualId, Is.Not.EqualTo("WEI"));
|
||||
Assert.That(ps[1].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps[1].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]));
|
||||
d = await GetDelivery("20231001X003");
|
||||
Assert.That(d, Is.Not.Null);
|
||||
Assert.Multiple(() => {
|
||||
var ps = GetParts(d);
|
||||
Assert.That(ps, Has.Length.EqualTo(4));
|
||||
Assert.That(ps[0].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps[0].QualId, Is.EqualTo("WEI"));
|
||||
Assert.That(ps[1].Weight, Is.EqualTo(300));
|
||||
Assert.That(ps[1].QualId, Is.Not.EqualTo("WEI"));
|
||||
Assert.That(ps[2].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps[2].QualId, Is.Not.EqualTo("WEI"));
|
||||
Assert.That(ps[3].Weight, Is.EqualTo(700));
|
||||
Assert.That(ps[3].QualId, Is.EqualTo("WEI"));
|
||||
});
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestSplit_04_Depreciate_Complete() {
|
||||
var d = await GetDelivery("20231001X004");
|
||||
Assert.That(d, Is.Not.Null);
|
||||
Assert.Multiple(() => {
|
||||
var ps = GetParts(d);
|
||||
Assert.That(ps, Has.Length.EqualTo(3));
|
||||
Assert.That(ps[0].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps[0].QualId, Is.Not.EqualTo("WEI"));
|
||||
Assert.That(ps[1].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps[1].QualId, Is.Not.EqualTo("WEI"));
|
||||
Assert.That(ps[2].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps[2].QualId, Is.Not.EqualTo("WEI"));
|
||||
});
|
||||
|
||||
Assert.DoesNotThrowAsync(async () => await DeliveryService.DepreciateDelivery(d.Year, d.DId, [1000, 1100, int.MaxValue]));
|
||||
d = await GetDelivery("20231001X004");
|
||||
Assert.That(d, Is.Not.Null);
|
||||
Assert.Multiple(() => {
|
||||
var ps = GetParts(d);
|
||||
Assert.That(ps, Has.Length.EqualTo(3));
|
||||
Assert.That(ps[0].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps[0].QualId, Is.EqualTo("WEI"));
|
||||
Assert.That(ps[1].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps[1].QualId, Is.EqualTo("WEI"));
|
||||
Assert.That(ps[2].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps[2].QualId, Is.EqualTo("WEI"));
|
||||
});
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestSplit_05_OtherMember_One() {
|
||||
var d1 = await GetDelivery("20231002X001");
|
||||
var d2 = await GetDelivery("20231002X002");
|
||||
Assert.Multiple(() => {
|
||||
Assert.That(d1, Is.Not.Null);
|
||||
Assert.That(d2, Is.Null);
|
||||
});
|
||||
Assert.Multiple(() => {
|
||||
var ps1 = GetParts(d1);
|
||||
Assert.That(d1.MgNr, Is.EqualTo(101));
|
||||
Assert.That(ps1, Has.Length.EqualTo(3));
|
||||
Assert.That(ps1[0].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps1[1].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));
|
||||
d1 = await GetDelivery("20231002X001");
|
||||
d2 = await GetDelivery("20231002X002");
|
||||
Assert.Multiple(() => {
|
||||
Assert.That(d1, Is.Not.Null);
|
||||
Assert.That(d2, Is.Not.Null);
|
||||
});
|
||||
Assert.Multiple(() => {
|
||||
var ps1 = GetParts(d1);
|
||||
var ps2 = GetParts(d2);
|
||||
Assert.That(d1.MgNr, Is.EqualTo(101));
|
||||
Assert.That(d2.MgNr, Is.EqualTo(102));
|
||||
Assert.That(ps1, Has.Length.EqualTo(2));
|
||||
Assert.That(ps1[0].DPNr, Is.EqualTo(2));
|
||||
Assert.That(ps1[0].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps1[1].DPNr, Is.EqualTo(3));
|
||||
Assert.That(ps1[1].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps2, Has.Length.EqualTo(1));
|
||||
Assert.That(ps2[0].DPNr, Is.EqualTo(1));
|
||||
Assert.That(ps2[0].Weight, Is.EqualTo(1000));
|
||||
});
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestSplit_06_OtherMember_Partial() {
|
||||
var d1 = await GetDelivery("20231003X001");
|
||||
var d2 = await GetDelivery("20231003X002");
|
||||
Assert.Multiple(() => {
|
||||
Assert.That(d1, Is.Not.Null);
|
||||
Assert.That(d2, Is.Null);
|
||||
});
|
||||
Assert.Multiple(() => {
|
||||
var ps1 = GetParts(d1);
|
||||
Assert.That(d1.MgNr, Is.EqualTo(101));
|
||||
Assert.That(ps1, Has.Length.EqualTo(3));
|
||||
Assert.That(ps1[0].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps1[1].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));
|
||||
d1 = await GetDelivery("20231003X001");
|
||||
d2 = await GetDelivery("20231003X002");
|
||||
Assert.Multiple(() => {
|
||||
Assert.That(d1, Is.Not.Null);
|
||||
Assert.That(d2, Is.Not.Null);
|
||||
});
|
||||
Assert.Multiple(() => {
|
||||
var ps1 = GetParts(d1);
|
||||
var ps2 = GetParts(d2);
|
||||
Assert.That(d1.MgNr, Is.EqualTo(101));
|
||||
Assert.That(d2.MgNr, Is.EqualTo(102));
|
||||
Assert.That(ps1, Has.Length.EqualTo(3));
|
||||
Assert.That(ps1[0].Weight, Is.EqualTo(600));
|
||||
Assert.That(ps1[1].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps1[2].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps2, Has.Length.EqualTo(1));
|
||||
Assert.That(ps2[0].Weight, Is.EqualTo(400));
|
||||
});
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestSplit_07_OtherMember_Mixed() {
|
||||
var d1 = await GetDelivery("20231004X001");
|
||||
var d2 = await GetDelivery("20231004X002");
|
||||
Assert.Multiple(() => {
|
||||
Assert.That(d1, Is.Not.Null);
|
||||
Assert.That(d2, Is.Null);
|
||||
});
|
||||
Assert.Multiple(() => {
|
||||
var ps1 = GetParts(d1);
|
||||
Assert.That(d1.MgNr, Is.EqualTo(101));
|
||||
Assert.That(ps1, Has.Length.EqualTo(3));
|
||||
Assert.That(ps1[0].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps1[1].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));
|
||||
d1 = await GetDelivery("20231004X001");
|
||||
d2 = await GetDelivery("20231004X002");
|
||||
Assert.Multiple(() => {
|
||||
Assert.That(d1, Is.Not.Null);
|
||||
Assert.That(d2, Is.Not.Null);
|
||||
});
|
||||
Assert.Multiple(() => {
|
||||
var ps1 = GetParts(d1);
|
||||
var ps2 = GetParts(d2);
|
||||
Assert.That(d1.MgNr, Is.EqualTo(101));
|
||||
Assert.That(d2.MgNr, Is.EqualTo(102));
|
||||
Assert.That(ps1, Has.Length.EqualTo(2));
|
||||
Assert.That(ps1[0].DPNr, Is.EqualTo(1));
|
||||
Assert.That(ps1[0].Weight, Is.EqualTo(800));
|
||||
Assert.That(ps1[1].DPNr, Is.EqualTo(3));
|
||||
Assert.That(ps1[1].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps2, Has.Length.EqualTo(2));
|
||||
Assert.That(ps2[0].DPNr, Is.EqualTo(1));
|
||||
Assert.That(ps2[0].Weight, Is.EqualTo(200));
|
||||
Assert.That(ps2[1].DPNr, Is.EqualTo(2));
|
||||
Assert.That(ps2[1].Weight, Is.EqualTo(1000));
|
||||
});
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestSplit_08_OtherMember_Complete() {
|
||||
var d1 = await GetDelivery("20231005X001");
|
||||
var d2 = await GetDelivery("20231005X002");
|
||||
Assert.Multiple(() => {
|
||||
Assert.That(d1, Is.Not.Null);
|
||||
Assert.That(d2, Is.Null);
|
||||
});
|
||||
Assert.Multiple(() => {
|
||||
var ps1 = GetParts(d1);
|
||||
Assert.That(d1.MgNr, Is.EqualTo(101));
|
||||
Assert.That(ps1, Has.Length.EqualTo(3));
|
||||
Assert.That(ps1[0].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps1[1].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));
|
||||
d1 = await GetDelivery("20231005X001");
|
||||
d2 = await GetDelivery("20231005X002");
|
||||
Assert.Multiple(() => {
|
||||
Assert.That(d1, Is.Null);
|
||||
Assert.That(d2, Is.Not.Null);
|
||||
});
|
||||
Assert.Multiple(() => {
|
||||
var ps2 = GetParts(d2);
|
||||
Assert.That(d2.MgNr, Is.EqualTo(102));
|
||||
Assert.That(ps2, Has.Length.EqualTo(3));
|
||||
Assert.That(ps2[0].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps2[1].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps2[2].Weight, Is.EqualTo(1000));
|
||||
});
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestSplit_09_OtherDelivery_One() {
|
||||
var d1 = await GetDelivery("20231006X001");
|
||||
var d2 = await GetDelivery("20231006X002");
|
||||
Assert.Multiple(() => {
|
||||
Assert.That(d1, Is.Not.Null);
|
||||
Assert.That(d2, Is.Not.Null);
|
||||
});
|
||||
Assert.Multiple(() => {
|
||||
var ps1 = GetParts(d1);
|
||||
var ps2 = GetParts(d2);
|
||||
Assert.That(ps1, Has.Length.EqualTo(3));
|
||||
Assert.That(ps1[0].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps1[1].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps1[2].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps2, Has.Length.EqualTo(1));
|
||||
Assert.That(ps2[0].Weight, Is.EqualTo(1000));
|
||||
});
|
||||
|
||||
Assert.DoesNotThrowAsync(async () => await DeliveryService.SplitDeliveryToLsNr(d1.Year, d1.DId, [0, 1000, -4], d2.LsNr));
|
||||
d1 = await GetDelivery("20231006X001");
|
||||
d2 = await GetDelivery("20231006X002");
|
||||
Assert.Multiple(() => {
|
||||
Assert.That(d1, Is.Not.Null);
|
||||
Assert.That(d2, Is.Not.Null);
|
||||
});
|
||||
Assert.Multiple(() => {
|
||||
var ps1 = GetParts(d1);
|
||||
var ps2 = GetParts(d2);
|
||||
Assert.That(ps1, Has.Length.EqualTo(2));
|
||||
Assert.That(ps1[0].DPNr, Is.EqualTo(1));
|
||||
Assert.That(ps1[0].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps1[1].DPNr, Is.EqualTo(3));
|
||||
Assert.That(ps1[1].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps2, Has.Length.EqualTo(2));
|
||||
Assert.That(ps2[0].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps2[1].Weight, Is.EqualTo(1000));
|
||||
});
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestSplit_10_OtherDelivery_Partial() {
|
||||
var d1 = await GetDelivery("20231007X001");
|
||||
var d2 = await GetDelivery("20231007X002");
|
||||
Assert.Multiple(() => {
|
||||
Assert.That(d1, Is.Not.Null);
|
||||
Assert.That(d2, Is.Not.Null);
|
||||
});
|
||||
Assert.Multiple(() => {
|
||||
var ps1 = GetParts(d1);
|
||||
var ps2 = GetParts(d2);
|
||||
Assert.That(ps1, Has.Length.EqualTo(3));
|
||||
Assert.That(ps1[0].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps1[1].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps1[2].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps2, Has.Length.EqualTo(1));
|
||||
Assert.That(ps2[0].Weight, Is.EqualTo(1000));
|
||||
});
|
||||
|
||||
Assert.DoesNotThrowAsync(async () => await DeliveryService.SplitDeliveryToLsNr(d1.Year, d1.DId, [0, 300, int.MinValue], d2.LsNr));
|
||||
d1 = await GetDelivery("20231007X001");
|
||||
d2 = await GetDelivery("20231007X002");
|
||||
Assert.Multiple(() => {
|
||||
Assert.That(d1, Is.Not.Null);
|
||||
Assert.That(d2, Is.Not.Null);
|
||||
});
|
||||
Assert.Multiple(() => {
|
||||
var ps1 = GetParts(d1);
|
||||
var ps2 = GetParts(d2);
|
||||
Assert.That(ps1, Has.Length.EqualTo(3));
|
||||
Assert.That(ps1[0].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps1[1].Weight, Is.EqualTo(700));
|
||||
Assert.That(ps1[2].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps2, Has.Length.EqualTo(2));
|
||||
Assert.That(ps2[0].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps2[1].Weight, Is.EqualTo(300));
|
||||
});
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestSplit_11_OtherDelivery_Mixed() {
|
||||
var d1 = await GetDelivery("20231008X001");
|
||||
var d2 = await GetDelivery("20231008X002");
|
||||
Assert.Multiple(() => {
|
||||
Assert.That(d1, Is.Not.Null);
|
||||
Assert.That(d2, Is.Not.Null);
|
||||
});
|
||||
Assert.Multiple(() => {
|
||||
var ps1 = GetParts(d1);
|
||||
var ps2 = GetParts(d2);
|
||||
Assert.That(ps1, Has.Length.EqualTo(3));
|
||||
Assert.That(ps1[0].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps1[1].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps1[2].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps2, Has.Length.EqualTo(1));
|
||||
Assert.That(ps2[0].Weight, Is.EqualTo(1000));
|
||||
});
|
||||
|
||||
Assert.DoesNotThrowAsync(async () => await DeliveryService.SplitDeliveryToLsNr(d1.Year, d1.DId, [850, 1000, -4], d2.LsNr));
|
||||
d1 = await GetDelivery("20231008X001");
|
||||
d2 = await GetDelivery("20231008X002");
|
||||
Assert.Multiple(() => {
|
||||
Assert.That(d1, Is.Not.Null);
|
||||
Assert.That(d2, Is.Not.Null);
|
||||
});
|
||||
Assert.Multiple(() => {
|
||||
var ps1 = GetParts(d1);
|
||||
var ps2 = GetParts(d2);
|
||||
Assert.That(ps1, Has.Length.EqualTo(2));
|
||||
Assert.That(ps1[0].DPNr, Is.EqualTo(1));
|
||||
Assert.That(ps1[0].Weight, Is.EqualTo(150));
|
||||
Assert.That(ps1[1].DPNr, Is.EqualTo(3));
|
||||
Assert.That(ps1[1].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps2, Has.Length.EqualTo(3));
|
||||
Assert.That(ps2[0].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps2[1].Weight, Is.EqualTo(850));
|
||||
Assert.That(ps2[2].Weight, Is.EqualTo(1000));
|
||||
});
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestSplit_12_OtherDelivery_Complete() {
|
||||
var d1 = await GetDelivery("20231009X001");
|
||||
var d2 = await GetDelivery("20231009X002");
|
||||
Assert.Multiple(() => {
|
||||
Assert.That(d1, Is.Not.Null);
|
||||
Assert.That(d2, Is.Not.Null);
|
||||
});
|
||||
Assert.Multiple(() => {
|
||||
var ps1 = GetParts(d1);
|
||||
var ps2 = GetParts(d2);
|
||||
Assert.That(ps1, Has.Length.EqualTo(3));
|
||||
Assert.That(ps1[0].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps1[1].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps1[2].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps2, Has.Length.EqualTo(1));
|
||||
Assert.That(ps2[0].Weight, Is.EqualTo(1000));
|
||||
});
|
||||
|
||||
Assert.DoesNotThrowAsync(async () => await DeliveryService.SplitDeliveryToLsNr(d1.Year, d1.DId, [1200, int.MaxValue, 1000], d2.LsNr));
|
||||
d1 = await GetDelivery("20231009X001");
|
||||
d2 = await GetDelivery("20231009X002");
|
||||
Assert.Multiple(() => {
|
||||
Assert.That(d1, Is.Null);
|
||||
Assert.That(d2, Is.Not.Null);
|
||||
});
|
||||
Assert.Multiple(() => {
|
||||
var ps2 = GetParts(d2);
|
||||
Assert.That(ps2, Has.Length.EqualTo(4));
|
||||
Assert.That(ps2[0].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps2[1].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps2[2].Weight, Is.EqualTo(1000));
|
||||
Assert.That(ps2[3].Weight, Is.EqualTo(1000));
|
||||
});
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestDelete_01_Normal() {
|
||||
using (var ctx = new AppDbContext()) {
|
||||
Assert.That(await ctx.Deliveries.FindAsync(2022, 2), Is.Not.Null);
|
||||
}
|
||||
Assert.DoesNotThrowAsync(async () => await DeliveryService.DeleteDelivery("20220930X001"));
|
||||
using (var ctx = new AppDbContext()) {
|
||||
Assert.That(await ctx.Deliveries.FindAsync(2022, 2), Is.Null);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -61,6 +61,8 @@ namespace Tests.ServiceTests {
|
||||
Assert.That(m.DefaultKg?.Name, Is.EqualTo("Wolkersdorf"));
|
||||
});
|
||||
|
||||
vm = new MemberAdminViewModel();
|
||||
await InitViewModel(vm);
|
||||
Assert.DoesNotThrow(() => vm.FillInputs(m));
|
||||
Assert.Multiple(() => {
|
||||
Assert.That(vm.MgNr, Is.EqualTo(205));
|
||||
@ -179,6 +181,8 @@ namespace Tests.ServiceTests {
|
||||
Assert.That(m.IsFunktionär, Is.True);
|
||||
});
|
||||
|
||||
vm = new MemberAdminViewModel();
|
||||
await InitViewModel(vm);
|
||||
Assert.DoesNotThrow(() => vm.FillInputs(m));
|
||||
Assert.Multiple(() => {
|
||||
Assert.That(vm.MgNr, Is.EqualTo(999));
|
||||
@ -268,6 +272,8 @@ namespace Tests.ServiceTests {
|
||||
Assert.That(m.ExitDateString, Is.EqualTo($"{exitDate:yyyy-MM-dd}"));
|
||||
});
|
||||
|
||||
vm = new MemberAdminViewModel();
|
||||
await InitViewModel(vm);
|
||||
Assert.DoesNotThrow(() => vm.FillInputs(m));
|
||||
Assert.Multiple(() => {
|
||||
Assert.That(vm.IsActive, Is.False);
|
||||
@ -314,6 +320,8 @@ namespace Tests.ServiceTests {
|
||||
}
|
||||
|
||||
Assert.That(m, Is.Not.Null);
|
||||
vm = new MemberAdminViewModel();
|
||||
await InitViewModel(vm);
|
||||
Assert.DoesNotThrow(() => vm.FillInputs(m));
|
||||
Assert.Multiple(() => {
|
||||
Assert.That(vm.MgNr, Is.EqualTo(210));
|
||||
|
Reference in New Issue
Block a user