public void UseQuartz_CanBeSafelyInvokedMultipleTimes()
        {
            // Arrange
            var services = new ServiceCollection();
            var builder  = new OpenIddictCoreBuilder(services);

            // Act
            builder.UseQuartz();
            builder.UseQuartz();
            builder.UseQuartz();

            // Assert
            Assert.Single(services, service => service.ServiceType == typeof(OpenIddictQuartzJob) &&
                          service.ImplementationType == typeof(OpenIddictQuartzJob) &&
                          service.Lifetime == ServiceLifetime.Transient);

            Assert.Single(services, service => service.ServiceType == typeof(IConfigureOptions <QuartzOptions>) &&
                          service.ImplementationType == typeof(OpenIddictQuartzConfiguration) &&
                          service.Lifetime == ServiceLifetime.Singleton);
        }
        public void UseQuartz_RegistersJobService()
        {
            // Arrange
            var services = new ServiceCollection();
            var builder  = new OpenIddictCoreBuilder(services);

            // Act
            builder.UseQuartz();

            // Assert
            Assert.Contains(services, service => service.ServiceType == typeof(OpenIddictQuartzJob) &&
                            service.ImplementationType == typeof(OpenIddictQuartzJob) &&
                            service.Lifetime == ServiceLifetime.Transient);
        }
Esempio n. 3
0
    /// <summary>
    /// Registers the OpenIddict Quartz.NET integration in the DI container.
    /// </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 Quartz.NET services.</param>
    /// <remarks>This extension can be safely called multiple times.</remarks>
    /// <returns>The <see cref="OpenIddictCoreBuilder"/>.</returns>
    public static OpenIddictCoreBuilder UseQuartz(
        this OpenIddictCoreBuilder builder, Action <OpenIddictQuartzBuilder> configuration)
    {
        if (builder is null)
        {
            throw new ArgumentNullException(nameof(builder));
        }

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

        configuration(builder.UseQuartz());

        return(builder);
    }