mirror of
https://github.com/fergalmoran/SilkierQuartz.git
synced 2025-12-22 09:37:56 +00:00
78 lines
3.5 KiB
C#
78 lines
3.5 KiB
C#
using FluentAssertions;
|
||
using Microsoft.Extensions.DependencyInjection;
|
||
using Microsoft.Extensions.Hosting;
|
||
using Quartz;
|
||
using Quartz.Impl;
|
||
using Quartz.Spi;
|
||
using Quartzmin;
|
||
using Quartzmin.HostedService;
|
||
using System;
|
||
using Xunit;
|
||
|
||
namespace SilkierQuartz.Test
|
||
{
|
||
public class IServiceCollectionExtensionsUnitTest
|
||
{
|
||
[Fact(DisplayName = "«арегистрировали HostedService")]
|
||
public void IServiceCollectionExtensions_Register_HostedService()
|
||
{
|
||
IServiceCollection serviceCollection = new ServiceCollection();
|
||
IServiceCollectionExtensions.UseQuartzHostedService(serviceCollection, null);
|
||
|
||
var testClass = serviceCollection.BuildServiceProvider().GetRequiredService<IHostedService>();
|
||
testClass.Should()
|
||
.NotBeNull()
|
||
.And.BeOfType<Quartzmin.HostedService.QuartzHostedService>();
|
||
}
|
||
|
||
[Fact(DisplayName = "«арегистрировали IJobFactory (дл¤ DI в Job'ах)")]
|
||
public void IServiceCollectionExtensions_Register_IJobFactory()
|
||
{
|
||
IServiceCollection serviceCollection = new ServiceCollection();
|
||
IServiceCollectionExtensions.UseQuartzHostedService(serviceCollection, null);
|
||
|
||
var testClass = serviceCollection.BuildServiceProvider().GetRequiredService<IJobFactory>();
|
||
testClass.Should()
|
||
.NotBeNull()
|
||
.And.BeOfType<ServiceCollectionJobFactory>();
|
||
}
|
||
|
||
[Fact(DisplayName = "«арегистрировали ISchedulerFactory (не передали параметры дл¤ инициализации)")]
|
||
public void IServiceCollectionExtensions_Register_ISchedulerFactory()
|
||
{
|
||
IServiceCollection serviceCollection = new ServiceCollection();
|
||
IServiceCollectionExtensions.UseQuartzHostedService(serviceCollection, null);
|
||
|
||
var testClass = serviceCollection.BuildServiceProvider().GetRequiredService<ISchedulerFactory>();
|
||
testClass.Should()
|
||
.NotBeNull()
|
||
.And.BeOfType<StdSchedulerFactory>();
|
||
}
|
||
|
||
[Fact(DisplayName = "«арегистрировали ISchedulerFactory (передали параметры дл¤ инициализации)")]
|
||
public void IServiceCollectionExtensions_Register_ISchedulerFactory_WithParams()
|
||
{
|
||
IServiceCollection serviceCollection = new ServiceCollection();
|
||
IServiceCollectionExtensions.UseQuartzHostedService(serviceCollection, options => { options.Add("quartz.threadPool.threadCount", "1"); });
|
||
|
||
// TODO: ѕроверить что параметры передались в конструктор
|
||
var testClass = serviceCollection.BuildServiceProvider().GetRequiredService<ISchedulerFactory>();
|
||
testClass.Should()
|
||
.NotBeNull()
|
||
.And.BeOfType<StdSchedulerFactory>();
|
||
}
|
||
|
||
[Fact(DisplayName = "ѕосле регистрации зависимосте возвращаетс¤ IJobRegistrator")]
|
||
public void IServiceCollectionExtensions_Return_IJobRegistrator()
|
||
{
|
||
IServiceCollection serviceCollection = new ServiceCollection();
|
||
var result = IServiceCollectionExtensions.UseQuartzHostedService(serviceCollection, null);
|
||
|
||
result.Should()
|
||
.NotBeNull()
|
||
.And.BeAssignableTo<IJobRegistrator>()
|
||
.Subject.Services.Should().Equal(serviceCollection);
|
||
}
|
||
}
|
||
}
|