public IEnumerator NestedRoutineProgressTest() { IEnumerator NestedRoutineSteps(int steps, RoutineControl @this) { for (int i = 0; i < steps; i++) { yield return(null); @this.SetProgress((i + 1) / (float)steps); } } var progressReference = 0f; var testSteps = 10; Assert.Greater(testSteps, 1); var nestedRoutine = Routine.ByEnumerator(NestedRoutineSteps, testSteps); IEnumerator RoutineSteps(RoutineControl @this) { yield return(nestedRoutine.OnProgress(@this.SetProgress)); } var routine = Routine.ByEnumerator(RoutineSteps); routine.OnProgress(p => progressReference = p); yield return(routine); Assert.AreEqual(1, progressReference); }
public void RoutineControlShouldSetupProgressTest() { const int steps = 10; IEnumerator Enumerator(RoutineControl @this) { int i = 0; while (i < steps) { @this.SetProgress(i++ / (float)steps); yield return(null); } } var routine = Routine.ByEnumerator(Enumerator); for (int i = 0; i < steps / 2; i++) { RoutineUtilities.OneStep(routine); } const float expectedProgress = (steps / 2 - 1) / (float)steps; Assert.AreEqual(expectedProgress, routine.GetProgress()); }
public void RoutineProgressTest() { IEnumerator RoutineSteps(int steps, RoutineControl @this) { for (int i = 0; i < steps; i++) { yield return(null); @this.SetProgress((i + 1) / (float)steps); } } var progressReference = 0f; var testSteps = 10; Assert.Greater(testSteps, 1); var routine = Routine.ByEnumerator(RoutineSteps, testSteps); routine.OnProgress(progress => progressReference = progress); for (int i = 0; i < testSteps; i++) { RoutineUtilities.OneStep(routine); var expectedProgress = (i) / (float)testSteps; Assert.AreEqual(expectedProgress, progressReference); } }
public IEnumerator ByEnumeratorWithArgAndRoutineControlResultShouldProvideRoutineTest() { yield return(Routine.ByEnumerator <bool, bool>( ByEnumeratorWithArgAndRoutineControlResultShouldProvideRoutine, true) .Result(out var result)); Assert.True(result.Result); }
public IEnumerator ByEnumeratorWithControlShouldProvideRoutineTest() { flagByEnumeratorWithControlShouldProvideRoutineTest = false; yield return(Routine.ByEnumerator(ByEnumeratorWithControlShouldProvideRoutine)); Assert.True(flagByEnumeratorWithControlShouldProvideRoutineTest); flagByEnumeratorWithControlShouldProvideRoutineTest = false; }
public IEnumerator ByEnumeratorShouldProcessCoroutineTest() { flagByEnumeratorShouldProcessCoroutineTest = false; yield return(Routine.ByEnumerator(ByEnumeratorShouldProcessCoroutine())); Assert.True(flagByEnumeratorShouldProcessCoroutineTest); flagByEnumeratorShouldProcessCoroutineTest = false; }
public void ForceCompleteAsyncOperationShouldFailTest() { var asyncOperation = new AsyncOperation(); IEnumerator RoutineSteps() { yield return(asyncOperation); } var routine = Routine.ByEnumerator(RoutineSteps()); LogAssert.ignoreFailingMessages = true; routine.Complete(1); Assert.True(routine.IsError); LogAssert.ignoreFailingMessages = false; }
public void RoutineControlShouldProvideCancellationEventTest() { bool wasCanceled = false; IEnumerator Enumerator(RoutineControl @this) { @this.OnCancellationCallback(() => { wasCanceled = true; }); yield return(null); yield return(null); } var routine = Routine.ByEnumerator(Enumerator); RoutineUtilities.OneStep(routine); routine.Cancel(); Assert.True(routine.IsCanceled); Assert.True(wasCanceled); }
public void RoutineShouldThrowExceptionIfNestedRoutineHaveErrorTest() { var routineWithError = Routine.ByAction(() => throw new Exception("Its test exception")); LogAssert.Expect(LogType.Error, new Regex(".")); routineWithError.Complete(); IEnumerator TestRoutine(RoutineControl <int> control) { yield return(routineWithError); control.SetResult(50); } var routine = Routine.ByEnumerator <int>(TestRoutine); LogAssert.Expect(LogType.Error, new Regex(".")); routine.Complete(); Assert.True(routine.IsError); }
public IEnumerator ByEnumeratorWithArgAndRoutineControlShouldProvideRoutineTest() { // flagByEnumeratorWithArgAndRoutineControlShouldProvideRoutine = false; yield return(Routine.ByEnumerator(ByEnumeratorWithArgAndRoutineControlShouldProvideRoutine, true)); // flagByEnumeratorWithArgAndRoutineControlShouldProvideRoutine = false; }