public void ShouldOnlyExecuteActionsQueuedWhileNotStopped()
        {
            var mockery = new MockRepository();
            var action1 = mockery.CreateMock <Action>();
            var action2 = mockery.CreateMock <Action>();
            var action3 = mockery.CreateMock <Action>();

            using (mockery.Record())
            {
                action1();
                action2();
            }

            using (mockery.Playback())
            {
                var queue = new DefaultQueue();
                queue.Enqueue(action1);

                var run = new Thread(queue.Run);

                run.Start();
                Thread.Sleep(100);
                queue.Enqueue(action2);
                queue.Stop();
                queue.Enqueue(action3);
                Thread.Sleep(100);
                run.Join();
            }
        }
Beispiel #2
0
        public void TestDequeueAll()
        {
            var q = new DefaultQueue();

            q.Run();

            q.Enqueue(() => { });
            q.Enqueue(() => { });
            q.Enqueue(() => { });
            var r = q.DequeueAll();

            TestContext.WriteLine($"q.Count():{q.Count()} r.Count():{r.Count}");
            Assert.AreEqual(3, r.Count);
        }
Beispiel #3
0
 public static void Enqueue <T>(this DefaultQueue <T> queue, IEnumerable <T> ts) where T : IQueueable
 {
     foreach (var t in ts)
     {
         queue.Enqueue(t);
     }
 }
        public void NoExceptionHandling()
        {
            var repo    = new MockRepository();
            var action  = repo.CreateMock <Action>();
            var failure = new Exception();

            action();
            LastCall.Throw(failure);

            repo.ReplayAll();

            var queue = new DefaultQueue();

            queue.Enqueue(action);

            try
            {
                queue.ExecuteNextBatch();
                Assert.Fail("Should throw Exception");
            }
            catch (Exception commFailure)
            {
                Assert.AreSame(failure, commFailure);
            }
            repo.VerifyAll();
        }
Beispiel #5
0
        public void TestEnqueue()
        {
            var q = new DefaultQueue();

            q.Enqueue(() => { });
            TestContext.WriteLine($"q.Count():{q.Count()}");
            Assert.AreEqual(1, q.Count());
        }