using Xunit;
namespace ZB.MOM.WW.OtOpcUa.Runtime.Tests.Drivers;
///
/// Phase C HistoryRead intent (isHistorized + optional historianTagname) byte-parity
/// between the two equipment-tag producers.
///
/// v3 DARK (Batch 1): equipment-tag variable plans do not materialize —
/// AddressSpaceComposer.Compose and DeploymentArtifact.ParseComposition both emit an
/// EMPTY EquipmentTags set until the Batch-4 dual-namespace UNS↔Raw fan-out. There is nothing
/// to compare, so the parity assertion is parked. The underlying parse of isHistorized /
/// historianTagname from a raw TagConfig blob is characterized today by
/// TagConfigIntentTests (the parse unit) and round-tripped through the artifact by
/// (RawTagEntry byte-preservation). Unskip + restore the
/// composer↔artifact equipment-tag comparison when Batch 4 lights the equipment-tag plans.
///
///
public sealed class DeploymentArtifactHistorizeParityTests
{
/// Batch-4 pending: composer and artifact agree on historized equipment-tag plans
/// (IsHistorized + HistorianTagname). See class remarks — equipment-tag plans are dark this batch.
[Fact(Skip = DarkAddressSpaceReasons.EquipmentTagsDarkBatch4)]
public void Composer_and_artifact_agree_on_historized_equipment_tags()
{
// Restored when Batch 4 materializes equipment-tag variable plans: compose a draft with a
// historized tag (no explicit tagname → HistorianTagname null), a historized tag WITH an explicit
// historianTagname override, and a plain tag; assert decoded EquipmentTags == composed element-wise.
}
}