using System; using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Tgstation.Server.Host.Security; using Tgstation.Server.Host.Utils.GitHub; namespace Tgstation.Server.Tests.Live { sealed class DummyGitHubServiceFactory : IGitHubServiceFactory { readonly ICryptographySuite cryptographySuite; readonly ILogger logger; public DummyGitHubServiceFactory(ICryptographySuite cryptographySuite, ILogger logger) { this.cryptographySuite = cryptographySuite ?? throw new ArgumentNullException(nameof(cryptographySuite)); this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); } public ValueTask CreateService(CancellationToken cancellationToken) => ValueTask.FromResult(CreateDummyService()); public ValueTask CreateService(string accessToken, CancellationToken cancellationToken) { ArgumentNullException.ThrowIfNull(accessToken); return ValueTask.FromResult(CreateDummyService()); } public ValueTask CreateService(string accessString, RepositoryIdentifier repositoryIdentifier, CancellationToken cancellationToken) { ArgumentNullException.ThrowIfNull(accessString); ArgumentNullException.ThrowIfNull(repositoryIdentifier); return ValueTask.FromResult(CreateDummyService()); } TestingGitHubService CreateDummyService() => new TestingGitHubService(cryptographySuite, logger); } }