Esempio n. 1
0
        public async Task ExecutedParallel()
        {
            var processorsCount = _provider.GetRequiredService <ParallelNotificationProcessor[]>().Length;

            var notification = new ParallelNotification();
            await _emitter.Publish(notification);

            notification.ExecutedOn.Distinct().Count().Should().Be(processorsCount);
        }
Esempio n. 2
0
        public NotificationParallelPipelineShould()
        {
            _notification = new ParallelNotification();

            _processors = Many(() => MockNotificationProcessor(_notification));

            _pipeline = new NotificationParallelPipeline <ParallelNotification>(_processors
                                                                                .Select(mock => mock.Object)
                                                                                .ToArray());
        }
Esempio n. 3
0
        public async Task ResolveNotificationParallelPipeline(uint count)
        {
            for (var i = 0; i < count; i++)
            {
                _serviceCollection.AddNotificationProcessor <ParallelNotificationProcessor>();
            }

            var emitter = _serviceCollection
                          .BuildServiceProvider()
                          .GetRequiredService <IEmitter>();

            var notification = new ParallelNotification();
            await emitter.Publish(notification);

            notification.ExecutedOn.Distinct().Should().HaveCount((int)count);
        }
Esempio n. 4
0
        public ParallelNotificationPipelineShould()
        {
            _handlers = Enumerable.Range(0, 10)
                        .Select(_ => new Mock <INotificationHandler <ParallelNotification> >())
                        .ToArray();

            var serviceCollection = new ServiceCollection();

            foreach (var handler in _handlers)
            {
                serviceCollection.AddSingleton(handler.Object);
            }

            _mediator = serviceCollection
                        .AddMediator(mediator => mediator.RegisterNotification <ParallelNotification>())
                        .BuildServiceProvider()
                        .GetRequiredService <IMediator>();

            _notification = new ParallelNotification();
        }