コード例 #1
0
        public void TestExecute()
        {
            int executeCounter = 0;

            var eventFiringScheduler = new EventFiringScheduler();

            eventFiringScheduler.LifeCycleEvent += Executed;

            eventFiringScheduler.Start();

            eventFiringScheduler.Fire(new MockFileSource());
            eventFiringScheduler.Fire(new MockFileSource());
            eventFiringScheduler.Fire(null, EventArgs.Empty, new MockFileSource());

            eventFiringScheduler.Stop();
            eventFiringScheduler.Join();

            Assert.AreEqual(3, executeCounter);

            void Executed(object sender, SchedulerLifeCycleEventArgs args)
            {
                if (args.EventType == SchedulerLifeCycleEventType.SourceReady)
                {
                    executeCounter++;
                }
            }
        }
コード例 #2
0
        public void TestExecute()
        {
            int executeCounter = 0;

            var eventFiringScheduler = new EventFiringScheduler();

            eventFiringScheduler.LifeCycleEvent += Executed;

            eventFiringScheduler.Start();

            TestEvent += EmptyFire;

            Assert.AreEqual(0, executeCounter);

            TestEvent?.Invoke(this, EventArgs.Empty);
            Assert.AreEqual(1, executeCounter);

            TestEvent?.Invoke(this, EventArgs.Empty);
            Assert.AreEqual(2, executeCounter);

            eventFiringScheduler.Stop();

            Assert.AreEqual(2, executeCounter);

            TestEvent -= EmptyFire;

            void Executed(object sender, SchedulerLifeCycleEventArgs args)
            {
                if (args.EventType == SchedulerLifeCycleEventType.Execute)
                {
                    executeCounter++;
                }
            }

            void EmptyFire(object sender, EventArgs args)
            {
                eventFiringScheduler.Fire(sender, args, null);
            }
        }