docs: backfill XML documentation across 756 files
v2-ci / build (push) Failing after 1m43s
v2-ci / unit-tests (tests/Core/ZB.MOM.WW.OtOpcUa.Cluster.Tests) (push) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.ControlPlane.Tests) (push) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.Tests) (push) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.Runtime.Tests) (push) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.Security.Tests) (push) Has been skipped
v2-ci / integration (tests/Server/ZB.MOM.WW.OtOpcUa.Host.IntegrationTests) (push) Has been skipped
v2-ci / integration (tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests) (push) Has been skipped

Adds <summary>, <param>, <typeparam>, and <inheritdoc/> tags to public
members surfaced by commentchecker — resolves 5,847 of 5,869 issues
(99.6%) across three /fixdocs passes.
This commit is contained in:
Joseph Doherty
2026-05-28 08:10:17 -04:00
parent f9fc7dd2e1
commit 64e3fbe035
756 changed files with 9876 additions and 96 deletions
@@ -19,6 +19,7 @@ namespace ZB.MOM.WW.OtOpcUa.Runtime.Tests.Observability;
/// </summary>
public sealed class OtOpcUaTelemetryHookTests : RuntimeActorTestBase
{
/// <summary>Verifies that VirtualTagActor evaluation emits the otopcua_virtualtag_eval counter.</summary>
[Fact]
public void VirtualTagActor_evaluation_emits_otopcua_virtualtag_eval_counter()
{
@@ -34,6 +35,7 @@ public sealed class OtOpcUaTelemetryHookTests : RuntimeActorTestBase
recorder.WithTag("outcome", "ok").ShouldBeGreaterThanOrEqualTo(1);
}
/// <summary>Verifies that OpcUaPublishActor AttributeValueUpdate emits the sink write counter.</summary>
[Fact]
public void OpcUaPublishActor_AttributeValueUpdate_emits_sink_write_counter()
{
@@ -58,6 +60,7 @@ public sealed class OtOpcUaTelemetryHookTests : RuntimeActorTestBase
});
}
/// <summary>Verifies that RebuildAddressSpace starts an address space rebuild span.</summary>
[Fact]
public void RebuildAddressSpace_starts_an_address_space_rebuild_span()
{
@@ -95,6 +98,8 @@ public sealed class OtOpcUaTelemetryHookTests : RuntimeActorTestBase
private readonly List<KeyValuePair<string, object?>[]> _tagSets = new();
private readonly object _gate = new();
/// <summary>Initializes the recorder for the specified instrument name.</summary>
/// <param name="instrumentName">Name of the instrument to listen for.</param>
public MeterRecorder(string instrumentName)
{
_name = instrumentName;
@@ -117,8 +122,12 @@ public sealed class OtOpcUaTelemetryHookTests : RuntimeActorTestBase
_listener.Start();
}
/// <summary>Gets the total value recorded.</summary>
public long Total { get { lock (_gate) return _total; } }
/// <summary>Gets count of measurements with the specified tag key-value pair.</summary>
/// <param name="key">Tag key.</param>
/// <param name="value">Tag value.</param>
public int WithTag(string key, string value)
{
lock (_gate)
@@ -127,7 +136,8 @@ public sealed class OtOpcUaTelemetryHookTests : RuntimeActorTestBase
}
}
public void Dispose() => _listener.Dispose();
/// <summary>Releases the listener.</summary>
public void Dispose() => _listener.Dispose();
}
/// <summary>Listens to a single ActivitySource by name and stores started Activities.</summary>
@@ -138,6 +148,8 @@ public sealed class OtOpcUaTelemetryHookTests : RuntimeActorTestBase
private readonly List<Activity> _activities = new();
private readonly object _gate = new();
/// <summary>Initializes the recorder for the specified operation name.</summary>
/// <param name="operationName">Name of the operation to listen for.</param>
public ActivityRecorder(string operationName)
{
_operationName = operationName;
@@ -156,23 +168,45 @@ public sealed class OtOpcUaTelemetryHookTests : RuntimeActorTestBase
ActivitySource.AddActivityListener(_listener);
}
/// <summary>Gets the list of recorded activities.</summary>
public IReadOnlyList<Activity> Activities { get { lock (_gate) return _activities.ToArray(); } }
/// <summary>Releases the listener.</summary>
public void Dispose() => _listener.Dispose();
}
private sealed class ConstEval(object? value) : IVirtualTagEvaluator
{
/// <summary>Evaluates the virtual tag with a constant value.</summary>
/// <param name="virtualTagId">Virtual tag ID.</param>
/// <param name="expression">Expression to evaluate.</param>
/// <param name="dependencies">Dependency values.</param>
public VirtualTagEvalResult Evaluate(string virtualTagId, string expression, IReadOnlyDictionary<string, object?> dependencies)
=> VirtualTagEvalResult.Ok(value);
}
private sealed class RecordingSink : IOpcUaAddressSpaceSink
{
/// <summary>Gets the write count.</summary>
public int Writes { get; private set; }
/// <summary>Records a value write.</summary>
/// <param name="nodeId">The OPC UA node identifier.</param>
/// <param name="value">The value being written.</param>
/// <param name="quality">The OPC UA quality status.</param>
/// <param name="sourceTimestampUtc">The source timestamp in UTC.</param>
public void WriteValue(string nodeId, object? value, OpcUaQuality quality, DateTime sourceTimestampUtc) => Writes++;
/// <summary>Records an alarm state write.</summary>
/// <param name="alarmNodeId">The alarm node identifier.</param>
/// <param name="active">Whether the alarm is active.</param>
/// <param name="acknowledged">Whether the alarm is acknowledged.</param>
/// <param name="occurredUtc">The time the alarm occurred in UTC.</param>
public void WriteAlarmState(string alarmNodeId, bool active, bool acknowledged, DateTime occurredUtc) => Writes++;
/// <summary>Ensures folder exists (stub implementation).</summary>
/// <param name="folderNodeId">The folder node identifier.</param>
/// <param name="parentNodeId">The parent folder node identifier.</param>
/// <param name="displayName">The display name for the folder.</param>
public void EnsureFolder(string folderNodeId, string? parentNodeId, string displayName) { }
/// <summary>Rebuilds address space (recorded via span).</summary>
public void RebuildAddressSpace() { /* recorded via span */ }
}
}