public void OperationsTest() {
var results = new List<Result>();
var queue = new IdleTimeAsyncTaskQueue(_editorShell);
var ta = new TaskAction(1, results);
queue.Enqueue(ta.Action, ta.CallBackAction, typeof(TaskAction));
ta = new TaskAction(2, results);
queue.Enqueue(ta.Action, ta.CallBackAction, typeof(TaskAction));
ta = new TaskAction(3, results);
queue.Enqueue(ta.Action, ta.CallBackAction, typeof(TaskAction));
RunThreads();
results.Count.Should().Be(3);
results[0].Id.Should().Be(1);
results[1].Id.Should().Be(2);
results[2].Id.Should().Be(3);
results.Clear();
ta = new TaskAction(1, results);
object o1 = 1;
queue.Enqueue(ta.Action, ta.CallBackAction, o1);
ta = new TaskAction(2, results);
object o2 = 2;
queue.Enqueue(ta.Action, ta.CallBackAction, o2);
ta = new TaskAction(3, results);
object o3 = 3;
queue.Enqueue(ta.Action, ta.CallBackAction, o3);
queue.IncreasePriority(o3);
RunThreads();
results.Count.Should().Be(3);
results[0].Id.Should().Be(3);
results[1].Id.Should().Be(1);
results[2].Id.Should().Be(2);
}