using AutoFixture; using AutoFixture.Dsl; using Bit.Core.Vault.Models.Data; namespace Bit.Core.Test.AutoFixture.CipherAttachmentMetaData; public class MetaData : ICustomization { protected virtual IPostprocessComposer ComposerAction(IFixture fixture, ICustomizationComposer composer) { return composer.With(d => d.Size, fixture.Create()); } public void Customize(IFixture fixture) { fixture.Customize(composer => ComposerAction(fixture, composer)); fixture.Behaviors.OfType() .ToList() .ForEach(b => fixture.Behaviors.Remove(b)); fixture.Behaviors.Add(new OmitOnRecursionBehavior(1)); } } public class MetaDataWithoutContainer : MetaData { protected override IPostprocessComposer ComposerAction(IFixture fixture, ICustomizationComposer composer) => base.ComposerAction(fixture, composer).With(d => d.ContainerName, (string)null); } public class MetaDataWithoutKey : MetaDataWithoutContainer { protected override IPostprocessComposer ComposerAction(IFixture fixture, ICustomizationComposer composer) => base.ComposerAction(fixture, composer).Without(d => d.Key); }