Beispiel #1
0
        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>());
            }
        }
Beispiel #2
0
        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>());
            }
        }