using System.CommandLine; using System.Linq; using System.Threading; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using StellaOps.Cli.Commands; using StellaOps.Cli.Configuration; namespace StellaOps.Cli.Tests.Commands; public sealed class ImageCommandTests { [Fact] public void Create_ExposesImageInspectCommand() { using var loggerFactory = LoggerFactory.Create(builder => builder.SetMinimumLevel(LogLevel.None)); var services = new ServiceCollection().BuildServiceProvider(); var root = CommandFactory.Create(services, new StellaOpsCliOptions(), CancellationToken.None, loggerFactory); var image = Assert.Single(root.Subcommands, command => string.Equals(command.Name, "image", StringComparison.Ordinal)); var inspect = Assert.Single(image.Subcommands, command => string.Equals(command.Name, "inspect", StringComparison.Ordinal)); Assert.Contains(inspect.Options, option => option.Name == "--resolve-index" || option.Aliases.Contains("--resolve-index")); Assert.Contains(inspect.Options, option => option.Name == "--print-layers" || option.Aliases.Contains("--print-layers")); Assert.Contains(inspect.Options, option => option.Name == "--platform" || option.Aliases.Contains("--platform")); Assert.Contains(inspect.Options, option => option.Name == "--output" || option.Aliases.Contains("--output")); Assert.Contains(inspect.Options, option => option.Name == "--timeout" || option.Aliases.Contains("--timeout")); Assert.Contains(inspect.Arguments, argument => string.Equals(argument.Name, "reference", StringComparison.Ordinal)); } }