| File: TestServices\TestCliUpdateNotifier.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.Utils; namespace Aspire.Cli.Tests.TestServices; internal sealed class TestCliUpdateNotifier : ICliUpdateNotifier { public bool NotifyWasCalled { get; private set; } public Func<bool>? IsUpdateAvailableCallback { get; set; } public Func<DirectoryInfo, CancellationToken, Task<CliVersionStatus>>? GetVersionStatusAsyncCallback { get; set; } public Func<DirectoryInfo, CancellationToken, Task>? CheckForCliUpdatesAsyncCallback { get; set; } public Action? NotifyIfUpdateAvailableCallback { get; set; } public Task CheckForCliUpdatesAsync(DirectoryInfo workingDirectory, CancellationToken cancellationToken) { if (CheckForCliUpdatesAsyncCallback is not null) { return CheckForCliUpdatesAsyncCallback(workingDirectory, cancellationToken); } return Task.CompletedTask; } public Task<CliVersionStatus> GetVersionStatusAsync(DirectoryInfo workingDirectory, CancellationToken cancellationToken) { return GetVersionStatusAsyncCallback is not null ? GetVersionStatusAsyncCallback(workingDirectory, cancellationToken) : Task.FromResult(new CliVersionStatus("13.0.0", null, null)); } public void NotifyIfUpdateAvailable() { NotifyWasCalled = true; NotifyIfUpdateAvailableCallback?.Invoke(); } public bool IsUpdateAvailable() { return IsUpdateAvailableCallback?.Invoke() ?? false; } }