fix(runtime): narrow ActorNodeWriteGateway catch + drop vacuous no-actor assertion
This commit is contained in:
@@ -60,10 +60,20 @@ public sealed class ActorNodeWriteGateway : IOpcUaNodeWriteGateway
|
||||
_logger.LogWarning("Operator write to {NodeId} rejected: {Reason}", nodeId, result.Reason);
|
||||
return new NodeWriteOutcome(result.Success, result.Reason);
|
||||
}
|
||||
catch (Exception ex) // AskTimeoutException, actor faults, cancellation
|
||||
catch (OperationCanceledException ex)
|
||||
{
|
||||
_logger.LogWarning(ex, "Operator write to {NodeId} failed or timed out", nodeId);
|
||||
_logger.LogWarning(ex, "Operator write to {NodeId} cancelled", nodeId);
|
||||
return new NodeWriteOutcome(false, "write cancelled");
|
||||
}
|
||||
catch (AskTimeoutException ex)
|
||||
{
|
||||
_logger.LogWarning(ex, "Operator write to {NodeId} timed out", nodeId);
|
||||
return new NodeWriteOutcome(false, "write timeout");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError(ex, "Operator write to {NodeId} failed unexpectedly", nodeId);
|
||||
return new NodeWriteOutcome(false, "write error");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -75,15 +75,11 @@ public sealed class ActorNodeWriteGatewayTests : RuntimeActorTestBase
|
||||
[Fact]
|
||||
public async Task No_actor_registered_maps_to_writes_unavailable()
|
||||
{
|
||||
var probe = CreateTestProbe();
|
||||
var gateway = new ActorNodeWriteGateway(resolveDriverHost: () => null, NullLogger.Instance);
|
||||
|
||||
var outcome = await gateway.WriteAsync("eq-1/speed", 123.0, CancellationToken.None);
|
||||
|
||||
outcome.Success.ShouldBeFalse();
|
||||
outcome.Reason.ShouldBe("writes unavailable");
|
||||
|
||||
// The resolver returned null, so nothing should have been messaged anywhere.
|
||||
probe.ExpectNoMsg(TimeSpan.FromMilliseconds(200));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user