public async Task Dispose_Running_Task_Should_Continue_After_Stoping_Queue() { //arrange MonoThreadedQueue queue = new MonoThreadedQueue(); var task = queue.Enqueue(() => TaskFactory(3)); while (_RunningThread == null) { Thread.Sleep(100); } //act queue.Dispose(); await task; //assert task.IsCompleted.Should().BeTrue(); }
public async Task Dispose_Enqueue_Items_Should_Return_Canceled_Task_After_Stoping_Queue() { //arrange MonoThreadedQueue queue = new MonoThreadedQueue(); queue.Dispose(); bool Done = false; TaskCanceledException error = null; try { await queue.Enqueue(() => { Done = true; }); } catch (TaskCanceledException e) { error = e; } error.Should().NotBeNull(); Done.Should().BeFalse(); }