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); }
public TestAsyncEventTrackerHandler(TestAsyncEventTracker <T> eventTracker) { _eventTracker = eventTracker; }