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(); }
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(); }