File: DeprecationTests.cs
Web Access
Project: ..\..\..\test\Microsoft.NET.Sdk.Web.Tests\Microsoft.NET.Sdk.Web.Tests.csproj (Microsoft.NET.Sdk.Web.Tests)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
#nullable disable
 
namespace Microsoft.NET.Sdk.Web.Tests;
 
public class DeprecationTests(ITestOutputHelper log) : SdkTest(log)
{
    [Fact]
    public void It_does_not_show_deprecation_warning_when_IncludeOpenAPIAnalyzers_is_not_set()
    {
        var testProject = new TestProject()
        {
            Name = "WebAppWithoutOpenAPIAnalyzers",
            TargetFrameworks = ToolsetInfo.CurrentTargetFramework,
            ProjectSdk = "Microsoft.NET.Sdk.Web"
        };
 
        var testAsset = _testAssetsManager.CreateTestProject(testProject);
 
        var buildCommand = new BuildCommand(testAsset);
        buildCommand
            .Execute()
            .Should()
            .Pass()
            .And
            .NotHaveStdOutContaining("ASPDEPR007")
            .And
            .NotHaveStdOutContaining("IncludeOpenAPIAnalyzers");
    }
 
    [Fact]
    public void It_does_not_show_deprecation_warning_when_IncludeOpenAPIAnalyzers_is_false()
    {
        var testProject = new TestProject()
        {
            Name = "WebAppWithOpenAPIAnalyzersFalse",
            TargetFrameworks = ToolsetInfo.CurrentTargetFramework,
            ProjectSdk = "Microsoft.NET.Sdk.Web"
        };
 
        testProject.AdditionalProperties["IncludeOpenAPIAnalyzers"] = "false";
 
        var testAsset = _testAssetsManager.CreateTestProject(testProject);
 
        var buildCommand = new BuildCommand(testAsset);
        buildCommand
            .Execute()
            .Should()
            .Pass()
            .And
            .NotHaveStdOutContaining("ASPDEPR007");
    }
 
    [Theory]
    [InlineData(ToolsetInfo.CurrentTargetFramework)]
    [InlineData("net8.0")]
    [InlineData("net9.0")]
    public void It_shows_deprecation_warning_across_target_frameworks(string targetFramework)
    {
        var testProject = new TestProject()
        {
            Name = $"WebApp_{targetFramework.Replace(".", "_")}",
            TargetFrameworks = targetFramework,
            ProjectSdk = "Microsoft.NET.Sdk.Web"
        };
 
        testProject.AdditionalProperties["IncludeOpenAPIAnalyzers"] = "true";
 
        var testAsset = _testAssetsManager.CreateTestProject(testProject, identifier: targetFramework);
 
        var buildCommand = new BuildCommand(testAsset);
        buildCommand
            .Execute()
            .Should()
            .Pass()
            .And
            .HaveStdOutContaining("ASPDEPR007");
    }
}