public void StartAndReplySendsAReply() { var handle = new AsyncEventHandle <Unit>(); var ch = new AsyncReplyChannel <Unit>(handle.Complete); Func <AsyncReplyChannel <Unit>, AsyncReplyChannel <Unit> > f = _ => ch; Async .Return(Unit.Default) .StartAndReply(f); handle.DoneEvent.WaitOne(); Assert.AreEqual(Unit.Default, handle.Result()); }
public void StartSwitchesToWorkerThread() { var handle = new AsyncEventHandle <Unit>(); Async .Return(() => { handle.DoneEvent.Set(); return(Unit.Default); }) .Then(Async.Sleep(50)) .Start(); handle.DoneEvent.WaitOne(); Assert.True(true); }