protected override async Task When() { var tcs = new TaskCompletionSource <object>(); var signallingHandler = new SignallingHandler <GenericMessage>(tcs, Handler); SystemUnderTest.AddMessageHandler(() => signallingHandler); SystemUnderTest.Listen(); // wait until it's done await Tasks.WaitWithTimeoutAsync(tcs.Task); SystemUnderTest.StopListening(); }
protected override async Task When() { var doneSignal = new TaskCompletionSource <object>(); var signallingHandler = new SignallingHandler <SimpleMessage>(doneSignal, Handler); SystemUnderTest.AddMessageHandler(() => signallingHandler); SystemUnderTest.Listen(); // wait until it's done var doneOk = await Tasks.WaitWithTimeoutAsync(doneSignal.Task); SystemUnderTest.StopListening(); doneOk.ShouldBeTrue("Timeout occured before done signal"); }
protected virtual async Task WhenAsync() { var doneSignal = new TaskCompletionSource <object>(); var signallingHandler = new SignallingHandler <SimpleMessage>(doneSignal, Handler); SystemUnderTest.AddMessageHandler(() => signallingHandler); var cts = new CancellationTokenSource(); SystemUnderTest.Listen(cts.Token); // wait until it's done var doneOk = await TaskHelpers.WaitWithTimeoutAsync(doneSignal.Task); cts.Cancel(); doneOk.ShouldBeTrue("Timeout occured before done signal"); }