using Opc.Ua; using ZB.MOM.WW.OtOpcUa.Client.Shared.Adapters; using ZB.MOM.WW.OtOpcUa.Client.Shared.Models; namespace ZB.MOM.WW.OtOpcUa.Client.Shared.Tests.Fakes; internal sealed class FakeApplicationConfigurationFactory : IApplicationConfigurationFactory { /// Gets or sets a value indicating whether to throw when Create is called. public bool ThrowOnCreate { get; set; } /// Gets the number of times CreateAsync has been called. public int CreateCallCount { get; private set; } /// Gets the last connection settings passed to CreateAsync. public ConnectionSettings? LastSettings { get; private set; } /// public Task 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); } }