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 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); }