| File: Commands\OperatingSystemCheckTests.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.EnvironmentChecker; using Aspire.Cli.Resources; namespace Aspire.Cli.Tests.Commands; public class OperatingSystemCheckTests { [Fact] public async Task CheckAsync_ReturnsEnvironmentResultWithMetadata() { var check = new OperatingSystemCheck(() => new OperatingSystemDetails( Type: "Linux", Name: "Linux Ubuntu", Version: "24.04", Description: "Ubuntu 24.04.2 LTS", Status: EnvironmentCheckStatus.Pass)); var result = Assert.Single(await check.CheckAsync(TestContext.Current.CancellationToken)); Assert.Equal(EnvironmentCheckCategories.Environment, result.Category); Assert.Equal(OperatingSystemCheck.CheckName, result.Name); Assert.Equal(EnvironmentCheckStatus.Pass, result.Status); Assert.Equal("Operating system: Linux Ubuntu 24.04", result.Message); Assert.NotNull(result.Metadata); Assert.Equal("Linux", result.Metadata["osType"]!.GetValue<string>()); Assert.Equal("Linux Ubuntu", result.Metadata["displayName"]!.GetValue<string>()); Assert.Equal("24.04", result.Metadata["version"]!.GetValue<string>()); Assert.Equal("Ubuntu 24.04.2 LTS", result.Metadata["description"]!.GetValue<string>()); } [Fact] public async Task CheckAsync_ReturnsWarningForUnknownOperatingSystem() { var check = new OperatingSystemCheck(() => new OperatingSystemDetails( Type: "unknown", Name: "unknown", Version: "1.2.3", Description: "Unknown OS description", Status: EnvironmentCheckStatus.Warning, MessageDisplayName: DoctorCommandStrings.VersionUnknown)); var result = Assert.Single(await check.CheckAsync(TestContext.Current.CancellationToken)); Assert.Equal(EnvironmentCheckStatus.Warning, result.Status); Assert.Equal("Operating system: unknown 1.2.3", result.Message); Assert.NotNull(result.Metadata); Assert.Equal("unknown", result.Metadata["osType"]!.GetValue<string>()); Assert.Equal("unknown", result.Metadata["displayName"]!.GetValue<string>()); Assert.Equal("1.2.3", result.Metadata["version"]!.GetValue<string>()); Assert.Equal("Unknown OS description", result.Metadata["description"]!.GetValue<string>()); } [Theory] [InlineData(10, 0, 19045)] [InlineData(10, 0, 22631)] public void CreateWindowsDetails_UsesHighLevelWindowsName(int major, int minor, int build) { var details = OperatingSystemCheck.CreateWindowsDetails(new Version(major, minor, build), "Microsoft Windows"); Assert.Equal("Windows", details.Type); Assert.Equal("Windows", details.Name); Assert.Equal($"{major}.{minor}.{build}", details.Version); } [Theory] [InlineData(26, 0)] [InlineData(15, 1)] public void CreateMacOSDetails_UsesHighLevelMacOSName(int major, int minor) { var details = OperatingSystemCheck.CreateMacOSDetails(new Version(major, minor), "Darwin"); Assert.Equal("macOS", details.Type); Assert.Equal("macOS", details.Name); Assert.Equal($"{major}.{minor}", details.Version); } [Fact] public void ParseLinuxOsRelease_StripsQuotesAndPreservesEscapes() { var values = OperatingSystemCheck.ParseLinuxOsRelease(""" NAME="Example \"Linux\"" PRETTY_NAME="Cost \$1\!" VERSION_ID='1.0' PATH='path\\to' ID=example-linux """); Assert.Equal("Example \\\"Linux\\\"", values["NAME"]); Assert.Equal(@"Cost \$1\!", values["PRETTY_NAME"]); Assert.Equal("1.0", values["VERSION_ID"]); Assert.Equal(@"path\\to", values["PATH"]); Assert.Equal("example-linux", values["ID"]); } }