using ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Runtime; namespace ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests.Runtime; /// /// test double that resolves every acknowledge to one fixed /// credential (or refuses all), recording the key ids it was asked about. /// internal sealed class FixedAckCredentialResolver : IGalaxyAckCredentialResolver { private readonly GalaxyAckCredential? _credential; private FixedAckCredentialResolver(GalaxyAckCredential? credential) => _credential = credential; /// Gets the key ids the driver resolved for, in order. public List RequestedKeyIds { get; } = []; /// A resolver that always returns a fallback account ACKDOM\ack-op / pw. public static FixedAckCredentialResolver Fallback() => new(new GalaxyAckCredential("ack-op", "ACKDOM", "pw", GalaxyAckCredentialSource.Fallback)); /// A resolver that refuses every acknowledge. public static FixedAckCredentialResolver RefuseAll() => new(null); /// public Task ResolveAsync(string? apiKeyId, CancellationToken cancellationToken) { RequestedKeyIds.Add(apiKeyId); return Task.FromResult(_credential is null ? GalaxyAckCredentialResolution.Refused("test refusal") : GalaxyAckCredentialResolution.Resolved(_credential)); } }