| File: TestServices\TestCertificateToolRunner.cs | Web Access |
| Project: src\tests\Aspire.Cli.Tests\Aspire.Cli.Tests.csproj (Aspire.Cli.Tests) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using Aspire.Cli.Certificates; using Microsoft.AspNetCore.Certificates.Generation; namespace Aspire.Cli.Tests.TestServices; /// <summary> /// Test implementation of ICertificateToolRunner that returns fully trusted certs by default. /// Used to avoid real certificate operations in tests. /// </summary> internal sealed class TestCertificateToolRunner : ICertificateToolRunner { public Func<CertificateTrustResult>? CheckHttpCertificateCallback { get; set; } public Func<EnsureCertificateResult>? EnsureHttpCertificateExistsCallback { get; set; } public Func<EnsureCertificateResult>? TrustHttpCertificateCallback { get; set; } public Func<CertificateCleanResult>? CleanHttpCertificateCallback { get; set; } public Func<string, string?>? ExportDevCertificatePublicPemCallback { get; set; } public CertificateTrustResult CheckHttpCertificate(CancellationToken cancellationToken = default) { cancellationToken.ThrowIfCancellationRequested(); if (CheckHttpCertificateCallback is not null) { return CheckHttpCertificateCallback(); } // Default: Return a fully trusted certificate result return new CertificateTrustResult { HasCertificates = true, TrustLevel = CertificateManager.TrustLevel.Full, Certificates = [] }; } public EnsureCertificateResult EnsureHttpCertificateExists() { return EnsureHttpCertificateExistsCallback is not null ? EnsureHttpCertificateExistsCallback() : EnsureCertificateResult.Succeeded; } public EnsureCertificateResult TrustHttpCertificate() { return TrustHttpCertificateCallback is not null ? TrustHttpCertificateCallback() : EnsureCertificateResult.ExistingHttpsCertificateTrusted; } public CertificateCleanResult CleanHttpCertificate() { return CleanHttpCertificateCallback is not null ? CleanHttpCertificateCallback() : new CertificateCleanResult { Success = true }; } public string? ExportDevCertificatePublicPem(string outputDirectory, CancellationToken cancellationToken = default) { cancellationToken.ThrowIfCancellationRequested(); return ExportDevCertificatePublicPemCallback is not null ? ExportDevCertificatePublicPemCallback(outputDirectory) : null; } }