using Xunit;

namespace ZB.MOM.WW.OtOpcUa.OpcUaServer.Tests;

/// <summary>
///     Characterized the live-edit compose seam admitting a Galaxy point as an ordinary equipment tag:
///     an equipment-scoped <c>Tag</c> bound to a <c>GalaxyMxGateway</c> driver surfaced under
///     <see cref="AddressSpaceComposition.EquipmentTags"/> carrying its driver-side FullName (coalescing a
///     null FolderPath to <c>string.Empty</c>).
///     <para><b>v3 Batch-1 DARK + reshaped seed:</b> equipment-tag variable plans do not materialize until
///     Batch 4 (the composer emits an empty <c>EquipmentTags</c> set — the raw + UNS variable nodes light
///     up in Batch 4's dual-namespace UNS↔Raw fan-out). The seed mechanism this test used is also gone:
///     <c>Tag</c> is now raw-only (no <c>EquipmentId</c>/<c>DriverInstanceId</c>/<c>FolderPath</c>), the
///     Compose overload no longer takes tags/namespaces, and equipment references raw tags via
///     <c>UnsTagReference</c> rather than a Galaxy point carrying an <c>EquipmentId</c>. So there is no
///     Batch-1 analog to assert. Re-author against the UnsTagReference → EquipmentTags fan-out when Batch 4
///     lights the equipment-tag variable nodes.</para>
/// </summary>
public sealed class AddressSpaceComposerAliasTagTests
{
    /// <summary>A <c>GalaxyMxGateway</c> equipment tag surfaces under EquipmentTags with its FullName —
    /// dark until Batch 4 (empty equipment-tag plan set) and re-authored via UnsTagReference.</summary>
    [Fact(Skip = DarkAddressSpaceReasons.EquipmentTagsDarkBatch4)]
    public void Compose_admits_galaxy_equipment_tag_in_equipment_tags()
    {
        // Dark until Batch 4: see class summary. EquipmentTags is emitted empty this batch and the
        // Tag.EquipmentId binding this test relied on is retired (Tag is raw-only). The Batch-4 seam
        // fans equipment tags in via UnsTagReference; re-author the assertion then.
    }
}
