using Opc.Ua; using Shouldly; using Xunit; using ZB.MOM.WW.LmxOpcUa.Host.Domain; using ZB.MOM.WW.LmxOpcUa.Host.OpcUa; namespace ZB.MOM.WW.LmxOpcUa.Tests.OpcUa { /// /// Verifies translation between bridge quality values and OPC UA status codes. /// public class OpcUaQualityMapperTests { /// /// Confirms that good bridge quality maps to an OPC UA good status. /// [Fact] public void Good_MapsToGoodStatusCode() { var sc = OpcUaQualityMapper.ToStatusCode(Quality.Good); StatusCode.IsGood(sc).ShouldBe(true); } /// /// Confirms that bad bridge quality maps to an OPC UA bad status. /// [Fact] public void Bad_MapsToBadStatusCode() { var sc = OpcUaQualityMapper.ToStatusCode(Quality.Bad); StatusCode.IsBad(sc).ShouldBe(true); } /// /// Confirms that uncertain bridge quality maps to an OPC UA uncertain status. /// [Fact] public void Uncertain_MapsToUncertainStatusCode() { var sc = OpcUaQualityMapper.ToStatusCode(Quality.Uncertain); StatusCode.IsUncertain(sc).ShouldBe(true); } /// /// Confirms that communication failures map to a bad OPC UA status code. /// [Fact] public void BadCommFailure_MapsCorrectly() { var sc = OpcUaQualityMapper.ToStatusCode(Quality.BadCommFailure); StatusCode.IsBad(sc).ShouldBe(true); } /// /// Confirms that the OPC UA good status maps back to bridge good quality. /// [Fact] public void FromStatusCode_Good() { var q = OpcUaQualityMapper.FromStatusCode(StatusCodes.Good); q.ShouldBe(Quality.Good); } /// /// Confirms that the OPC UA bad status maps back to bridge bad quality. /// [Fact] public void FromStatusCode_Bad() { var q = OpcUaQualityMapper.FromStatusCode(StatusCodes.Bad); q.ShouldBe(Quality.Bad); } /// /// Confirms that the OPC UA uncertain status maps back to bridge uncertain quality. /// [Fact] public void FromStatusCode_Uncertain() { var q = OpcUaQualityMapper.FromStatusCode(StatusCodes.Uncertain); q.ShouldBe(Quality.Uncertain); } } }