File: Commands\McpCommandTests.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.Commands;
using Aspire.Cli.Tests.Utils;
using Microsoft.Extensions.DependencyInjection;
 
namespace Aspire.Cli.Tests.Commands;
 
public class McpCommandTests(ITestOutputHelper outputHelper)
{
    [Fact]
    public async Task McpCommandWithHelpArgumentReturnsZero()
    {
        using var workspace = TemporaryWorkspace.Create(outputHelper);
        var services = CliTestHelper.CreateServiceCollection(workspace, outputHelper);
        var provider = services.BuildServiceProvider();
 
        var command = provider.GetRequiredService<RootCommand>();
        var result = command.Parse("mcp --help");
 
        var exitCode = await result.InvokeAsync().WaitAsync(CliTestConstants.DefaultTimeout);
        Assert.Equal(0, exitCode);
    }
 
    [Fact]
    public async Task McpStartCommandWithHelpArgumentReturnsZero()
    {
        using var workspace = TemporaryWorkspace.Create(outputHelper);
        var services = CliTestHelper.CreateServiceCollection(workspace, outputHelper);
        var provider = services.BuildServiceProvider();
 
        var command = provider.GetRequiredService<RootCommand>();
        var result = command.Parse("mcp start --help");
 
        var exitCode = await result.InvokeAsync().WaitAsync(CliTestConstants.DefaultTimeout);
        Assert.Equal(0, exitCode);
    }
 
    [Fact]
    public async Task McpCommandExistsInRootCommand()
    {
        using var workspace = TemporaryWorkspace.Create(outputHelper);
        var services = CliTestHelper.CreateServiceCollection(workspace, outputHelper);
        var provider = services.BuildServiceProvider();
 
        var rootCommand = provider.GetRequiredService<RootCommand>();
        var mcpCommand = rootCommand.Subcommands.FirstOrDefault(c => c.Name == "mcp");
 
        Assert.NotNull(mcpCommand);
        Assert.Equal("mcp", mcpCommand.Name);
    }
 
    [Fact]
    public async Task McpCommandHasStartSubcommand()
    {
        using var workspace = TemporaryWorkspace.Create(outputHelper);
        var services = CliTestHelper.CreateServiceCollection(workspace, outputHelper);
        var provider = services.BuildServiceProvider();
 
        var rootCommand = provider.GetRequiredService<RootCommand>();
        var mcpCommand = rootCommand.Subcommands.FirstOrDefault(c => c.Name == "mcp");
 
        Assert.NotNull(mcpCommand);
        var startCommand = mcpCommand.Subcommands.FirstOrDefault(c => c.Name == "start");
        Assert.NotNull(startCommand);
        Assert.Equal("start", startCommand.Name);
    }
}