using AutoFixture; using AutoFixture.Kernel; using Bit.Core.Context; using Bit.Test.Common.AutoFixture; using Bit.Test.Common.AutoFixture.Attributes; 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; } } internal class CurrentContextCustomize : BitCustomizeAttribute { public override ICustomization GetCustomization() => new CurrentContext(); }