using System.Reflection;
using Xunit.Sdk;

namespace ClawdDotNet.Core.Tests.Infrastructure;

/// <summary>
/// Führt einen Theory-Test mehrfach aus.
///
/// Race Conditions treten sporadisch auf — ein einmaliger Durchlauf sagt wenig.
/// Der Testparameter ist der Durchlauf-Index und wird üblicherweise ignoriert.
/// </summary>
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
public sealed class RepeatAttribute(int count) : DataAttribute
{
    public override IEnumerable<object[]> GetData(MethodInfo testMethod)
        => Enumerable.Range(1, count).Select(i => new object[] { i });
}
