public async Task StartAsync_should_not_start_subscribers_when_publish_only() { var subscribers = new[] { NSubstitute.Substitute.For <ISubscriber>(), NSubstitute.Substitute.For <ISubscriber>(), NSubstitute.Substitute.For <ISubscriber>() }; var sysInfo = SystemInfo.New(); sysInfo.PublishOnly = true; var logger = NSubstitute.Substitute.For <ILogger <SubscribersBackgroundService> >(); var sut = new SubscribersBackgroundService(subscribers, sysInfo, logger); var tokenSource = new CancellationTokenSource(); await sut.StartAsync(tokenSource.Token); foreach (var subscriber in subscribers) { await subscriber.DidNotReceiveWithAnyArgs() .StartAsync(Arg.Any <CancellationToken>()); } }
public async Task StartAsync_should_start_subscribers() { var subscribers = new[] { NSubstitute.Substitute.For <ISubscriber>(), NSubstitute.Substitute.For <ISubscriber>(), NSubstitute.Substitute.For <ISubscriber>() }; var sp = NSubstitute.Substitute.For <IServiceProvider>(); sp.GetService <IEnumerable <ISubscriber> >() .Returns(subscribers); var scope = NSubstitute.Substitute.For <IServiceScope>(); scope.ServiceProvider.Returns(sp); var factory = NSubstitute.Substitute.For <IServiceScopeFactory>(); factory.CreateScope().Returns(scope); var sut = new SubscribersBackgroundService(factory); var tokenSource = new CancellationTokenSource(); await sut.StartAsync(tokenSource.Token); foreach (var subscriber in subscribers) { await subscriber.Received(1) .StartAsync(Arg.Any <CancellationToken>()); } }
public async Task StartAsync_should_start_subscribers() { var subscribers = new[] { NSubstitute.Substitute.For <ISubscriber>(), NSubstitute.Substitute.For <ISubscriber>(), NSubstitute.Substitute.For <ISubscriber>() }; var sysInfo = SystemInfo.New(); var sut = new SubscribersBackgroundService(subscribers, sysInfo); var tokenSource = new CancellationTokenSource(); await sut.StartAsync(tokenSource.Token); foreach (var subscriber in subscribers) { await subscriber.Received(1) .StartAsync(Arg.Any <CancellationToken>()); } }