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

/// <summary>
///     Shared xUnit <c>Skip</c> reason constants for tests whose intent is retained but whose subject is
///     not materialized in the v3 Batch-1 DARK address space. Equipment-tag variable nodes (and their
///     per-field intent: FullName / array / historize / native-alarm) are lit up by the Batch-4 dual
///     namespace + UNS↔Raw fan-out; until then the composer/artifact both emit an EMPTY equipment-tag
///     plan set, so any parity assertion over those plans has nothing to compare. The raw-tag parse
///     intent these tests characterized lives on in <see cref="TagConfigCorpusParityTests"/> (RawTagEntry
///     round-trip) and <c>TagConfigIntentTests</c> (the parse unit).
/// </summary>
internal static class DarkAddressSpaceReasons
{
    /// <summary>Equipment-tag variable materialization + its per-field intent is dark until Batch 4.</summary>
    public const string EquipmentTagsDarkBatch4 =
        "v3 dark address space: equipment-tag variable plans (FullName/array/historize/alarm) do not " +
        "materialize until Batch 4 (dual-namespace UNS↔Raw fan-out). The composer + artifact both emit an " +
        "empty equipment-tag plan set this batch, so this parity has nothing to compare. Raw-tag parse " +
        "intent is covered by TagConfigCorpusParityTests (RawTagEntry round-trip) + TagConfigIntentTests.";

    /// <summary>Equipment↔device host binding is architecturally retired in v3.</summary>
    public const string EquipmentDeviceBindingRetired =
        "v3: equipment no longer binds a driver/device (EquipmentNode has no DriverInstanceId/DeviceId/" +
        "DeviceHost) — equipment references raw tags via UnsTagReference. The device-endpoint merge this " +
        "test characterized is now covered by DeploymentArtifactRawPathTests " +
        "(ParseDriverInstances_computes_nested_RawPath_and_merges_device_endpoint).";
}
