File: AddProjectTests.cs
Web Access
Project: src\tests\Aspire.Hosting.Foundry.Tests\Aspire.Hosting.Foundry.Tests.csproj (Aspire.Hosting.Foundry.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.Hosting.Tests.Utils;
using Aspire.Hosting.Utils;
 
namespace Aspire.Hosting.Foundry.Tests;
 
public class AddProjectTests
{
    [Fact]
    public void ShouldCreateProject()
    {
        const string name = "my-project";
        using var builder = TestDistributedApplicationBuilder.Create();
 
        var resourceBuilder = builder.AddFoundry("account")
            .AddProject(name);
 
        Assert.NotNull(resourceBuilder);
        Assert.NotNull(resourceBuilder.Resource);
        Assert.Equal(name, resourceBuilder.Resource.Name);
        Assert.IsType<AzureCognitiveServicesProjectResource>(resourceBuilder.Resource);
    }
 
    [Fact]
    public async Task AddProject_WithReference_ShouldBindUriConnectionProperty()
    {
        using var builder = TestDistributedApplicationBuilder.Create();
        var project = builder.AddFoundry("test-account")
            .AddProject("test-project");
 
        var pyapp = builder.AddPythonApp("app", "./app.py", "main:app")
            .WithReference(project);
 
        builder.Build();
        var envVars = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(pyapp.Resource, DistributedApplicationOperation.Publish, TestServiceProvider.Instance);
 
        Assert.Contains(envVars, (kvp) =>
        {
            var (key, value) = kvp;
            return key is "TEST_PROJECT_URI"
                && value is "{test-project.outputs.endpoint}";
        });
    }
}