using Xunit;

namespace ZB.MOM.WW.OtOpcUa.Runtime.Tests.Drivers;

/// <summary>
///     Galaxy-as-ordinary-equipment-tag byte-parity: a Galaxy point (equipment-scoped tag bound to a
///     <c>GalaxyMxGateway</c> driver) surfaced into <c>EquipmentTags</c> with the same FullName /
///     EquipmentId / DriverInstanceId / AccessLevel→Writable / native-alarm intent on both the composer
///     and the artifact-decode seam.
///     <para>
///     <b>v3 DARK (Batch 1):</b> equipment-tag variable plans do not materialize — both producers emit an
///     EMPTY <c>EquipmentTags</c> set until the Batch-4 dual-namespace UNS↔Raw fan-out. Additionally, the
///     v3 schema retired the <c>Namespace</c>/<c>NamespaceKind</c> entities and the Galaxy
///     <c>ExplicitFullName</c> / namespace-Kind gate this test keyed off; Galaxy is an ordinary
///     Device-bound driver whose raw tags reach the UNS via <c>UnsTagReference</c>. The AccessLevel→Writable
///     and native-alarm parse this asserted are covered at the parse unit (<c>TagConfigIntentTests</c>) and
///     the RawTagEntry round-trip (<see cref="TagConfigCorpusParityTests"/>). Unskip + rewrite to the
///     Batch-4 UNS-projection shape when equipment-tag plans light up.
///     </para>
/// </summary>
public sealed class DeploymentArtifactAliasParityTests
{
    /// <summary>Batch-4 pending: composer and artifact agree on a Galaxy equipment tag surfaced in
    /// EquipmentTags (FullName + Writable + native alarm). See class remarks — dark this batch.</summary>
    [Fact(Skip = DarkAddressSpaceReasons.EquipmentTagsDarkBatch4)]
    public void Composer_and_artifact_agree_on_galaxy_equipment_tag()
    {
        // Restored + rewritten to the Batch-4 UNS-projection shape when equipment-tag variable plans
        // materialize: assert a Galaxy point + a Modbus point round-trip identically (FullName, Writable
        // from AccessLevel, native-alarm intent incl. historizeToAveva) across composer and artifact.
    }
}
