public void WorkerShouldStopAfterContinuousIdleLoops()
        {
            string[]      data   = new[] { "123", "456", "789" };
            List <string> result = new List <string>();

            QueueWorker.DequeueWorker worker = new QueueWorker.DequeueWorker(queryRoot, "A", d => Thread.Sleep(1000), 1000, 3);
            worker.Start();
            Enqueue("A", data[0]);
            Enqueue("A", data[1]);
            Enqueue("A", data[2]);
            Thread.Sleep(3000);
            Assert.IsTrue(worker.IsRunning);
            Thread.Sleep(10000);
            Assert.IsFalse(worker.IsRunning);
        }
        public void EnqueueAndDequeue()
        {
            string[]      data   = new[] { "123", "456", "789" };
            List <string> result = new List <string>();

            QueueWorker.DequeueWorker worker = new QueueWorker.DequeueWorker(queryRoot, "A", result.Add, 1000);
            worker.Start();

            Enqueue("A", data[0]);
            Enqueue("A", data[1]);
            Enqueue("A", data[2]);

            Thread.Sleep(10000);
            Assert.AreEqual(3, result.Count);
        }