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
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:
+3
@@ -18,6 +18,7 @@ namespace ZB.MOM.WW.OtOpcUa.Driver.Modbus.Cli.Tests;
|
||||
[Trait("Category", "Unit")]
|
||||
public sealed class CommandCancellationTests
|
||||
{
|
||||
/// <summary>Verifies that probe command gracefully handles cancellation during initialization.</summary>
|
||||
[Fact]
|
||||
public async Task ProbeCommand_swallows_cancellation_during_initialize()
|
||||
{
|
||||
@@ -29,6 +30,7 @@ public sealed class CommandCancellationTests
|
||||
await Should.NotThrowAsync(async () => await sut.ExecuteAsync(console));
|
||||
}
|
||||
|
||||
/// <summary>Verifies that read command gracefully handles cancellation during initialization.</summary>
|
||||
[Fact]
|
||||
public async Task ReadCommand_swallows_cancellation_during_initialize()
|
||||
{
|
||||
@@ -46,6 +48,7 @@ public sealed class CommandCancellationTests
|
||||
await Should.NotThrowAsync(async () => await sut.ExecuteAsync(console));
|
||||
}
|
||||
|
||||
/// <summary>Verifies that write command gracefully handles cancellation during initialization.</summary>
|
||||
[Fact]
|
||||
public async Task WriteCommand_swallows_cancellation_during_initialize()
|
||||
{
|
||||
|
||||
@@ -23,11 +23,18 @@ public sealed class ModbusCommandBaseTests
|
||||
[Command("noop-test", Description = "Test-only probe of ModbusCommandBase.BuildOptions.")]
|
||||
private sealed class ProbeOnly : ModbusCommandBase
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public override ValueTask ExecuteAsync(IConsole console) => default;
|
||||
|
||||
/// <summary>Invokes BuildOptions with the given tags.</summary>
|
||||
/// <param name="tags">The list of tag definitions to build options for.</param>
|
||||
public ModbusDriverOptions Invoke(IReadOnlyList<ModbusTagDefinition> tags) => BuildOptions(tags);
|
||||
|
||||
/// <summary>Invokes ValidateEndpoint.</summary>
|
||||
public void InvokeValidate() => ValidateEndpoint();
|
||||
}
|
||||
|
||||
/// <summary>Verifies that BuildOptions disables probe for one-shot CLI runs.</summary>
|
||||
[Fact]
|
||||
public void BuildOptions_disables_probe_for_one_shot_cli_runs()
|
||||
{
|
||||
@@ -39,6 +46,7 @@ public sealed class ModbusCommandBaseTests
|
||||
options.Probe.Enabled.ShouldBeFalse();
|
||||
}
|
||||
|
||||
/// <summary>Verifies that BuildOptions maps TimeoutMs to Timeout TimeSpan.</summary>
|
||||
[Fact]
|
||||
public void BuildOptions_maps_TimeoutMs_to_Timeout_TimeSpan()
|
||||
{
|
||||
@@ -49,6 +57,7 @@ public sealed class ModbusCommandBaseTests
|
||||
options.Timeout.ShouldBe(TimeSpan.FromMilliseconds(7500));
|
||||
}
|
||||
|
||||
/// <summary>Verifies that BuildOptions AutoReconnect defaults to true when flag is unset.</summary>
|
||||
[Fact]
|
||||
public void BuildOptions_AutoReconnect_defaults_to_true_when_flag_unset()
|
||||
{
|
||||
@@ -59,6 +68,7 @@ public sealed class ModbusCommandBaseTests
|
||||
options.AutoReconnect.ShouldBeTrue();
|
||||
}
|
||||
|
||||
/// <summary>Verifies that BuildOptions AutoReconnect becomes false when disable reconnect flag is set.</summary>
|
||||
[Fact]
|
||||
public void BuildOptions_AutoReconnect_becomes_false_when_disable_reconnect_flag_set()
|
||||
{
|
||||
@@ -69,6 +79,7 @@ public sealed class ModbusCommandBaseTests
|
||||
options.AutoReconnect.ShouldBeFalse();
|
||||
}
|
||||
|
||||
/// <summary>Verifies that BuildOptions flows host, port, and unit through correctly.</summary>
|
||||
[Fact]
|
||||
public void BuildOptions_flows_host_port_unit_through()
|
||||
{
|
||||
@@ -81,6 +92,7 @@ public sealed class ModbusCommandBaseTests
|
||||
options.UnitId.ShouldBe((byte)17);
|
||||
}
|
||||
|
||||
/// <summary>Verifies that BuildOptions forwards the tag list verbatim.</summary>
|
||||
[Fact]
|
||||
public void BuildOptions_forwards_tag_list_verbatim()
|
||||
{
|
||||
@@ -96,6 +108,8 @@ public sealed class ModbusCommandBaseTests
|
||||
|
||||
// --- Driver.Modbus.Cli-003: parse-time endpoint validation -------------------------------
|
||||
|
||||
/// <summary>Verifies that ValidateEndpoint rejects ports outside the range 1 to 65535.</summary>
|
||||
/// <param name="port">The port value that should be rejected.</param>
|
||||
[Theory]
|
||||
[InlineData(0)]
|
||||
[InlineData(-1)]
|
||||
@@ -109,6 +123,8 @@ public sealed class ModbusCommandBaseTests
|
||||
Should.Throw<CliFx.Exceptions.CommandException>(() => sut.InvokeValidate());
|
||||
}
|
||||
|
||||
/// <summary>Verifies that ValidateEndpoint accepts ports in the valid range.</summary>
|
||||
/// <param name="port">The port value that should be accepted.</param>
|
||||
[Theory]
|
||||
[InlineData(1)]
|
||||
[InlineData(502)]
|
||||
@@ -120,6 +136,8 @@ public sealed class ModbusCommandBaseTests
|
||||
Should.NotThrow(() => sut.InvokeValidate());
|
||||
}
|
||||
|
||||
/// <summary>Verifies that ValidateEndpoint rejects non-positive timeout values.</summary>
|
||||
/// <param name="timeoutMs">The timeout value in milliseconds that should be rejected.</param>
|
||||
[Theory]
|
||||
[InlineData(0)]
|
||||
[InlineData(-1)]
|
||||
@@ -131,6 +149,8 @@ public sealed class ModbusCommandBaseTests
|
||||
Should.Throw<CliFx.Exceptions.CommandException>(() => sut.InvokeValidate());
|
||||
}
|
||||
|
||||
/// <summary>Verifies that ValidateEndpoint rejects unit IDs outside the range 1 to 247.</summary>
|
||||
/// <param name="unitId">The unit ID value that should be rejected.</param>
|
||||
[Theory]
|
||||
[InlineData(0)] // broadcast — disallowed for unicast read/write requests
|
||||
[InlineData(248)]
|
||||
@@ -142,6 +162,8 @@ public sealed class ModbusCommandBaseTests
|
||||
Should.Throw<CliFx.Exceptions.CommandException>(() => sut.InvokeValidate());
|
||||
}
|
||||
|
||||
/// <summary>Verifies that ValidateEndpoint accepts unit IDs in the valid range.</summary>
|
||||
/// <param name="unitId">The unit ID value that should be accepted.</param>
|
||||
[Theory]
|
||||
[InlineData(1)]
|
||||
[InlineData(247)]
|
||||
@@ -153,6 +175,7 @@ public sealed class ModbusCommandBaseTests
|
||||
Should.NotThrow(() => sut.InvokeValidate());
|
||||
}
|
||||
|
||||
/// <summary>Verifies that ValidateEndpoint accepts default options.</summary>
|
||||
[Fact]
|
||||
public void ValidateEndpoint_accepts_default_options()
|
||||
{
|
||||
|
||||
@@ -15,6 +15,7 @@ namespace ZB.MOM.WW.OtOpcUa.Driver.Modbus.Cli.Tests;
|
||||
[Trait("Category", "Unit")]
|
||||
public sealed class ProbeCommandTests
|
||||
{
|
||||
/// <summary>Verifies that ComputeVerdict returns OK when driver state is Healthy and status is Good.</summary>
|
||||
[Fact]
|
||||
public void ComputeVerdict_returns_OK_when_state_is_Healthy_and_status_is_Good()
|
||||
{
|
||||
@@ -23,6 +24,8 @@ public sealed class ProbeCommandTests
|
||||
verdict.ShouldContain("OK");
|
||||
}
|
||||
|
||||
/// <summary>Verifies that ComputeVerdict returns FAIL when driver state is not Healthy.</summary>
|
||||
/// <param name="state">The driver state to test.</param>
|
||||
[Theory]
|
||||
[InlineData(DriverState.Faulted)]
|
||||
[InlineData(DriverState.Reconnecting)]
|
||||
@@ -34,6 +37,8 @@ public sealed class ProbeCommandTests
|
||||
verdict.ShouldContain("FAIL");
|
||||
}
|
||||
|
||||
/// <summary>Verifies that ComputeVerdict returns FAIL when snapshot status is Bad even if driver is Healthy.</summary>
|
||||
/// <param name="statusCode">The OPC UA status code to test.</param>
|
||||
[Theory]
|
||||
[InlineData(0x80050000u)] // BadCommunicationError
|
||||
[InlineData(0x800A0000u)] // BadTimeout
|
||||
@@ -50,6 +55,7 @@ public sealed class ProbeCommandTests
|
||||
verdict.ShouldContain("FAIL");
|
||||
}
|
||||
|
||||
/// <summary>Verifies that ComputeVerdict returns DEGRADED for uncertain status with healthy driver.</summary>
|
||||
[Fact]
|
||||
public void ComputeVerdict_returns_DEGRADED_for_uncertain_status_with_healthy_driver()
|
||||
{
|
||||
|
||||
@@ -7,6 +7,11 @@ namespace ZB.MOM.WW.OtOpcUa.Driver.Modbus.Cli.Tests;
|
||||
[Trait("Category", "Unit")]
|
||||
public sealed class ReadCommandTests
|
||||
{
|
||||
/// <summary>Verifies that SynthesiseTagName produces a stable, readable tag name format.</summary>
|
||||
/// <param name="region">The Modbus region.</param>
|
||||
/// <param name="address">The register address.</param>
|
||||
/// <param name="type">The Modbus data type.</param>
|
||||
/// <param name="expected">The expected synthesised tag name string.</param>
|
||||
[Theory]
|
||||
[InlineData(ModbusRegion.HoldingRegisters, 100, ModbusDataType.UInt16, "HR[100]:UInt16")]
|
||||
[InlineData(ModbusRegion.Coils, 0, ModbusDataType.Bool, "Coil[0]:Bool")]
|
||||
|
||||
+12
@@ -13,6 +13,9 @@ namespace ZB.MOM.WW.OtOpcUa.Driver.Modbus.Cli.Tests;
|
||||
[Trait("Category", "Unit")]
|
||||
public sealed class WriteCommandParseValueTests
|
||||
{
|
||||
/// <summary>Verifies that boolean parsing accepts multiple aliases for true and false.</summary>
|
||||
/// <param name="raw">The raw string value to parse.</param>
|
||||
/// <param name="expected">The expected boolean result.</param>
|
||||
[Theory]
|
||||
[InlineData("true", true)]
|
||||
[InlineData("false", false)]
|
||||
@@ -27,6 +30,7 @@ public sealed class WriteCommandParseValueTests
|
||||
WriteCommand.ParseValue(raw, ModbusDataType.Bool).ShouldBe(expected);
|
||||
}
|
||||
|
||||
/// <summary>Verifies that boolean parsing rejects unrecognized string values.</summary>
|
||||
[Fact]
|
||||
public void ParseValue_Bool_rejects_unknown_strings()
|
||||
{
|
||||
@@ -34,6 +38,7 @@ public sealed class WriteCommandParseValueTests
|
||||
() => WriteCommand.ParseValue("maybe", ModbusDataType.Bool));
|
||||
}
|
||||
|
||||
/// <summary>Verifies that Int16 parsing handles positive and negative values correctly.</summary>
|
||||
[Fact]
|
||||
public void ParseValue_Int16_parses_positive_and_negative()
|
||||
{
|
||||
@@ -41,6 +46,7 @@ public sealed class WriteCommandParseValueTests
|
||||
WriteCommand.ParseValue("32767", ModbusDataType.Int16).ShouldBe((short)32767);
|
||||
}
|
||||
|
||||
/// <summary>Verifies that both UInt16 and Bcd16 parsing return ushort type values.</summary>
|
||||
[Fact]
|
||||
public void ParseValue_UInt16_and_Bcd16_both_yield_ushort()
|
||||
{
|
||||
@@ -48,12 +54,14 @@ public sealed class WriteCommandParseValueTests
|
||||
WriteCommand.ParseValue("65535", ModbusDataType.Bcd16).ShouldBeOfType<ushort>();
|
||||
}
|
||||
|
||||
/// <summary>Verifies that Float32 parsing uses invariant culture with period as decimal separator.</summary>
|
||||
[Fact]
|
||||
public void ParseValue_Float32_uses_invariant_culture_period_as_decimal_separator()
|
||||
{
|
||||
WriteCommand.ParseValue("3.14", ModbusDataType.Float32).ShouldBe(3.14f);
|
||||
}
|
||||
|
||||
/// <summary>Verifies that Float64 parsing maintains precision for larger decimal values.</summary>
|
||||
[Fact]
|
||||
public void ParseValue_Float64_handles_larger_precision()
|
||||
{
|
||||
@@ -62,12 +70,14 @@ public sealed class WriteCommandParseValueTests
|
||||
((double)result).ShouldBe(2.718281828d, 0.0000001d);
|
||||
}
|
||||
|
||||
/// <summary>Verifies that String parsing returns the raw input without modification.</summary>
|
||||
[Fact]
|
||||
public void ParseValue_String_returns_raw_string_unmodified()
|
||||
{
|
||||
WriteCommand.ParseValue("hello world", ModbusDataType.String).ShouldBe("hello world");
|
||||
}
|
||||
|
||||
/// <summary>Verifies that BitInRegister parsing accepts boolean aliases.</summary>
|
||||
[Fact]
|
||||
public void ParseValue_BitInRegister_accepts_bool_aliases()
|
||||
{
|
||||
@@ -75,12 +85,14 @@ public sealed class WriteCommandParseValueTests
|
||||
WriteCommand.ParseValue("0", ModbusDataType.BitInRegister).ShouldBe(false);
|
||||
}
|
||||
|
||||
/// <summary>Verifies that Int32 parsing handles negative maximum values correctly.</summary>
|
||||
[Fact]
|
||||
public void ParseValue_Int32_parses_negative_max()
|
||||
{
|
||||
WriteCommand.ParseValue("-2147483648", ModbusDataType.Int32).ShouldBe(int.MinValue);
|
||||
}
|
||||
|
||||
/// <summary>Verifies that parsing rejects non-numeric strings for numeric data types.</summary>
|
||||
[Fact]
|
||||
public void ParseValue_rejects_non_numeric_for_numeric_types()
|
||||
{
|
||||
|
||||
+6
@@ -17,6 +17,10 @@ namespace ZB.MOM.WW.OtOpcUa.Driver.Modbus.Cli.Tests;
|
||||
[Trait("Category", "Unit")]
|
||||
public sealed class WriteCommandRegionValidationTests
|
||||
{
|
||||
/// <summary>Verifies that write to read-only regions is rejected before reaching the driver.</summary>
|
||||
/// <param name="region">The read-only Modbus region to attempt a write against.</param>
|
||||
/// <param name="type">The data type used in the write attempt.</param>
|
||||
/// <param name="value">The raw string value supplied to the write command.</param>
|
||||
[Theory]
|
||||
[InlineData(ModbusRegion.DiscreteInputs, ModbusDataType.Bool, "0")]
|
||||
[InlineData(ModbusRegion.InputRegisters, ModbusDataType.UInt16, "1")]
|
||||
@@ -38,6 +42,8 @@ public sealed class WriteCommandRegionValidationTests
|
||||
async () => await sut.ExecuteAsync(console));
|
||||
}
|
||||
|
||||
/// <summary>Verifies that Coils region requires Bool data type (Driver.Modbus.Cli-002).</summary>
|
||||
/// <param name="type">The non-Bool data type that should be rejected for the Coils region.</param>
|
||||
[Theory]
|
||||
[InlineData(ModbusDataType.UInt16)]
|
||||
[InlineData(ModbusDataType.Int16)]
|
||||
|
||||
Reference in New Issue
Block a user