using Shouldly; using Xunit; using ZB.MOM.WW.OtOpcUa.AdminUI.Components.Shared.Drivers.Pickers; namespace ZB.MOM.WW.OtOpcUa.AdminUI.Tests.Pickers; public sealed class ModbusAddressBuilderTests { [Theory] [InlineData("Holding", 1, 1, "4x00001-1")] [InlineData("Coil", 0, 1, "0x00000-1")] [InlineData("Holding", 123, 4, "4x00123-4")] [InlineData("DiscreteInput", 5, 1, "1x00005-1")] [InlineData("Input", 99999, 125, "3x99999-125")] public void Build_Canonical(string type, int offset, int length, string expected) => ModbusAddressBuilder.Build(type, offset, length).ShouldBe(expected); [Fact] public void Build_UnknownType_FallsBackToHolding() => ModbusAddressBuilder.Build("Unknown", 1, 1).ShouldBe("4x00001-1"); }