public void CoroutineReturnValue_ForgotToSetResult() { var scheduler = new InterleavedCoroutineScheduler(); var coroutine = new ReturnValueCoroutine(1); scheduler.Execute(coroutine); scheduler.Update(0); Assert.Equal(CoroutineStatus.Running, coroutine.Status); scheduler.Update(0); Assert.Equal(CoroutineStatus.CompletedNormal, coroutine.Status); Assert.Throws <CoroutineException>(() => coroutine.Result); }
public void CoroutineReturnValue() { var scheduler = new InterleavedCoroutineScheduler(); var coroutine = new ReturnValueCoroutine(3); scheduler.Execute(coroutine); scheduler.Update(0); Assert.Equal(CoroutineStatus.Running, coroutine.Status); scheduler.Update(0); Assert.Equal(CoroutineStatus.Running, coroutine.Status); scheduler.Update(0); Assert.Equal(CoroutineStatus.CompletedNormal, coroutine.Status); Assert.Equal(2, coroutine.Result); }