Add runtime address space rebuild integration tests
Tests verify nodes can be added/removed from the OPC UA server at runtime by mutating FakeGalaxyRepository and triggering a rebuild. Uses real OPC UA client sessions to browse, subscribe, and observe changes. Tests cover: - Browse initial hierarchy via OPC UA client - Add object at runtime → new node appears on browse - Remove object → node disappears from browse - Subscribe to node, then remove it → publishes Bad quality - Surviving nodes still browsable after partial rebuild - Add/remove individual attributes at runtime Infrastructure: - OpcUaTestClient helper for programmatic OPC UA client connections - OpcUaServerFixture updated with GalaxyRepository/MxProxy accessors - OpcUaService.TriggerRebuild() exposed for test-driven rebuilds - Namespace index resolved dynamically via session namespace table Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -267,6 +267,11 @@ namespace ZB.MOM.WW.LmxOpcUa.Host
|
||||
Log.Fatal(e.ExceptionObject as Exception, "Unhandled exception (IsTerminating={IsTerminating})", e.IsTerminating);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Triggers an address space rebuild from the current Galaxy repository data. For testing.
|
||||
/// </summary>
|
||||
internal void TriggerRebuild() => OnGalaxyChanged();
|
||||
|
||||
// Accessors for testing
|
||||
internal IMxAccessClient? MxClient => (IMxAccessClient?)_mxAccessClient ?? _mxAccessClientForWiring;
|
||||
internal PerformanceMetrics? Metrics => _metrics;
|
||||
|
||||
Reference in New Issue
Block a user