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); }
/// <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); }