using Shouldly; using Xunit; namespace ZB.MOM.WW.OtOpcUa.Driver.Historian.SqlServer.Tests; /// The pinned SDK is the oracle for the info-bit constants (StatusCodeParityTests covers the named codes). public sealed class StatusCodeOracleTests { [Fact] public void Calculated_bits_match_the_SDK() { var sdk = new Opc.Ua.StatusCode(Opc.Ua.StatusCodes.Good).SetAggregateBits(Opc.Ua.AggregateBits.Calculated); sdk.Code.ShouldBe(HistorianInfoBits.WithCalculated(SqlHistorianStatusCodes.Good)); ((uint)Opc.Ua.AggregateBits.Calculated).ShouldBe(HistorianInfoBits.HistorianCalculated); } [Fact] public void Interpolated_bits_match_the_SDK() { var sdk = new Opc.Ua.StatusCode(Opc.Ua.StatusCodes.Good).SetAggregateBits(Opc.Ua.AggregateBits.Interpolated); sdk.Code.ShouldBe(HistorianInfoBits.WithInterpolated(SqlHistorianStatusCodes.Good)); ((uint)Opc.Ua.AggregateBits.Interpolated).ShouldBe(HistorianInfoBits.HistorianInterpolated); } [Fact] public void Info_type_is_data_value() => HistorianInfoBits.InfoTypeDataValue.ShouldBe(0x400u); }