Пример #1
0
        public void TestCancelTimerInLoop()
        {
            TestTimerManager manager = new TestTimerManager();

            Action dummyCallback = () => {};
            Action callback      = () =>
            {
                callbacks.Add(dummyCallback);
                Assert.AreEqual(0, manager.FreeDelayedCount);

                manager.Cancel(TimerCallback1);
                Assert.AreEqual(1, manager.FreeDelayedCount);

                manager.Cancel(TimerCallback2);
                Assert.AreEqual(2, manager.FreeDelayedCount);
            };

            manager.Schedule(callback, 0.25f);
            manager.Schedule(TimerCallback1, 0.25f);
            manager.Schedule(TimerCallback2, 0.25f);
            manager.Schedule(TimerCallback3, 0.25f);

            manager.Update(0.25f);
            Assert.AreEqual(0, manager.FreeDelayedCount);

            AssertCallbacks(dummyCallback, TimerCallback3);
            Assert.AreEqual(0, manager.Count());
        }
Пример #2
0
        public void TestCancelTimer()
        {
            TestTimerManager manager = new TestTimerManager();

            manager.Schedule(TimerCallback1, 0.75f);
            manager.Schedule(TimerCallback2, 0.5f);

            manager.Update(0.25f); // 0.25
            AssertCallbacks();
            Assert.AreEqual(2, manager.Count());

            manager.Update(0.25f); // 0.5
            AssertCallbacks(TimerCallback2);
            Assert.AreEqual(1, manager.Count());

            manager.Schedule(TimerCallback3, 1.0f); // fires at 1.5
            Assert.AreEqual(2, manager.Count());

            manager.Cancel(TimerCallback1);

            manager.Update(0.25f); // 0.75
            AssertCallbacks(TimerCallback2);
            Assert.AreEqual(1, manager.Count());

            manager.Update(0.25f); // 1.0
            AssertCallbacks(TimerCallback2);
            Assert.AreEqual(1, manager.Count());

            manager.Schedule(TimerCallback4, 0.15f); // fires at 1.15
            Assert.AreEqual(2, manager.Count());

            manager.Cancel(TimerCallback3);

            manager.Update(0.25f); // 1.25
            AssertCallbacks(TimerCallback2, TimerCallback4);
            Assert.AreEqual(0, manager.Count());

            manager.Update(0.25f); // 1.5
            AssertCallbacks(TimerCallback2, TimerCallback4);
            Assert.AreEqual(0, manager.Count());

            manager.Update(0.25f); // 1.75
            AssertCallbacks(TimerCallback2, TimerCallback4);
            Assert.AreEqual(0, manager.Count());
        }
        public void TestCancelTimer()
        {
            TestTimerManager manager = new TestTimerManager();
            manager.Schedule(TimerCallback1, 0.75f);
            manager.Schedule(TimerCallback2, 0.5f);

            manager.Update(0.25f); // 0.25
            AssertCallbacks();
            Assert.AreEqual(2, manager.Count());

            manager.Update(0.25f); // 0.5
            AssertCallbacks(TimerCallback2);
            Assert.AreEqual(1, manager.Count());

            manager.Schedule(TimerCallback3, 1.0f); // fires at 1.5
            Assert.AreEqual(2, manager.Count());

            manager.Cancel(TimerCallback1);

            manager.Update(0.25f); // 0.75
            AssertCallbacks(TimerCallback2);
            Assert.AreEqual(1, manager.Count());

            manager.Update(0.25f); // 1.0
            AssertCallbacks(TimerCallback2);
            Assert.AreEqual(1, manager.Count());

            manager.Schedule(TimerCallback4, 0.15f); // fires at 1.15
            Assert.AreEqual(2, manager.Count());

            manager.Cancel(TimerCallback3);

            manager.Update(0.25f); // 1.25
            AssertCallbacks(TimerCallback2, TimerCallback4);
            Assert.AreEqual(0, manager.Count());

            manager.Update(0.25f); // 1.5
            AssertCallbacks(TimerCallback2, TimerCallback4);
            Assert.AreEqual(0, manager.Count());

            manager.Update(0.25f); // 1.75
            AssertCallbacks(TimerCallback2, TimerCallback4);
            Assert.AreEqual(0, manager.Count());
        }
        public void TestCancelTimerInLoop()
        {
            TestTimerManager manager = new TestTimerManager();

            Action dummyCallback = () => {};
            Action callback = () =>
            {
                callbacks.Add(dummyCallback);
                Assert.AreEqual(0, manager.FreeDelayedCount);

                manager.Cancel(TimerCallback1);
                Assert.AreEqual(1, manager.FreeDelayedCount);

                manager.Cancel(TimerCallback2);
                Assert.AreEqual(2, manager.FreeDelayedCount);
            };

            manager.Schedule(callback, 0.25f);
            manager.Schedule(TimerCallback1, 0.25f);
            manager.Schedule(TimerCallback2, 0.25f);
            manager.Schedule(TimerCallback3, 0.25f);

            manager.Update(0.25f);
            Assert.AreEqual(0, manager.FreeDelayedCount);

            AssertCallbacks(dummyCallback, TimerCallback3);
            Assert.AreEqual(0, manager.Count());
        }