using System.Reflection; using AutoFixture; using AutoFixture.Xunit2; using Bit.Core.AdminConsole.Entities; using Bit.Core.AdminConsole.Enums; using Bit.Core.AdminConsole.Models.Data.Organizations.Policies; namespace Bit.Core.Test.AdminConsole.AutoFixture; internal class PolicyCustomization : ICustomization { public PolicyType Type { get; set; } public bool Enabled { get; set; } public string? Data { get; set; } public PolicyCustomization(PolicyType type, bool enabled, string? data) { Type = type; Enabled = enabled; Data = data; } public void Customize(IFixture fixture) { var orgId = Guid.NewGuid(); fixture.Customize(composer => composer .With(o => o.OrganizationId, orgId) .With(o => o.Type, Type) .With(o => o.Enabled, Enabled) .With(o => o.Data, Data)); fixture.Customize(composer => composer .With(o => o.OrganizationId, orgId) .With(o => o.Type, Type) .With(o => o.Enabled, Enabled) .With(o => o.Data, Data)); } } public class PolicyAttribute : CustomizeAttribute { private readonly PolicyType _type; private readonly bool _enabled; private readonly string? _data; public PolicyAttribute(PolicyType type, bool enabled = true, string? data = null) { _type = type; _enabled = enabled; _data = data; } public override ICustomization GetCustomization(ParameterInfo parameter) { return new PolicyCustomization(_type, _enabled, _data); } }