public void WatchTask_ThrowsExceptionOnFatalError_ExceptionIsCatched() { //Arrange: var fakeErrorHandler = Substitute.For <IErrorHandler>(); TaskWatcher.AddErrorListener(fakeErrorHandler); //Act: Task t = new Task(() => throw new Exception("Test")); Task watcherTask = TaskWatcher.WatchTask(t); t.Start(); Task.WaitAll(watcherTask); //Assert: fakeErrorHandler.Received(1).OnFatalError(Arg.Any <string>()); }
public void SubscribeErrorHandler(IErrorHandler errorHandler) { TaskWatcher.AddErrorListener(errorHandler); }