File: TemplateManifest\ComponentManifestTests.cs
Web Access
Project: src\tests\Infrastructure.Tests\Infrastructure.Tests.csproj (Infrastructure.Tests)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
using GenerateTemplateManifest;
using VerifyXunit;
using Xunit;
 
namespace Infrastructure.Tests.TemplateManifest;
 
public sealed class ComponentManifestTests
{
    [Fact]
    public async Task RecordsExternalClosureWithoutBuildSpecificIdentities()
    {
        var manifest = new ComponentManifest(new HashSet<string>(StringComparer.OrdinalIgnoreCase)
        {
            "Aspire.Hosting/14.0.0-pr.42"
        });
        manifest.Register("nuget", "Aspire.Hosting", "14.0.0-pr.42", "fixture");
        manifest.Register("nuget", "External.Dependency", "1.0.0", "fixture");
        manifest.Register("nuget", "external.dependency", "1.0.0", "another graph");
        manifest.Register("nuget", "External.Dependency", "2.0.0", "another option");
        manifest.Register("npm", "@scope/dependency", "3.0.0", "lockfile");
 
        Assert.Equal(3, manifest.Count);
        await Verifier.Verify(manifest.Serialize(), "json").UseDirectory("Snapshots");
    }
 
    [Fact]
    public void ExclusionIsForTheBuiltVersionNotEveryVersionOfAPackage()
    {
        var manifest = new ComponentManifest(new HashSet<string>(StringComparer.OrdinalIgnoreCase)
        {
            "Aspire.Hosting/14.0.0-dev"
        });
        manifest.Register("nuget", "Aspire.Hosting", "13.5.4", "fixture");
 
        Assert.Equal(1, manifest.Count);
    }
}