Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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();
        }