Files
lmxopcua/tests/ZB.MOM.WW.OtOpcUa.Driver.AbCip.IntegrationTests/AbCipHsbyRoleProberTests.cs
2026-04-26 07:51:44 -04:00

36 lines
1.7 KiB
C#

using Shouldly;
using Xunit;
using ZB.MOM.WW.OtOpcUa.Driver.AbCip;
namespace ZB.MOM.WW.OtOpcUa.Driver.AbCip.IntegrationTests;
/// <summary>
/// PR abcip-5.1 — integration scaffold for HSBY paired-IP role probing. Skipped by default
/// because <c>ab_server</c> cannot emulate a ControlLogix HSBY pair (it has no second-chassis
/// concept + no <c>WallClockTime.SyncStatus</c> tag). Promoted from skipped to active when
/// the Docker fixture grows the <c>hsby-mux</c> sidecar (planned in PR abcip-5.2 follow-up
/// work) or when a real lab rig is available; the unit-level coverage in
/// <c>AbCipHsbyTests</c> exercises the value-mapping + active-resolution rules in the
/// meantime.
/// <para>
/// The skip lives in the test body so the file still compiles + the trait is discoverable
/// by <c>dotnet test --filter "Category=Hsby"</c>; the body never gets to assert anything
/// against <c>ab_server</c>.
/// </para>
/// </summary>
[Trait("Category", "Hsby")]
[Trait("Requires", "AbServer")]
public sealed class AbCipHsbyRoleProberTests
{
[AbServerFact]
public Task Role_prober_resolves_active_chassis_against_paired_fixture()
{
// ab_server cannot emulate an HSBY pair; the paired-fixture compose service +
// hsby-mux sidecar that PR abcip-5.2 ships will let this body do real wire work.
// For PR abcip-5.1 we keep the file as a scaffold so the integration trait is
// discoverable and a future PR can flip the skip into a real assertion.
Assert.Skip("HSBY paired-fixture (controllogix-secondary + hsby-mux sidecar) not yet wired — PR abcip-5.2 follow-up.");
return Task.CompletedTask;
}
}