Files
SilkierQuartz/test/QuartzHostedService.Test/IServiceCollectionExtensionsUnitTest.cs
2018-08-24 23:33:51 +05:00

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