2c7fc65bae
Migrate the server composer/applier + 2-node harness tests off the retired
Namespace/NamespaceKind + equipment→driver/device binding schema onto the v3
greenfield shape (raw-only Tag; DriverInstance-RawFolderId; equipment via UnsLine).
OpcUaServer.Tests (134 build errors -> green, 335 pass / 4 skip):
- LIVE (migrated, passing): VirtualTag-historize + ScriptedAlarm composition,
composer purity/hierarchy, applier MaterialiseHierarchy + MaterialiseEquipmentTags
idempotency (hand-fed applier, not dark).
- SKIP dark-until-Batch-4: {{equip}} token expansion, applier equipment-namespace
E2E (equipment-tag variable materialization).
- RETIRE-with-comment / skip: alias-tag (Tag.EquipmentId binding gone) + device-host
equipment binding (architecturally removed).
- Add local DarkAddressSpaceReasons Skip-reason constants (mirrors Runtime.Tests).
Host.IntegrationTests (green, in-memory): drop deleted-Namespace seeds from
MultiClusterScoping + DriverReconnect; reshape EquipmentNamespaceMaterialization to
assert the DARK contract (folder nodes decode, EquipmentTags empty despite a seeded
v3 raw tag) with the full raw-tag->EquipmentTag materialization kept as a
Batch-4-pending Skip.
Tests-only; no src/ changes.
28 lines
1.6 KiB
C#
28 lines
1.6 KiB
C#
using Xunit;
|
|
|
|
namespace ZB.MOM.WW.OtOpcUa.OpcUaServer.Tests;
|
|
|
|
/// <summary>
|
|
/// RETIRED (v3): this suite characterized follow-up E's <see cref="EquipmentNode"/> projection of an
|
|
/// equipment's <c>DriverInstanceId</c> / <c>DeviceId</c> bindings + the resolved <c>DeviceHost</c>
|
|
/// (parsed from the bound device's <c>DeviceConfig</c>). In v3 the equipment↔device binding is
|
|
/// architecturally removed — <c>Equipment</c> no longer carries <c>DriverInstanceId</c>/<c>DeviceId</c>,
|
|
/// <c>AddressSpaceComposer.Compose</c> no longer takes a <c>devices</c> list, and equipment references
|
|
/// raw tags via <c>UnsTagReference</c> instead of hosting a device. <c>EquipmentNode</c>'s
|
|
/// driver/device/host fields are therefore always null.
|
|
/// <para>The coverage did not vanish, it moved: the device-endpoint merge is exercised by
|
|
/// <c>Runtime.Tests.Drivers.DeploymentArtifactRawPathTests</c> (nested RawPath + device-endpoint merge),
|
|
/// and the host-extraction/normalization unit lives in <c>Commons.Tests.DeviceConfigIntentTests</c>
|
|
/// (R2-11). The Skipped placeholder below preserves the retirement rationale in test output.</para>
|
|
/// </summary>
|
|
public sealed class AddressSpaceComposerDeviceHostTests
|
|
{
|
|
[Fact(Skip = DarkAddressSpaceReasons.EquipmentDeviceBindingRetired)]
|
|
public void Compose_resolves_driver_device_and_device_host()
|
|
{
|
|
// Retired: see class summary. Equipment no longer binds a driver/device; the EquipmentNode
|
|
// driver/device/host projection is gone. Coverage moved to DeploymentArtifactRawPathTests
|
|
// (device-endpoint merge) + DeviceConfigIntentTests (host extraction).
|
|
}
|
|
}
|