using System.Reflection; using AutoFixture; using Bit.Test.Common.Helpers; using Xunit.Sdk; namespace Bit.Test.Common.AutoFixture.Attributes { [DataDiscoverer("AutoFixture.Xunit2.NoPreDiscoveryDataDiscoverer", "AutoFixture.Xunit2")] public class BitAutoDataAttribute : DataAttribute { private readonly Func _createFixture; private readonly object[] _fixedTestParameters; public BitAutoDataAttribute(params object[] fixedTestParameters) : this(() => new Fixture(), fixedTestParameters) { } public BitAutoDataAttribute(Func createFixture, params object[] fixedTestParameters) : base() { _createFixture = createFixture; _fixedTestParameters = fixedTestParameters; } public override IEnumerable GetData(MethodInfo testMethod) => BitAutoDataAttributeHelpers.GetData(testMethod, _createFixture(), _fixedTestParameters); } }