v3 Batch 1 — greenfield schema + RawPath identity rewiring #469

Merged
dohertj2 merged 39 commits from v3/batch1-schema-identity into master 2026-07-16 01:52:52 -04:00
2 changed files with 5 additions and 5 deletions
Showing only changes of commit b14a7cb847 - Show all commits
@@ -45,7 +45,7 @@ public sealed class DraftSnapshotFactoryTests : IDisposable
snapshot.Tags.Count.ShouldBe(1);
snapshot.VirtualTags.Count.ShouldBe(2);
DraftValidator.Validate(snapshot).ShouldContain(e => e.Code == "EquipmentSignalNameCollision");
DraftValidator.Validate(snapshot).ShouldContain(e => e.Code == "UnsEffectiveNameCollision");
}
/// <summary>Distinct VirtualTag names under the same equipment do not collide, so the snapshot
@@ -62,7 +62,7 @@ public sealed class DraftSnapshotFactoryTests : IDisposable
snapshot.Tags.Count.ShouldBe(1);
snapshot.VirtualTags.Count.ShouldBe(1);
DraftValidator.Validate(snapshot).ShouldNotContain(e => e.Code == "EquipmentSignalNameCollision");
DraftValidator.Validate(snapshot).ShouldNotContain(e => e.Code == "UnsEffectiveNameCollision");
}
/// <summary>Seeds one active and one released reservation for the same equipment context;
@@ -168,7 +168,7 @@ public sealed class DraftValidatorTests
}
// ------------------------------------------------------------------------------------
// ValidateNoEquipmentSignalNameCollision — v3: VirtualTag name uniqueness within equipment
// ValidateNoUnsEffectiveNameCollision — v3: VirtualTag name uniqueness within equipment
// ------------------------------------------------------------------------------------
/// <summary>Two VirtualTags sharing (EquipmentId, Name) collide on a single OPC UA NodeId.</summary>
@@ -185,7 +185,7 @@ public sealed class DraftValidatorTests
],
};
DraftValidator.Validate(draft).ShouldContain(e => e.Code == "EquipmentSignalNameCollision");
DraftValidator.Validate(draft).ShouldContain(e => e.Code == "UnsEffectiveNameCollision");
}
/// <summary>VirtualTags with the same name under DIFFERENT equipment do not collide.</summary>
@@ -202,7 +202,7 @@ public sealed class DraftValidatorTests
],
};
DraftValidator.Validate(draft).ShouldNotContain(e => e.Code == "EquipmentSignalNameCollision");
DraftValidator.Validate(draft).ShouldNotContain(e => e.Code == "UnsEffectiveNameCollision");
}
private static VirtualTag BuildVirtualTag(string equipmentId, string name, string suffix = "") => new()