using AxiOmron.PcbCheck.Options; using AxiOmron.PcbCheck.Services.Implementations; using IoTClient.Enums; using Xunit; namespace AxiOmron.PcbCheck.Tests; /// /// 验证欧姆龙 FINS PLC 服务的通信参数解析行为。 /// public sealed class OmronFinsPlcServiceTests { /// /// 默认字节序应使用 BADC,以匹配现场 D 区 Int16 的高低字节顺序。 /// [Fact] public void ResolveEndianFormat_ShouldUseBadc_WhenConfigurationIsDefault() { var options = new PlcOptions(); EndianFormat result = OmronFinsPlcService.ResolveEndianFormat(options); Assert.Equal(EndianFormat.BADC, result); } /// /// 非法字节序配置应抛出明确异常,避免使用错误端序静默读写 PLC 寄存器。 /// [Fact] public void ResolveEndianFormat_ShouldThrow_WhenConfigurationIsInvalid() { var options = new PlcOptions { EndianFormat = "XYZ" }; var exception = Assert.Throws(() => OmronFinsPlcService.ResolveEndianFormat(options)); Assert.Contains("PLC 字节序配置无效", exception.Message); } }