| 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>? TrustHttpCertificateCallback { get; set; } public Func<CertificateCleanResult>? CleanHttpCertificateCallback { get; set; } public CertificateTrustResult CheckHttpCertificate() { 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 TrustHttpCertificate() { return TrustHttpCertificateCallback is not null ? TrustHttpCertificateCallback() : EnsureCertificateResult.ExistingHttpsCertificateTrusted; } public CertificateCleanResult CleanHttpCertificate() { return CleanHttpCertificateCallback is not null ? CleanHttpCertificateCallback() : new CertificateCleanResult { Success = true }; } }