using System; using System.Collections.Generic; using AutoFixture; using AutoFixture.Kernel; using Bit.Core.Context; namespace Bit.Core.Test.AutoFixture.CurrentContextFixtures { internal class CurrentContext : ICustomization { public void Customize(IFixture fixture) { fixture.Customizations.Add(new CurrentContextBuilder()); } } internal class CurrentContextBuilder : ISpecimenBuilder { 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(ICurrentContext) != typeRequest) { return new NoSpecimen(); } var obj = new Fixture().WithAutoNSubstitutions().Create(); obj.Organizations = context.Create>(); return obj; } } }