using Shouldly; using Xunit; using ZB.MOM.WW.OtOpcUa.Driver.AbCip; namespace ZB.MOM.WW.OtOpcUa.Driver.AbCip.IntegrationTests; /// /// PR abcip-5.1 — integration scaffold for HSBY paired-IP role probing. Skipped by default /// because ab_server cannot emulate a ControlLogix HSBY pair (it has no second-chassis /// concept + no WallClockTime.SyncStatus tag). Promoted from skipped to active when /// the Docker fixture grows the hsby-mux sidecar (planned in PR abcip-5.2 follow-up /// work) or when a real lab rig is available; the unit-level coverage in /// AbCipHsbyTests exercises the value-mapping + active-resolution rules in the /// meantime. /// /// The skip lives in the test body so the file still compiles + the trait is discoverable /// by dotnet test --filter "Category=Hsby"; the body never gets to assert anything /// against ab_server. /// /// [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; } }