| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- using Admin.NET.Plugin.AiDOP.DataPlatform.Inbound;
- using Admin.NET.Plugin.AiDOP.Entity.DataPlatform;
- using Xunit;
- namespace Admin.NET.Plugin.AiDOP.Tests.DataPlatform;
- public class InboundRequiredFieldTests
- {
- private readonly MdpInboundFieldMapper _mapper = new(null!);
- [Fact]
- public void IdentityContract_RejectsMissingRequiredField()
- {
- var row = new Dictionary<string, object?>(StringComparer.OrdinalIgnoreCase)
- {
- ["ItemNum"] = "ITEM-001"
- };
- var missing = _mapper.MissingRequired(row, [], "MDM_ITEM", "v1");
- Assert.Equal(["Descr"], missing);
- }
- [Fact]
- public void InventoryV1_DoesNotRequireV2BusinessType()
- {
- var row = new Dictionary<string, object?>(StringComparer.OrdinalIgnoreCase)
- {
- ["Id"] = "TXN-001"
- };
- var missing = _mapper.MissingRequired(row, [], "S5_INVENTORY_TXN", "v1");
- Assert.Empty(missing);
- }
- [Fact]
- public void InventoryV2_RequiresBusinessType()
- {
- var row = new Dictionary<string, object?>(StringComparer.OrdinalIgnoreCase)
- {
- ["Id"] = "TXN-001"
- };
- var missing = _mapper.MissingRequired(row, [], "S5_INVENTORY_TXN", "v2");
- Assert.Equal(["BizDocType"], missing);
- }
- [Fact]
- public void ConfiguredMap_RemainsTheAuthoritativeContract()
- {
- var row = new Dictionary<string, object?>(StringComparer.OrdinalIgnoreCase)
- {
- ["external_item"] = "ITEM-001"
- };
- var maps = new List<MdpFieldMap>
- {
- new()
- {
- ContractField = "ItemNum",
- RawKey = "external_item",
- IsRequired = 1
- }
- };
- var missing = _mapper.MissingRequired(row, maps, "MDM_ITEM", "v1");
- Assert.Empty(missing);
- }
- }
|