fix(DIExtensions): ConsumerOptions-Eingabe in AddAuthService-Methode hinzugefügt, um Konsuemrn nach der Übernahme aus der Config arrangieren zu können.
- Standardiezd consumerKey Benennung
This commit is contained in:
parent
6694e4b626
commit
7873542aca
@ -5,7 +5,6 @@ using Microsoft.Extensions.DependencyInjection;
|
|||||||
using Microsoft.Extensions.Hosting;
|
using Microsoft.Extensions.Hosting;
|
||||||
using DigitalData.Auth.API.Services;
|
using DigitalData.Auth.API.Services;
|
||||||
using DigitalData.Auth.API.Services.Contracts;
|
using DigitalData.Auth.API.Services.Contracts;
|
||||||
using Microsoft.Extensions.Configuration;
|
|
||||||
|
|
||||||
namespace DigitalData.Auth.Tests.API;
|
namespace DigitalData.Auth.Tests.API;
|
||||||
|
|
||||||
@ -17,7 +16,7 @@ public class AuthHubTests
|
|||||||
|
|
||||||
private Func<Action<ClientParams>, ServiceProvider> Build;
|
private Func<Action<ClientParams>, ServiceProvider> Build;
|
||||||
|
|
||||||
private WebApplication? _app = null;
|
private readonly WebApplication? _app = null;
|
||||||
|
|
||||||
private readonly Queue<IAsyncDisposable> _disposableAsync = new();
|
private readonly Queue<IAsyncDisposable> _disposableAsync = new();
|
||||||
|
|
||||||
@ -52,13 +51,12 @@ public class AuthHubTests
|
|||||||
// Create and run test server
|
// Create and run test server
|
||||||
// Create builder and add SignalR service
|
// Create builder and add SignalR service
|
||||||
var builder = WebApplication.CreateBuilder();
|
var builder = WebApplication.CreateBuilder();
|
||||||
builder.Configuration.AddInMemoryCollection(new Dictionary<string, string?>()
|
|
||||||
{
|
|
||||||
{ "Consumers", null }
|
|
||||||
});
|
|
||||||
var config = builder.Configuration;
|
var config = builder.Configuration;
|
||||||
builder.Services.AddSignalR();
|
builder.Services.AddSignalR();
|
||||||
builder.Services.AddAuthService(config);
|
builder.Services.AddAuthService(
|
||||||
|
config,
|
||||||
|
consumers => consumers.Add(new(0, "mock", "123", "client.mock")) // Set mock consumer
|
||||||
|
);
|
||||||
|
|
||||||
// Listen AvailablePort and map hub
|
// Listen AvailablePort and map hub
|
||||||
var _app = builder.Build();
|
var _app = builder.Build();
|
||||||
@ -69,8 +67,6 @@ public class AuthHubTests
|
|||||||
_app.MapHub<Auth.API.Hubs.AuthHub>(hubRoute);
|
_app.MapHub<Auth.API.Hubs.AuthHub>(hubRoute);
|
||||||
_app.Start();
|
_app.Start();
|
||||||
|
|
||||||
_disposableAsync.Enqueue(_app);
|
|
||||||
|
|
||||||
// Create notifier by app services
|
// Create notifier by app services
|
||||||
_notifier = _app.Services.GetRequiredService<INotifier>();
|
_notifier = _app.Services.GetRequiredService<INotifier>();
|
||||||
}
|
}
|
||||||
@ -82,6 +78,7 @@ public class AuthHubTests
|
|||||||
if (_app is not null)
|
if (_app is not null)
|
||||||
{
|
{
|
||||||
await _app.StopAsync();
|
await _app.StopAsync();
|
||||||
|
await _app.DisposeAsync();
|
||||||
Console.WriteLine("Test server stopped.");
|
Console.WriteLine("Test server stopped.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -13,17 +13,8 @@
|
|||||||
<None Remove="API\appsettings.json" />
|
<None Remove="API\appsettings.json" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Content Include="API\appsettings.json">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
|
|
||||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
|
||||||
</Content>
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="coverlet.collector" Version="6.0.0" />
|
<PackageReference Include="coverlet.collector" Version="6.0.0" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Configuration" Version="9.0.1" />
|
|
||||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
|
||||||
<PackageReference Include="NUnit" Version="3.14.0" />
|
<PackageReference Include="NUnit" Version="3.14.0" />
|
||||||
<PackageReference Include="NUnit.Analyzers" Version="3.9.0" />
|
<PackageReference Include="NUnit.Analyzers" Version="3.9.0" />
|
||||||
|
|||||||
@ -6,9 +6,19 @@ namespace DigitalData.Auth.API.Services;
|
|||||||
|
|
||||||
public static class DIExtensions
|
public static class DIExtensions
|
||||||
{
|
{
|
||||||
public static IServiceCollection AddAuthService(this IServiceCollection services, IConfiguration configuration, string key = "Consumers")
|
public static IServiceCollection AddAuthService(this IServiceCollection services, IConfiguration configuration, Action<List<Consumer>>? consumerOptions = null)
|
||||||
{
|
{
|
||||||
var consumers = configuration.GetSection(key).Get<IEnumerable<Consumer>>() ?? throw new InvalidOperationException($"No Consumer list found in {key} in configuration.");
|
List<Consumer> consumers = new();
|
||||||
|
|
||||||
|
var consumerKey = $"{nameof(Consumer)}s";
|
||||||
|
if (configuration.GetSection(consumerKey).Get<IEnumerable<Consumer>>() is IEnumerable<Consumer> consumersFromConfig)
|
||||||
|
consumers.AddRange(consumersFromConfig);
|
||||||
|
|
||||||
|
consumerOptions?.Invoke(consumers);
|
||||||
|
|
||||||
|
if(consumers.Count == 0)
|
||||||
|
throw new InvalidOperationException($"No Consumer list found in {consumerKey} in configuration.");
|
||||||
|
|
||||||
services.AddSingleton(Options.Create(consumers));
|
services.AddSingleton(Options.Create(consumers));
|
||||||
services.AddSingleton<IConsumerService, ConfiguredConsumerService>();
|
services.AddSingleton<IConsumerService, ConfiguredConsumerService>();
|
||||||
services.AddSingleton<INotifier, Notifier>();
|
services.AddSingleton<INotifier, Notifier>();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user