fix(dcl): async OPC UA endpoint discovery bounded by OperationTimeoutMs/verify budget; adapter connect never runs on the actor thread (review 2026-10-21 02/P2)
This commit is contained in:
+7
-7
@@ -8,19 +8,19 @@ public class OpcUaSecurityDowngradeTests
|
||||
[Theory]
|
||||
[InlineData(false)]
|
||||
[InlineData(true)]
|
||||
public void DC4_RequestedProtectionNeverFallsBackToNone(bool discoveryFails)
|
||||
public async Task DC4_RequestedProtectionNeverFallsBackToNone(bool discoveryFails)
|
||||
{
|
||||
Assert.Throws<InvalidOperationException>(() => RealOpcUaClient.DiscoverEndpoint("opc.tcp://test:4840",
|
||||
MessageSecurityMode.SignAndEncrypt, () => discoveryFails
|
||||
await Assert.ThrowsAsync<InvalidOperationException>(() => RealOpcUaClient.DiscoverEndpointAsync("opc.tcp://test:4840",
|
||||
MessageSecurityMode.SignAndEncrypt, _ => discoveryFails
|
||||
? throw new Exception("discovery unavailable")
|
||||
: new EndpointDescriptionCollection { new("opc.tcp://test:4840") { SecurityMode = MessageSecurityMode.None } }));
|
||||
: Task.FromResult(new EndpointDescriptionCollection { new("opc.tcp://test:4840") { SecurityMode = MessageSecurityMode.None } })));
|
||||
}
|
||||
/// <summary>Verifies that DC4: exact requested mode is selected.</summary>
|
||||
[Fact]
|
||||
public void DC4_ExactRequestedModeIsSelected()
|
||||
public async Task DC4_ExactRequestedModeIsSelected()
|
||||
{
|
||||
var encrypted = new EndpointDescription("opc.tcp://test:4840") { SecurityMode = MessageSecurityMode.SignAndEncrypt };
|
||||
Assert.Same(encrypted, RealOpcUaClient.DiscoverEndpoint("opc.tcp://test:4840", MessageSecurityMode.SignAndEncrypt,
|
||||
() => new EndpointDescriptionCollection { new("opc.tcp://test:4840"), encrypted }));
|
||||
Assert.Same(encrypted, await RealOpcUaClient.DiscoverEndpointAsync("opc.tcp://test:4840", MessageSecurityMode.SignAndEncrypt,
|
||||
_ => Task.FromResult(new EndpointDescriptionCollection { new("opc.tcp://test:4840"), encrypted })));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user