public void UseMongoDb_RegistersMongoDbStoreResolvers(Type serviceType, Type implementationType)
        {
            // Arrange
            var services = new ServiceCollection();
            var builder  = new OpenIddictCoreBuilder(services);

            // Act
            builder.UseMongoDb();

            // Assert
            Assert.Contains(services, service => service.ServiceType == serviceType &&
                            service.ImplementationType == implementationType);
        }
        public void UseMongoDb_RegistersMongoDbContext()
        {
            // Arrange
            var services = new ServiceCollection();
            var builder  = new OpenIddictCoreBuilder(services);

            // Act
            builder.UseMongoDb();

            // Assert
            Assert.Contains(services, service => service.Lifetime == ServiceLifetime.Singleton &&
                            service.ServiceType == typeof(IOpenIddictMongoDbContext) &&
                            service.ImplementationType == typeof(OpenIddictMongoDbContext));
        }
Exemple #3
0
    /// <summary>
    /// Registers the MongoDB stores services in the DI container and
    /// configures OpenIddict to use the MongoDB entities by default.
    /// </summary>
    /// <param name="builder">The services builder used by OpenIddict to register new services.</param>
    /// <param name="configuration">The configuration delegate used to configure the MongoDB services.</param>
    /// <remarks>This extension can be safely called multiple times.</remarks>
    /// <returns>The <see cref="OpenIddictCoreBuilder"/>.</returns>
    public static OpenIddictCoreBuilder UseMongoDb(
        this OpenIddictCoreBuilder builder, Action <OpenIddictMongoDbBuilder> configuration)
    {
        if (builder is null)
        {
            throw new ArgumentNullException(nameof(builder));
        }

        if (configuration is null)
        {
            throw new ArgumentNullException(nameof(configuration));
        }

        configuration(builder.UseMongoDb());

        return(builder);
    }
        public void UseMongoDb_RegistersDefaultEntities()
        {
            // Arrange
            var services = new ServiceCollection().AddOptions();
            var builder  = new OpenIddictCoreBuilder(services);

            // Act
            builder.UseMongoDb();

            // Assert
            var provider = services.BuildServiceProvider();
            var options  = provider.GetRequiredService <IOptionsMonitor <OpenIddictCoreOptions> >().CurrentValue;

            Assert.Equal(typeof(OpenIddictMongoDbApplication), options.DefaultApplicationType);
            Assert.Equal(typeof(OpenIddictMongoDbAuthorization), options.DefaultAuthorizationType);
            Assert.Equal(typeof(OpenIddictMongoDbScope), options.DefaultScopeType);
            Assert.Equal(typeof(OpenIddictMongoDbToken), options.DefaultTokenType);
        }