public void WaitAnyWithValuesTest() { var runner = new CoroutineRunner(); var flag = false; var waitAny = runner.Create(() => { return(AwaitableCoroutine.WaitAny <int>(new AwaitableCoroutine <int>[] { AwaitableCoroutine.While(() => true).SelectTo(0), AwaitableCoroutine.While(() => !flag).SelectTo(1), AwaitableCoroutine.While(() => true).SelectTo(2), AwaitableCoroutine.While(() => !flag).SelectTo(3), })); }); Assert.False(waitAny.IsCompleted); runner.Update(); Assert.False(waitAny.IsCompleted); flag = true; runner.Update(); Assert.True(waitAny.IsCompleted); var res = waitAny.Result; Assert.Equal(1, res); }
public void WaitAnyTest() { var runner = new CoroutineRunner(); var flag = false; var waitAny = runner.Create(() => AwaitableCoroutine.WaitAny(new AwaitableCoroutineBase[] { AwaitableCoroutine.While(() => true), AwaitableCoroutine.While(() => true), AwaitableCoroutine.While(() => true), AwaitableCoroutine.While(() => !flag), }) ); Assert.False(waitAny.IsCompleted); runner.Update(); Assert.False(waitAny.IsCompleted); flag = true; runner.Update(); Assert.True(waitAny.IsCompleted); }