public void SetName_WithoutValue_Fails(string name) { // Arrange var options = new SecretProviderOptions(); // Act / Assert Assert.ThrowsAny <ArgumentException>(() => options.Name = name); }
private static SecretStoreSource CreateMutatedSecretSource( Func <IServiceProvider, ISecretProvider> createSecretProvider, SecretProviderOptions options) { return(new SecretStoreSource(serviceProvider => { ISecretProvider secretProvider = createSecretProvider(serviceProvider); if (secretProvider is ICachedSecretProvider cachedSecretProvider) { var logger = serviceProvider.GetService <ILogger <MutatedSecretNameCachedSecretProvider> >(); return new MutatedSecretNameCachedSecretProvider(cachedSecretProvider, options.MutateSecretName, logger); } { var logger = serviceProvider.GetService <ILogger <MutatedSecretNameSecretProvider> >(); return new MutatedSecretNameSecretProvider(secretProvider, options.MutateSecretName, logger); } }, options)); }
/// <summary> /// Adds an <see cref="ISecretProvider"/> implementation to the secret store of the application. /// </summary> /// <param name="secretProvider">The provider which secrets are added to the secret store.</param> /// <param name="configureOptions">The function to configure the registration of the <see cref="ISecretProvider"/> in the secret store.</param> /// <returns> /// The extended secret store with the given <paramref name="secretProvider"/>. /// </returns> /// <exception cref="ArgumentNullException">Thrown when the <paramref name="secretProvider"/> is <c>null</c>.</exception> public SecretStoreBuilder AddProvider( ISecretProvider secretProvider, Action <SecretProviderOptions> configureOptions) { Guard.NotNull(secretProvider, nameof(secretProvider), "Requires a secret provider to add to the secret store"); var options = new SecretProviderOptions(); configureOptions?.Invoke(options); if (options?.MutateSecretName is null) { SecretStoreSources.Add(new SecretStoreSource(secretProvider, options)); } else { SecretStoreSources.Add(CreateMutatedSecretSource(serviceProvider => secretProvider, options)); } return(this); }
/// <summary> /// Adds an <see cref="ISecretProvider"/> implementation to the secret store of the application. /// </summary> /// <param name="secretProvider">The provider which secrets are added to the secret store.</param> /// <param name="configureOptions">The function to configure the registration of the <see cref="ISecretProvider"/> in the secret store.</param> /// <returns> /// The extended secret store with the given <paramref name="secretProvider"/>. /// </returns> /// <exception cref="ArgumentNullException">Thrown when the <paramref name="secretProvider"/> is <c>null</c>.</exception> public SecretStoreBuilder AddProvider( ISecretProvider secretProvider, Action <SecretProviderOptions> configureOptions) { Guard.NotNull(secretProvider, nameof(secretProvider), "Requires a secret provider to add to the secret store"); var options = new SecretProviderOptions(); configureOptions?.Invoke(options); // ReSharper disable once ConstantConditionalAccessQualifier - options can still be 'null' when consumer set it to 'null'. if (options?.MutateSecretName is null) { SecretStoreSources.Add(new SecretStoreSource(secretProvider, options)); } else { SecretStoreSources.Add(CreateMutatedSecretSource(serviceProvider => secretProvider, options)); } return(this); }