fix(driver-cli-common): resolve High code-review finding (Driver.Cli.Common-001)
SnapshotFormatter.FormatStatus mapped four OPC UA status names to incorrect numeric codes, mislabelling operator-facing CLI output. The codes were corrected to their canonical OPC Foundation Opc.Ua.StatusCodes values: BadTimeout 0x80060000 -> 0x800A0000 BadNoCommunication 0x80070000 -> 0x80310000 BadWaitingForInitialData 0x80080000 -> 0x80320000 BadNodeIdInvalid 0x80350000 -> 0x80330000 The Cli.Common project does not reference the Opc.Ua package (only Core.Abstractions / CliFx / Serilog), so the hex literals were corrected in place with a sync note rather than adding a heavy new dependency. SnapshotFormatterTests was updated: the [Theory] expectations now use the correct spec codes and assert the full rendered form, plus a new regression [Theory] confirms the pre-fix wrong names no longer apply. All 24 tests pass. findings.md: Driver.Cli.Common-001 set to Resolved; open count 6 -> 5. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -103,16 +103,18 @@ public static class SnapshotFormatter
|
||||
// Match the OPC UA shorthand for the statuses most-likely to land in a CLI run.
|
||||
// Anything outside this short-list surfaces as hex — operators can cross-reference
|
||||
// against OPC UA Part 6 § 7.34 (StatusCode tables) or Core.Abstractions status mappers.
|
||||
// Numeric codes are the canonical values from the OPC Foundation Opc.Ua.StatusCodes
|
||||
// table; keep them in sync with that table if this list is extended.
|
||||
var name = statusCode switch
|
||||
{
|
||||
0x00000000u => "Good",
|
||||
0x80000000u => "Bad",
|
||||
0x80050000u => "BadCommunicationError",
|
||||
0x80060000u => "BadTimeout",
|
||||
0x80070000u => "BadNoCommunication",
|
||||
0x80080000u => "BadWaitingForInitialData",
|
||||
0x800A0000u => "BadTimeout",
|
||||
0x80310000u => "BadNoCommunication",
|
||||
0x80320000u => "BadWaitingForInitialData",
|
||||
0x80340000u => "BadNodeIdUnknown",
|
||||
0x80350000u => "BadNodeIdInvalid",
|
||||
0x80330000u => "BadNodeIdInvalid",
|
||||
0x80740000u => "BadTypeMismatch",
|
||||
0x40000000u => "Uncertain",
|
||||
_ => null,
|
||||
|
||||
Reference in New Issue
Block a user