test(client-ui): track Shelve/Confirm calls + exceptions in FakeOpcUaClientService

This commit is contained in:
Joseph Doherty
2026-06-16 18:19:29 -04:00
parent 6707be2a31
commit 8980adceb3
@@ -265,21 +265,39 @@ public sealed class FakeOpcUaClientService : IOpcUaClientService
/// <summary>Gets or sets the status code returned by confirmation operations in UI tests.</summary>
public StatusCode ConfirmResult { get; set; } = StatusCodes.Good;
/// <summary>Gets or sets the exception thrown to simulate alarm confirmation failures in the UI.</summary>
public Exception? ConfirmException { get; set; }
/// <summary>Gets the number of times ConfirmAlarmAsync has been called.</summary>
public int ConfirmCallCount { get; private set; }
/// <summary>Gets the (conditionNodeId, eventId, comment) of the last ConfirmAlarmAsync call.</summary>
public (string ConditionNodeId, byte[] EventId, string Comment)? LastConfirmCall { get; private set; }
/// <inheritdoc />
public Task<StatusCode> ConfirmAlarmAsync(string conditionNodeId, byte[] eventId, string comment,
CancellationToken ct = default)
{
ConfirmCallCount++;
LastConfirmCall = (conditionNodeId, eventId, comment);
if (ConfirmException != null) throw ConfirmException;
return Task.FromResult(ConfirmResult);
}
/// <summary>Gets or sets the status code returned by shelve operations in UI tests.</summary>
public StatusCode ShelveResult { get; set; } = StatusCodes.Good;
/// <summary>Gets or sets the exception thrown to simulate alarm shelve failures in the UI.</summary>
public Exception? ShelveException { get; set; }
/// <summary>Gets the number of times ShelveAlarmAsync has been called.</summary>
public int ShelveCallCount { get; private set; }
/// <summary>Gets the (conditionNodeId, kind, shelvingTimeSeconds) of the last ShelveAlarmAsync call.</summary>
public (string ConditionNodeId, ShelveKind Kind, double ShelvingTimeSeconds)? LastShelveCall { get; private set; }
/// <inheritdoc />
public Task<StatusCode> ShelveAlarmAsync(string conditionNodeId, ShelveKind kind, double shelvingTimeSeconds = 0,
CancellationToken ct = default)
{
ShelveCallCount++;
LastShelveCall = (conditionNodeId, kind, shelvingTimeSeconds);
if (ShelveException != null) throw ShelveException;
return Task.FromResult(ShelveResult);
}