Beispiel #1
0
        public void Should_result_in_an_exception()
        {
            var action = MockRepository.GenerateMock<Action>();

            var queue = new ThreadPoolActionQueue(2, 0);
            queue.Enqueue(action);
            queue.Enqueue(action);

            try
            {
                queue.Enqueue(action);
                Assert.Fail("Should have thrown an exception");
            }
            catch (ActionQueueException ex)
            {
                ex.Message.Contains("Insufficient").ShouldBeTrue();
            }
        }
Beispiel #2
0
        public void Should_prevent_new_actions_from_being_queued()
        {
            ActionQueue queue = new ThreadPoolActionQueue();

            var called = new Future<bool>();

            queue.StopAcceptingActions();

            Assert.Throws<ActionQueueException>(() => queue.Enqueue(() => called.Complete(true)));

            queue.ExecuteAll(10.Seconds());

            called.IsAvailable().ShouldBeFalse();
        }
Beispiel #3
0
        public void Should_result_in_no_waiting_actions_in_the_queue()
        {
            TraceLogProvider.Configure(LogLevel.Debug);

            ActionQueue queue = new ThreadPoolActionQueue();

            queue.Enqueue(() => Thread.Sleep(1000));

            var called = new Future<bool>();

            queue.Enqueue(() => called.Complete(true));

            queue.ExecuteAll(8.Seconds());

            called.IsAvailable().ShouldBeTrue();
        }