Files
SilkierQuartz/test/QuartzHostedService.Test/IServiceCollectionExtensionsUnitTest.cs
2020-06-06 09:10:10 +08:00

78 lines
3.5 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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);
}
}
}