namespace ClawdDotNet.Core.Tests.Infrastructure;

/// <summary>
/// Ein Test, der nur unter Linux etwas aussagt.
///
/// Nötig geworden mit der Linux-Portierung: Groß-/Kleinschreibung und symbolische
/// Verknüpfungen verhalten sich je Dateisystem unterschiedlich. Solche Fälle unter
/// Windows mitlaufen zu lassen, würde entweder fehlschlagen oder — schlimmer — grün
/// sein, ohne das Gemeinte geprüft zu haben.
///
/// Bewusst ein Übersprung mit Begründung statt eines stillen <c>return</c>: Im
/// Testbericht ist dann sichtbar, dass hier etwas <em>nicht</em> geprüft wurde.
/// </summary>
public sealed class LinuxFactAttribute : FactAttribute
{
    public LinuxFactAttribute()
    {
        if (!OperatingSystem.IsLinux())
            Skip = "Nur unter Linux aussagekräftig (Groß-/Kleinschreibung, Verknüpfungen).";
    }
}

/// <summary>Ein Test, der nur unter Windows etwas aussagt. Siehe <see cref="LinuxFactAttribute"/>.</summary>
public sealed class WindowsFactAttribute : FactAttribute
{
    public WindowsFactAttribute()
    {
        if (!OperatingSystem.IsWindows())
            Skip = "Nur unter Windows aussagekräftig.";
    }
}
