public void AddServer_CanBeSafelyInvokedMultipleTimes() { // Arrange var services = new ServiceCollection(); var builder = new OpenIddictBuilder(services); // Act and assert builder.AddServer(); builder.AddServer(); builder.AddServer(); }
public void AddServer_ThrowsAnExceptionWhenSchemeIsAlreadyRegisteredWithDifferentHandlerType() { // Arrange var services = new ServiceCollection(); services.AddAuthentication() .AddOpenIdConnectServer(); var builder = new OpenIddictBuilder(services); // Act builder.AddServer(); // Assert var provider = services.BuildServiceProvider(); var exception = Assert.Throws <InvalidOperationException>(delegate { return(provider.GetRequiredService <IOptions <AuthenticationOptions> >().Value); }); Assert.Equal(new StringBuilder() .AppendLine("The OpenIddict server handler cannot be registered as an authentication scheme.") .AppendLine("This may indicate that an instance of the OpenID Connect server was registered.") .Append("Make sure that 'services.AddAuthentication().AddOpenIdConnectServer()' is not used.") .ToString(), exception.Message); }
public void AddServer_ThrowsAnExceptionForNullConfiguration() { // Arrange var services = new ServiceCollection(); var builder = new OpenIddictBuilder(services); // Act and assert var exception = Assert.Throws <ArgumentNullException>(() => builder.AddServer(configuration: null)); Assert.Equal("configuration", exception.ParamName); }
public void AddServer_RegistersOptionsServices() { // Arrange var services = new ServiceCollection(); var builder = new OpenIddictBuilder(services); // Act builder.AddServer(); // Assert Assert.Contains(services, service => service.ServiceType == typeof(IOptions <>)); }
public void AddServer_RegistersCachingServices() { // Arrange var services = new ServiceCollection(); var builder = new OpenIddictBuilder(services); // Act builder.AddServer(); // Assert Assert.Contains(services, service => service.ServiceType == typeof(IDistributedCache)); Assert.Contains(services, service => service.ServiceType == typeof(IMemoryCache)); }
public void AddServer_RegistersInitializers(Type serviceType, Type implementationType) { // Arrange var services = new ServiceCollection(); var builder = new OpenIddictBuilder(services); // Act builder.AddServer(); // Assert Assert.Contains(services, service => service.ServiceType == serviceType && service.ImplementationType == implementationType); }
public void AddServer_RegistersProvider() { // Arrange var services = new ServiceCollection(); var builder = new OpenIddictBuilder(services); // Act builder.AddServer(); // Assert Assert.Contains(services, service => service.Lifetime == ServiceLifetime.Scoped && service.ServiceType == typeof(OpenIddictServerProvider) && service.ImplementationFactory != null); }
public void AddServer_RegistersRequiredSingletons(Type type) { // Arrange var services = new ServiceCollection(); var builder = new OpenIddictBuilder(services); // Act builder.AddServer(); // Assert Assert.Contains(services, service => service.ServiceType == type && service.ImplementationType == type && service.Lifetime == ServiceLifetime.Singleton); }
public void AddServer_RegistersDefaultHandler(OpenIddictServerHandlerDescriptor descriptor) { // Arrange var services = new ServiceCollection(); var builder = new OpenIddictBuilder(services); // Act builder.AddServer(); // Assert Assert.Contains(services, service => service.Lifetime == descriptor.ServiceDescriptor.Lifetime && service.ServiceType == descriptor.ServiceDescriptor.ServiceType && service.ImplementationType == descriptor.ServiceDescriptor.ImplementationType); }
public void AddServer_RegistersEventService() { // Arrange var services = new ServiceCollection(); var builder = new OpenIddictBuilder(services); // Act builder.AddServer(); // Assert Assert.Contains(services, service => service.Lifetime == ServiceLifetime.Scoped && service.ServiceType == typeof(IOpenIddictServerEventDispatcher) && service.ImplementationType == typeof(OpenIddictServerEventDispatcher)); }
public void AddServer_RegistersAuthenticationScheme() { // Arrange var services = new ServiceCollection(); var builder = new OpenIddictBuilder(services); // Act builder.AddServer(); // Assert var provider = services.BuildServiceProvider(); var options = provider.GetRequiredService <IOptions <AuthenticationOptions> >().Value; Assert.Contains(options.Schemes, scheme => scheme.Name == OpenIddictServerDefaults.AuthenticationScheme && scheme.HandlerType == typeof(OpenIddictServerHandler)); }
public void AddServer_ResolvingProviderThrowsAnExceptionWhenCoreServicesAreNotRegistered() { // Arrange var services = new ServiceCollection(); var builder = new OpenIddictBuilder(services); // Act builder.AddServer(); // Assert var provider = services.BuildServiceProvider(); var exception = Assert.Throws <InvalidOperationException>(() => provider.GetRequiredService <OpenIddictServerConfiguration>()); Assert.NotNull(exception); }
public void AddServer_ResolvingProviderThrowsAnExceptionWhenCoreServicesAreNotRegistered() { // Arrange var services = new ServiceCollection(); var builder = new OpenIddictBuilder(services); // Act builder.AddServer(); // Assert var provider = services.BuildServiceProvider(); var exception = Assert.Throws <InvalidOperationException>(() => provider.GetRequiredService <OpenIddictServerProvider>()); Assert.Equal(new StringBuilder() .AppendLine("The core services must be registered when enabling the server handler.") .Append("To register the OpenIddict core services, use 'services.AddOpenIddict().AddCore()'.") .ToString(), exception.Message); }