mirror of
https://github.com/fergalmoran/SilkierQuartz.git
synced 2026-01-26 18:55:46 +00:00
76 lines
3.2 KiB
C#
76 lines
3.2 KiB
C#
using FluentAssertions;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.Hosting;
|
|
using Quartz;
|
|
using Quartz.Impl;
|
|
using Quartz.Spi;
|
|
using System;
|
|
using Xunit;
|
|
|
|
namespace QuartzHostedService.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<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);
|
|
}
|
|
}
|
|
}
|