public async Task Assertions() { Assert.Throws <ArgumentNullException>(() => new NoPersistentDynamicManager <FakeSchemeDefinition>(null, null, null)); var schemeProviderMock = new Mock <IAuthenticationSchemeProvider>().Object; Assert.Throws <ArgumentNullException>(() => new NoPersistentDynamicManager <FakeSchemeDefinition>(schemeProviderMock, null, null)); var serviceProviderMock = new Mock <IServiceProvider>().Object; var factory = new OptionsMonitorCacheWrapperFactory(serviceProviderMock); Assert.Throws <ArgumentNullException>(() => new NoPersistentDynamicManager <FakeSchemeDefinition>(schemeProviderMock, factory, null)); var storeMock = new Mock <IDynamicProviderStore <FakeSchemeDefinition> >().Object; var manager = new PersistentDynamicManager <FakeSchemeDefinition>(schemeProviderMock, factory, storeMock, new List <Type>()); await Assert.ThrowsAsync <ArgumentNullException>(() => manager.AddAsync(null)); await Assert.ThrowsAsync <ArgumentNullException>(() => manager.UpdateAsync(null)); await Assert.ThrowsAsync <ArgumentException>(() => manager.RemoveAsync(null)); await Assert.ThrowsAsync <ArgumentException>(() => manager.RemoveAsync("")); await Assert.ThrowsAsync <ArgumentException>(() => manager.RemoveAsync(" ")); await Assert.ThrowsAsync <ArgumentException>(() => manager.FindBySchemeAsync(null)); await Assert.ThrowsAsync <ArgumentException>(() => manager.FindBySchemeAsync("")); await Assert.ThrowsAsync <ArgumentException>(() => manager.FindBySchemeAsync(" ")); }
public async Task <ExternalProvider> UpdateAsync(ExternalProvider entity, CancellationToken cancellationToken = default) { await _manager.UpdateAsync(CreateSchemeDefinition(entity), cancellationToken).ConfigureAwait(false); await _providerClient.ProviderUpdatedAsync(entity.Id, cancellationToken).ConfigureAwait(false); return(entity); }
public async Task <ExternalProvider> UpdateAsync(ExternalProvider entity, CancellationToken cancellationToken = default) { var definition = await GetEntity(entity.Id).ConfigureAwait(false); var handlerType = _serializer.DeserializeType(entity.SerializedHandlerType); definition.DisplayName = entity.DisplayName; definition.HandlerType = handlerType; definition.Options = _serializer.DeserializeOptions(entity.SerializedOptions, handlerType.GetAuthenticationSchemeOptionsType()); SanetizeCallbackPath(entity, definition.Options); await _manager.UpdateAsync(definition, cancellationToken).ConfigureAwait(false); if (_providerClient != null) { await _providerClient.ProviderUpdated(entity.Id, cancellationToken).ConfigureAwait(false); } return(entity); }
public async Task <IActionResult> Update(AuthenticationViewModel model) { if (ModelState.IsValid) { var definition = await _manager.FindBySchemeAsync(model.Scheme); if (definition == null) { return(NotFound()); } if (definition.Options is OAuthOptions oAuthOptions) // GoogleOptions is OAuthOptions { oAuthOptions.ClientId = model.ClientId; oAuthOptions.ClientSecret = model.ClientSecret; } definition.DisplayName = model.DisplayName; await _manager.UpdateAsync(definition); } return(View(model)); }