66 lines
2.5 KiB
C#
66 lines
2.5 KiB
C#
using Shouldly;
|
|
using Xunit;
|
|
using ZB.MOM.WW.LmxOpcUa.Host.Domain;
|
|
|
|
namespace ZB.MOM.WW.LmxOpcUa.Tests.Domain
|
|
{
|
|
/// <summary>
|
|
/// Verifies the operator-facing error messages and quality mappings derived from MXAccess error codes.
|
|
/// </summary>
|
|
public class MxErrorCodesTests
|
|
{
|
|
/// <summary>
|
|
/// Confirms that known MXAccess error codes produce readable operator-facing descriptions.
|
|
/// </summary>
|
|
/// <param name="code">The MXAccess error code.</param>
|
|
/// <param name="expectedSubstring">A substring expected in the returned description.</param>
|
|
[Theory]
|
|
[InlineData(1008, "Invalid reference")]
|
|
[InlineData(1012, "Wrong data type")]
|
|
[InlineData(1013, "Not writable")]
|
|
[InlineData(1014, "Request timed out")]
|
|
[InlineData(1015, "Communication failure")]
|
|
[InlineData(1016, "Not connected")]
|
|
public void GetMessage_KnownCodes_ContainsDescription(int code, string expectedSubstring)
|
|
{
|
|
MxErrorCodes.GetMessage(code).ShouldContain(expectedSubstring);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Confirms that unknown MXAccess error codes are reported as unknown while preserving the numeric code.
|
|
/// </summary>
|
|
[Fact]
|
|
public void GetMessage_UnknownCode_ReturnsUnknown()
|
|
{
|
|
MxErrorCodes.GetMessage(9999).ShouldContain("Unknown");
|
|
MxErrorCodes.GetMessage(9999).ShouldContain("9999");
|
|
}
|
|
|
|
/// <summary>
|
|
/// Confirms that known MXAccess error codes map to the expected bridge quality values.
|
|
/// </summary>
|
|
/// <param name="code">The MXAccess error code.</param>
|
|
/// <param name="expected">The expected bridge quality value.</param>
|
|
[Theory]
|
|
[InlineData(1008, Quality.BadConfigError)]
|
|
[InlineData(1012, Quality.BadConfigError)]
|
|
[InlineData(1013, Quality.BadOutOfService)]
|
|
[InlineData(1014, Quality.BadCommFailure)]
|
|
[InlineData(1015, Quality.BadCommFailure)]
|
|
[InlineData(1016, Quality.BadNotConnected)]
|
|
public void MapToQuality_KnownCodes(int code, Quality expected)
|
|
{
|
|
MxErrorCodes.MapToQuality(code).ShouldBe(expected);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Confirms that unknown MXAccess error codes map to the generic bad quality bucket.
|
|
/// </summary>
|
|
[Fact]
|
|
public void MapToQuality_UnknownCode_ReturnsBad()
|
|
{
|
|
MxErrorCodes.MapToQuality(9999).ShouldBe(Quality.Bad);
|
|
}
|
|
}
|
|
}
|