using System.Reflection; using AutoFixture; using AutoFixture.Xunit2; using Bit.Core.Models.Data; namespace Bit.Core.Test.AutoFixture; public class CollectionAccessSelectionCustomization : ICustomization { public bool Manage { get; set; } public bool ReadOnly { get; set; } public bool HidePasswords { get; set; } public CollectionAccessSelectionCustomization(bool manage) { Manage = manage; ReadOnly = !manage; HidePasswords = !manage; } public void Customize(IFixture fixture) { fixture.Customize(composer => composer .With(o => o.Manage, Manage) .With(o => o.ReadOnly, ReadOnly) .With(o => o.HidePasswords, HidePasswords)); } } public class CollectionAccessSelectionCustomizeAttribute : CustomizeAttribute { private readonly bool _manage; public CollectionAccessSelectionCustomizeAttribute(bool manage = false) { _manage = manage; } public override ICustomization GetCustomization(ParameterInfo parameter) { return new CollectionAccessSelectionCustomization(_manage); } }