public void SetUp() { taskContext = new JoinableTaskContext(); closeDialogSource = new TaskCompletionSource <bool>(); mockProgressDialog = Substitute.For <IProgressDialog>(); mockProgressDialog.ShowModal() .Returns(x => taskContext.Factory.Run(() => closeDialogSource.Task)); mockProgressDialog.When(x => x.Complete()) .Do(x => closeDialogSource.TrySetResult(true)); mockProgressDialogFactory = Substitute.For <ProgressDialog.Factory>(); mockProgressDialogFactory.Create(Title, Text).Returns(mockProgressDialog); taskFactory = new CancelableTask.Factory(taskContext, mockProgressDialogFactory, Title, DialogDelay, ProgressPeriod); }