using Admin.NET.Plugin.AiDOP.DataPlatform.Wms; using Xunit; namespace Admin.NET.Plugin.AiDOP.Tests.DataPlatform; public class PickBillNbrSyncRulesTests { [Fact] public void Unpicked_qty_change_updates() { var a = PickBillNbrSyncRules.DecideExisting(qtyRec: 0, newQty: 12, stillRequired: true); Assert.Equal(PickBillNbrSyncRules.LineAction.UpdateQty, a); } [Fact] public void Picked_less_than_new_qty_updates() { var a = PickBillNbrSyncRules.DecideExisting(qtyRec: 3, newQty: 10, stillRequired: true); Assert.Equal(PickBillNbrSyncRules.LineAction.UpdateQty, a); } [Fact] public void Picked_not_less_than_new_qty_closes() { var a = PickBillNbrSyncRules.DecideExisting(qtyRec: 8, newQty: 8, stillRequired: true); Assert.Equal(PickBillNbrSyncRules.LineAction.Close, a); } [Fact] public void Removed_from_plan_closes() { var a = PickBillNbrSyncRules.DecideExisting(qtyRec: 0, newQty: 0, stillRequired: false); Assert.Equal(PickBillNbrSyncRules.LineAction.Close, a); } [Theory] [InlineData(null, "8010")] [InlineData("", "8010")] [InlineData("8010", "8010")] [InlineData("838257186181189", "8010")] [InlineData("2410", "2410")] public void ResolveMesDomain_falls_back_when_blank_or_too_long(string? domain, string expected) { Assert.Equal(expected, PickBillNbrSyncService.ResolveMesDomain(domain)); } }