mirror of
https://github.com/bitwarden/server.git
synced 2025-07-03 00:52:49 -05:00
Create common test infrastructure project
This commit is contained in:
35
test/Common/AutoFixture/SutProviderCustomization.cs
Normal file
35
test/Common/AutoFixture/SutProviderCustomization.cs
Normal file
@ -0,0 +1,35 @@
|
||||
using System;
|
||||
using AutoFixture;
|
||||
using AutoFixture.Kernel;
|
||||
|
||||
namespace Bit.Test.Common.AutoFixture.Attributes
|
||||
{
|
||||
public class SutProviderCustomization : ICustomization, ISpecimenBuilder
|
||||
{
|
||||
private IFixture _fixture = null;
|
||||
|
||||
public object Create(object request, ISpecimenContext context)
|
||||
{
|
||||
if (context == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(context));
|
||||
}
|
||||
if (!(request is Type typeRequest))
|
||||
{
|
||||
return new NoSpecimen();
|
||||
}
|
||||
if (!typeof(ISutProvider).IsAssignableFrom(typeRequest))
|
||||
{
|
||||
return new NoSpecimen();
|
||||
}
|
||||
|
||||
return ((ISutProvider)Activator.CreateInstance(typeRequest, _fixture)).Create();
|
||||
}
|
||||
|
||||
public void Customize(IFixture fixture)
|
||||
{
|
||||
_fixture = fixture;
|
||||
fixture.Customizations.Add(this);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user