// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

using Microsoft.AspNetCore.Testing;
using Xunit;

namespace AlwaysTestTests;

/// <summary>
/// Tests for every test assembly to ensure quarantined and unquarantined runs report at least one test execution.
/// </summary>
public class SuccessfulTests
{
    /// <summary>
    /// Test that executes in quarantined runs and always succeeds.
    /// </summary>
    [Fact]
    [QuarantinedTest("No issue")]
    public void GuaranteedQuarantinedTest()
    {
    }

    /// <summary>
    /// Test that executes in unquarantined runs and always succeeds.
    /// </summary>
    /// <remarks>
    /// <see cref="TraitAttribute"/> applied to ensure test runs even if assembly is quarantined overall.
    /// <c>dotnet test --filter</c>, <c>dotnet vstest --testcasefilter</c>, and
    /// <c>vstest.console.exe --testcasefilter</c> handle the "no Quarantined=true trait OR Quarantined=false" case
    /// e.g. <c>"Quarantined!=true|Quarantined=false</c>. But, <c>xunit.console.exe</c> doesn't have a syntax to
    /// make it work (yet?).
    /// </remarks>
    [Fact]
    [Trait("Quarantined", "false")]
    public void GuaranteedUnquarantinedTest()
    {
    }
}
