Beispiel #1
0
        public async Task SourceException_NotifiesSourceExceptionHandler()
        {
            var eventTracker = new TestAsyncEventTracker <SourceExceptionEvent>();

            var serviceProvider = new TestServiceProvider(
                configureServices: services => services
                .AddSingleton(eventTracker),
                configureDaisy: daisy => daisy
                .AddEventHandlerSingleton <TestAsyncEventTrackerHandler <SourceExceptionEvent> >()
                );

            var chainBuilder = new TestChain <Signal>
            {
                ConfigureSourcesAction = sources => sources
                                         .Add <ThrowingTestSource <Signal> >("test")
            };
            var chain = await chainBuilder.BuildAsync(serviceProvider);

            chain.StartAllSources();

            await chain.Sources.WaitForCompletionAsync();

            var source = chain.Sources[0];

            Assert.Single(eventTracker.TrackedEvents, e =>
                          e.ChainName == chain.Name &&
                          e.SourceIndex == source.Index &&
                          e.SourceName == source.Name &&
                          e.SourceExecutionId != default &&
                          e.Exception is TestException);
        }
Beispiel #2
0
 public TestAsyncEventTrackerHandler(TestAsyncEventTracker <T> eventTracker)
 {
     _eventTracker = eventTracker;
 }