/// <summary> /// Initializes a new instance of the <see cref="SchemeChangeSubscriber{TSchemeDefinition}"/> class. /// </summary> /// <param name="factory">The factory.</param> /// <param name="manager">The manager.</param> /// <param name="store">The store.</param> /// <exception cref="ArgumentNullException"> /// factory /// or /// manager /// or /// manager /// </exception> public SchemeChangeSubscriber(HubConnectionFactory factory, NoPersistentDynamicManager <TSchemeDefinition> manager, IDynamicProviderStore <TSchemeDefinition> store) { _factory = factory ?? throw new ArgumentNullException(nameof(factory)); _manager = manager ?? throw new ArgumentNullException(nameof(manager)); _store = store ?? throw new ArgumentNullException(nameof(manager)); }
/// <summary> /// Initializes a new instance of the <see cref="SchemeChangeSubscriber{TSchemeDefinition}" /> class. /// </summary> /// <param name="factory">The factory.</param> /// <param name="manager">The manager.</param> /// <param name="store">The store.</param> /// <param name="dataProtectionKeyManagerWrapper">The data protection key manager wrapper.</param> /// <param name="signingKeyManagerWrapper">The signing key manager wrapper.</param> /// <param name="logger">The logger.</param> /// <exception cref="ArgumentNullException">factory /// or /// manager /// or /// manager</exception> public SchemeChangeSubscriber(HubConnectionFactory factory, NoPersistentDynamicManager <TSchemeDefinition> manager, IDynamicProviderStore <TSchemeDefinition> store, KeyManagerWrapper <IAuthenticatedEncryptorDescriptor> dataProtectionKeyManagerWrapper, KeyManagerWrapper <RsaEncryptorDescriptor> signingKeyManagerWrapper, ILogger <SchemeChangeSubscriber <TSchemeDefinition> > logger) { _factory = factory ?? throw new ArgumentNullException(nameof(factory)); _manager = manager ?? throw new ArgumentNullException(nameof(manager)); _store = store ?? throw new ArgumentNullException(nameof(manager)); _dataProtectionKeyManagerWrapper = dataProtectionKeyManagerWrapper ?? throw new ArgumentNullException(nameof(dataProtectionKeyManagerWrapper)); _signingKeyManagerWrapper = signingKeyManagerWrapper ?? throw new ArgumentNullException(nameof(signingKeyManagerWrapper)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); }
public async Task Subscribe_should_subcribe_to_hub_events() { using var waitHandle = new ManualResetEvent(false); var configuration = new Dictionary <string, string> { ["ConnectionStrings:DefaultConnection"] = Guid.NewGuid().ToString(), ["ApiAuthentication:Authority"] = "http://localhost", ["SignalR:HubUrl"] = "http://localhost/providerhub", ["SignalR:UseMessagePack"] = "false", ["Seed"] = "true" }; TestServer server = null; server = TestUtils.CreateTestServer(services => { services.RemoveAll <HubHttpMessageHandlerAccessor>(); services.AddTransient(p => new HubHttpMessageHandlerAccessor { Handler = new MockHttpMessageHandler(waitHandle, server.CreateHandler()) }); services.RemoveAll <HttpClient>(); services.AddTransient(p => server.CreateClient()); services.RemoveAll <HttpClientHandler>(); services.AddTransient <HttpClientHandler>(p => new MockHttpClientHandler(p.GetRequiredService <HttpClient>())); }, configuration, (endpoints, isProxy) => { endpoints.MapRazorPages(); endpoints.MapDefaultControllerRoute(); if (!isProxy) { endpoints.MapHub <ProviderHub>("/providerhub"); } }); using (server) { server.CreateWebSocketClient(); var provider = server.Host.Services; var store = provider.GetRequiredService <IAdminStore <ExternalProvider> >(); var serializer = provider.GetRequiredService <IAuthenticationSchemeOptionsSerializer>(); var manager = new NoPersistentDynamicManager <SchemeDefinition>(new Mock <IAuthenticationSchemeProvider>().Object, new OptionsMonitorCacheWrapperFactory(new Mock <IServiceProvider>().Object), Array.Empty <Type>()); var wrapper1 = new KeyManagerWrapper <Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor>(new Mock <IKeyManager>().Object, new Mock <IDefaultKeyResolver>().Object, new Mock <IProviderClient>().Object); var wrapper2 = new KeyManagerWrapper <IdentityServer.KeysRotation.RsaEncryptorDescriptor>(new Mock <IKeyManager>().Object, new Mock <IDefaultKeyResolver>().Object, new Mock <IProviderClient>().Object); var hubConnectionFactory = new HubConnectionFactory(provider.GetRequiredService <IConfiguration>(), provider, new NullLogger <HubConnectionFactory>()); var connection = hubConnectionFactory.GetConnection(default);
public void Constructor_should_throw_on_args_null() { Assert.Throws <ArgumentNullException>(() => new SchemeChangeSubscriber <SchemeDefinition>(null, null, null, null, null, null)); var hubConnectionFactory = new HubConnectionFactory(new Mock <IConfiguration>().Object, new Mock <IServiceProvider>().Object, new NullLogger <HubConnectionFactory>()); Assert.Throws <ArgumentNullException>(() => new SchemeChangeSubscriber <SchemeDefinition>(hubConnectionFactory, null, null, null, null, null)); var manager = new NoPersistentDynamicManager <SchemeDefinition>(new Mock <IAuthenticationSchemeProvider>().Object, new OptionsMonitorCacheWrapperFactory(new Mock <IServiceProvider>().Object), Array.Empty <Type>()); Assert.Throws <ArgumentNullException>(() => new SchemeChangeSubscriber <SchemeDefinition>(hubConnectionFactory, manager, null, null, null, null)); Assert.Throws <ArgumentNullException>(() => new SchemeChangeSubscriber <SchemeDefinition>(hubConnectionFactory, manager, new Mock <IDynamicProviderStore <SchemeDefinition> >().Object, null, null, null)); var wrapper1 = new KeyManagerWrapper <Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.IAuthenticatedEncryptorDescriptor>(new Mock <IKeyManager>().Object, new Mock <IDefaultKeyResolver>().Object, new Mock <IProviderClient>().Object); Assert.Throws <ArgumentNullException>(() => new SchemeChangeSubscriber <SchemeDefinition>(hubConnectionFactory, manager, new Mock <IDynamicProviderStore <SchemeDefinition> >().Object, wrapper1, null, null)); var wrapper2 = new KeyManagerWrapper <IdentityServer.KeysRotation.RsaEncryptorDescriptor>(new Mock <IKeyManager>().Object, new Mock <IDefaultKeyResolver>().Object, new Mock <IProviderClient>().Object); Assert.Throws <ArgumentNullException>(() => new SchemeChangeSubscriber <SchemeDefinition>(hubConnectionFactory, manager, new Mock <IDynamicProviderStore <SchemeDefinition> >().Object, wrapper1, wrapper2, null)); }
public SchemeChangeSubscriber(NoPersistentDynamicManager <SchemeDefinition> manager, IDynamicProviderStore <SchemeDefinition> store) { _manager = manager; _store = store; }