File: Agents\AgentEnvironmentApplicatorTests.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.Agents;
 
namespace Aspire.Cli.Tests.Agents;
 
public class AgentEnvironmentApplicatorTests
{
    [Fact]
    public async Task ApplyAsync_InvokesCallback()
    {
        var callbackInvoked = false;
        var applicator = new AgentEnvironmentApplicator(
            "Test Environment",
            _ =>
            {
                callbackInvoked = true;
                return Task.CompletedTask;
            });
 
        await applicator.ApplyAsync(CancellationToken.None);
 
        Assert.True(callbackInvoked);
    }
 
    [Fact]
    public async Task ApplyAsync_PassesCancellationToken()
    {
        using var cts = new CancellationTokenSource();
        CancellationToken receivedToken = default;
        var applicator = new AgentEnvironmentApplicator(
            "Test Environment",
            ct =>
            {
                receivedToken = ct;
                return Task.CompletedTask;
            });
 
        await applicator.ApplyAsync(cts.Token);
 
        Assert.Equal(cts.Token, receivedToken);
    }
 
    [Fact]
    public void Applicator_HasRequiredProperties()
    {
        var applicator = new AgentEnvironmentApplicator(
            "My Description",
            _ => Task.CompletedTask);
 
        Assert.Equal("My Description", applicator.Description);
        Assert.Equal(McpInitPromptGroup.AgentEnvironments, applicator.PromptGroup);
        Assert.Equal(0, applicator.Priority);
    }
 
    [Fact]
    public void Applicator_AllowsCustomPromptGroup()
    {
        var applicator = new AgentEnvironmentApplicator(
            "My Description",
            _ => Task.CompletedTask,
            promptGroup: McpInitPromptGroup.AdditionalOptions,
            priority: 5);
 
        Assert.Equal("My Description", applicator.Description);
        Assert.Equal(McpInitPromptGroup.AdditionalOptions, applicator.PromptGroup);
        Assert.Equal(5, applicator.Priority);
    }
}