using System.Reflection; using AutoFixture; using AutoFixture.Xunit2; using Bit.Identity.IdentityServer; using Duende.IdentityServer.Validation; namespace Bit.Identity.Test.AutoFixture; internal class ValidatedTokenRequestCustomization : ICustomization { public ValidatedTokenRequestCustomization() { } public void Customize(IFixture fixture) { fixture.Customize(composer => composer .With(o => o.RefreshToken, () => null) .With(o => o.ClientClaims, []) .With(o => o.Options, new Duende.IdentityServer.Configuration.IdentityServerOptions())); } } public class ValidatedTokenRequestAttribute : CustomizeAttribute { public ValidatedTokenRequestAttribute() { } public override ICustomization GetCustomization(ParameterInfo parameter) { return new ValidatedTokenRequestCustomization(); } } internal class CustomValidatorRequestContextCustomization : ICustomization { public CustomValidatorRequestContextCustomization() { } /// /// Specific context members like , /// , and /// should initialize false, /// and are made truthy in context upon evaluation of a request. Do not allow AutoFixture to eagerly make these /// truthy; that is the responsibility of the /// public void Customize(IFixture fixture) { fixture.Customize(composer => composer .With(o => o.RememberMeRequested, false) .With(o => o.TwoFactorRecoveryRequested, false) .With(o => o.SsoRequired, false)); } } public class CustomValidatorRequestContextAttribute : CustomizeAttribute { public CustomValidatorRequestContextAttribute() { } public override ICustomization GetCustomization(ParameterInfo parameter) { return new CustomValidatorRequestContextCustomization(); } }