Add cross-platform OPC UA client stack: shared library, CLI tool, and Avalonia UI
Implements Client.Shared (IOpcUaClientService with connection lifecycle, failover, browse, read/write, subscriptions, alarms, history, redundancy), Client.CLI (8 CliFx commands mirroring tools/opcuacli-dotnet), and Client.UI (Avalonia desktop app with tree browser, read/write, subscriptions, alarms, and history tabs). All three target .NET 10 and are covered by 249 unit tests. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
using Opc.Ua;
|
||||
using ZB.MOM.WW.LmxOpcUa.Client.Shared.Adapters;
|
||||
using ZB.MOM.WW.LmxOpcUa.Client.Shared.Models;
|
||||
|
||||
namespace ZB.MOM.WW.LmxOpcUa.Client.Shared.Tests.Fakes;
|
||||
|
||||
internal sealed class FakeApplicationConfigurationFactory : IApplicationConfigurationFactory
|
||||
{
|
||||
public bool ThrowOnCreate { get; set; }
|
||||
public int CreateCallCount { get; private set; }
|
||||
public ConnectionSettings? LastSettings { get; private set; }
|
||||
|
||||
public Task<ApplicationConfiguration> CreateAsync(ConnectionSettings settings, CancellationToken ct)
|
||||
{
|
||||
CreateCallCount++;
|
||||
LastSettings = settings;
|
||||
|
||||
if (ThrowOnCreate)
|
||||
throw new InvalidOperationException("FakeApplicationConfigurationFactory configured to fail.");
|
||||
|
||||
var config = new ApplicationConfiguration
|
||||
{
|
||||
ApplicationName = "FakeClient",
|
||||
ApplicationUri = "urn:localhost:FakeClient",
|
||||
ApplicationType = ApplicationType.Client,
|
||||
SecurityConfiguration = new SecurityConfiguration
|
||||
{
|
||||
AutoAcceptUntrustedCertificates = true
|
||||
},
|
||||
ClientConfiguration = new ClientConfiguration
|
||||
{
|
||||
DefaultSessionTimeout = settings.SessionTimeoutSeconds * 1000
|
||||
}
|
||||
};
|
||||
|
||||
return Task.FromResult(config);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user