Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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);
        }