1
0
mirror of https://github.com/bitwarden/server.git synced 2025-07-03 09:02:48 -05:00

Add Attribute to use the Bit Autodata dependency chain

BitAutoDataAttribute is used to mark a Theory as autopopulating
parameters.

Extract common attribute methods to to a helper class. Cannot
inherit a common base, since both require inheriting from different
Xunit base classes to work.
This commit is contained in:
Matt Gibson
2021-10-30 13:32:15 -04:00
parent b8fdbbcb9f
commit dea366828b
3 changed files with 90 additions and 48 deletions

View File

@ -0,0 +1,29 @@
using System;
using Xunit.Sdk;
using AutoFixture;
using System.Reflection;
using System.Collections.Generic;
using Bit.Test.Common.Helpers;
namespace Bit.Test.Common.AutoFixture.Attributes
{
public class BitAutoDataAttribute : DataAttribute
{
private readonly Func<IFixture> _createFixture;
private readonly object[] _fixedTestParameters;
public BitAutoDataAttribute(params object[] fixedTestParameters) :
this(() => new Fixture(), fixedTestParameters)
{ }
public BitAutoDataAttribute(Func<IFixture> createFixture, params object[] fixedTestParameters) :
base()
{
_createFixture = createFixture;
_fixedTestParameters = fixedTestParameters;
}
public override IEnumerable<object[]> GetData(MethodInfo testMethod)
=> BitAutoDataAttributeHelpers.GetData(testMethod, _createFixture(), _fixedTestParameters);
}
}