//IWorkItemResult QueueWorkItem(WorkItemCallback callback, object state, PostExecuteWorkItemCallback postExecuteWorkItemCallback, WorkItemPriority workItemPriority); public static void TestQueueWorkItemCallStatPostPrio(IWorkItemsGroup wig) { bool postExecuteCalled = false; object state = new object(); PostExecuteWorkItemCallback postExecuteWorkItemCallback = delegate(IWorkItemResult w) { postExecuteCalled = true; }; WorkItemInfo wii = new WorkItemInfo(); wii.WorkItemPriority = WorkItemPriority.BelowNormal; wii.PostExecuteWorkItemCallback = postExecuteWorkItemCallback; WorkItemInfoComparer wiic = new WorkItemInfoComparer(wii, state); IWorkItemResult wir = wig.QueueWorkItem( wiic.CompareWorkItemInfo, state, postExecuteWorkItemCallback, WorkItemPriority.BelowNormal); // We must wait for idle to let the post execute run wig.WaitForIdle(); bool success = (bool)wir.Result; Assert.IsTrue(success); Assert.IsTrue(postExecuteCalled); }
//IWorkItemResult QueueWorkItem(WorkItemCallback callback); public static void TestQueueWorkItemCall(IWorkItemsGroup wig) { WorkItemInfo wii = new WorkItemInfo(); WorkItemInfoComparer wiic = new WorkItemInfoComparer(wii); IWorkItemResult wir = wig.QueueWorkItem(wiic.CompareWorkItemInfo); bool success = (bool)wir.Result; Assert.IsTrue(success); }
//IWorkItemResult QueueWorkItem(WorkItemCallback callback); public static void TestQueueWorkItemCall(IWorkItemsGroup wig) { WorkItemInfo wii = new WorkItemInfo(); WorkItemInfoComparer wiic = new WorkItemInfoComparer(wii); IWorkItemResult wir = wig.QueueWorkItem(wiic.CompareWorkItemInfo); bool success = (bool)wir.Result; Assert.IsTrue(success); }
//IWorkItemResult QueueWorkItem(WorkItemCallback callback, object state); public static void TestQueueWorkItemCallStat(IWorkItemsGroup wig) { object state = new object(); WorkItemInfo wii = new WorkItemInfo(); WorkItemInfoComparer wiic = new WorkItemInfoComparer(wii, state); IWorkItemResult wir = wig.QueueWorkItem((WorkItemCallback)wiic.CompareWorkItemInfo, state); bool success = (bool)wir.Result; Assert.IsTrue(success); }
//IWorkItemResult QueueWorkItem(WorkItemCallback callback, object state); public static void TestQueueWorkItemCallStat(IWorkItemsGroup wig) { object state = new object(); WorkItemInfo wii = new WorkItemInfo(); WorkItemInfoComparer wiic = new WorkItemInfoComparer(wii, state); IWorkItemResult wir = wig.QueueWorkItem((WorkItemCallback) wiic.CompareWorkItemInfo, state); bool success = (bool)wir.Result; Assert.IsTrue(success); }
//IWorkItemResult QueueWorkItem(WorkItemCallback callback, WorkItemPriority workItemPriority); public static void TestQueueWorkItemCallPrio(IWorkItemsGroup wig) { WorkItemInfo wii = new WorkItemInfo(); wii.WorkItemPriority = WorkItemPriority.AboveNormal; WorkItemInfoComparer wiic = new WorkItemInfoComparer(wii); IWorkItemResult wir = wig.QueueWorkItem((WorkItemCallback)wiic.CompareWorkItemInfo, WorkItemPriority.AboveNormal); bool success = (bool)wir.Result; Assert.IsTrue(success); }
//IWorkItemResult QueueWorkItem(WorkItemCallback callback, WorkItemPriority workItemPriority); public static void TestQueueWorkItemCallPrio(IWorkItemsGroup wig) { WorkItemInfo wii = new WorkItemInfo { WorkItemPriority = WorkItemPriority.AboveNormal }; WorkItemInfoComparer wiic = new WorkItemInfoComparer(wii); IWorkItemResult wir = wig.QueueWorkItem(wiic.CompareWorkItemInfo, WorkItemPriority.AboveNormal); Assert.IsTrue((bool)wir.Result); }
//IWorkItemResult QueueWorkItem(WorkItemCallback callback, WorkItemPriority workItemPriority); public static void TestQueueWorkItemCallPrio(IWorkItemsGroup wig) { WorkItemInfo wii = new WorkItemInfo(); wii.WorkItemPriority = WorkItemPriority.AboveNormal; WorkItemInfoComparer wiic = new WorkItemInfoComparer(wii); IWorkItemResult wir = wig.QueueWorkItem((WorkItemCallback)wiic.CompareWorkItemInfo, WorkItemPriority.AboveNormal); bool success = (bool)wir.Result; Assert.IsTrue(success); }
//IWorkItemResult QueueWorkItem(WorkItemCallback callback, object state, WorkItemPriority workItemPriority); public static void TestQueueWorkItemCallStatPrio(IWorkItemsGroup wig) { object state = new object(); WorkItemInfo wii = new WorkItemInfo(); wii.WorkItemPriority = WorkItemPriority.AboveNormal; WorkItemInfoComparer wiic = new WorkItemInfoComparer(wii, state); IWorkItemResult wir = wig.QueueWorkItem(wiic.CompareWorkItemInfo, state, WorkItemPriority.AboveNormal); bool success = (bool)wir.Result; Assert.IsTrue(success); }
//IWorkItemResult QueueWorkItem(WorkItemCallback callback, object state, WorkItemPriority workItemPriority); public static void TestQueueWorkItemCallStatPrio(IWorkItemsGroup wig) { object state = new object(); WorkItemInfo wii = new WorkItemInfo(); wii.WorkItemPriority = WorkItemPriority.AboveNormal; WorkItemInfoComparer wiic = new WorkItemInfoComparer(wii, state); IWorkItemResult wir = wig.QueueWorkItem(wiic.CompareWorkItemInfo, state, WorkItemPriority.AboveNormal); bool success = (bool)wir.Result; Assert.IsTrue(success); }
//IWorkItemResult QueueWorkItem(WorkItemInfo workItemInfo, WorkItemCallback callback); public static void TestQueueWorkItemInfoCall(IWorkItemsGroup wig) { WorkItemInfo wii = new WorkItemInfo(); wii.CallToPostExecute = CallToPostExecute.Never; wii.DisposeOfStateObjects = true; wii.PostExecuteWorkItemCallback = delegate(IWorkItemResult w) { }; wii.UseCallerCallContext = true; wii.UseCallerHttpContext = true; wii.WorkItemPriority = WorkItemPriority.Highest; WorkItemInfoComparer wiic = new WorkItemInfoComparer(wii); IWorkItemResult wir = wig.QueueWorkItem(wii, wiic.CompareWorkItemInfo); // We must wait for idle to let the post execute run wig.WaitForIdle(); bool success = (bool)wir.Result; Assert.IsTrue(success); }
//IWorkItemResult QueueWorkItem(WorkItemCallback callback, object state, PostExecuteWorkItemCallback postExecuteWorkItemCallback); public static void TestQueueWorkItemCallStatPost(IWorkItemsGroup wig) { bool postExecuteCalled = false; object state = new object(); PostExecuteWorkItemCallback postExecuteWorkItemCallback = delegate(IWorkItemResult w) { postExecuteCalled = true; }; WorkItemInfo wii = new WorkItemInfo(); wii.PostExecuteWorkItemCallback = postExecuteWorkItemCallback; WorkItemInfoComparer wiic = new WorkItemInfoComparer(wii, state); IWorkItemResult wir = wig.QueueWorkItem( wiic.CompareWorkItemInfo, state, postExecuteWorkItemCallback); // We must wait for idle to let the post execute run wig.WaitForIdle(); bool success = (bool)wir.Result; Assert.IsTrue(success); Assert.IsTrue(postExecuteCalled); }
//IWorkItemResult QueueWorkItem(WorkItemCallback callback, object state, PostExecuteWorkItemCallback postExecuteWorkItemCallback, CallToPostExecute callToPostExecute, WorkItemPriority workItemPriority); public static void TestQueueWorkItemCallStatPostPflgPrio(IWorkItemsGroup wig) { bool postExecuteCalled; CallToPostExecute callToPostExecute; object state = new object(); PostExecuteWorkItemCallback postExecuteWorkItemCallback = delegate(IWorkItemResult w) { postExecuteCalled = true; }; WorkItemInfo wii = new WorkItemInfo(); wii.PostExecuteWorkItemCallback = postExecuteWorkItemCallback; WorkItemInfoComparer wiic = new WorkItemInfoComparer(wii, state); WorkItemPriority workItemPriority; IWorkItemResult wir; bool success; ///////////////////////////////////////////////////////////////////////////// callToPostExecute = CallToPostExecute.Always; workItemPriority = WorkItemPriority.Lowest; // Check without cancel postExecuteCalled = false; wiic.SleepTime = 0; wii.CallToPostExecute = callToPostExecute; wii.WorkItemPriority = workItemPriority; wir = wig.QueueWorkItem( wiic.CompareWorkItemInfo, state, postExecuteWorkItemCallback, callToPostExecute, workItemPriority); // We must wait for idle to let the post execute run wig.WaitForIdle(); success = (bool)wir.Result; Assert.IsTrue(success); Assert.IsTrue(postExecuteCalled); // Check with cancel success = false; postExecuteCalled = false; wiic.SleepTime = 100; wir = wig.QueueWorkItem( wiic.CompareWorkItemInfo, state, postExecuteWorkItemCallback, callToPostExecute, workItemPriority); wir.Cancel(); // We must wait for idle to let the post execute run wig.WaitForIdle(); Assert.IsTrue(postExecuteCalled); try { wir.GetResult(); } catch (WorkItemCancelException ce) { success = true; } Assert.IsTrue(success); ///////////////////////////////////////////////////////////////////////////// callToPostExecute = CallToPostExecute.Never; workItemPriority = WorkItemPriority.Highest; postExecuteCalled = false; wiic.SleepTime = 0; wii.CallToPostExecute = callToPostExecute; wii.WorkItemPriority = workItemPriority; wir = wig.QueueWorkItem( wiic.CompareWorkItemInfo, state, postExecuteWorkItemCallback, callToPostExecute, workItemPriority); // We must wait for idle to let the post execute run wig.WaitForIdle(); success = (bool)wir.Result; Assert.IsTrue(success); Assert.IsFalse(postExecuteCalled); // Check with cancel success = false; postExecuteCalled = false; wiic.SleepTime = 100; wir = wig.QueueWorkItem( wiic.CompareWorkItemInfo, state, postExecuteWorkItemCallback, callToPostExecute, workItemPriority); wir.Cancel(); // We must wait for idle to let the post execute run wig.WaitForIdle(); Assert.IsFalse(postExecuteCalled); try { wir.GetResult(); } catch (WorkItemCancelException ce) { success = true; } Assert.IsTrue(success); ///////////////////////////////////////////////////////////////////////////// callToPostExecute = CallToPostExecute.WhenWorkItemNotCanceled; workItemPriority = WorkItemPriority.AboveNormal; postExecuteCalled = false; wiic.SleepTime = 0; wii.CallToPostExecute = callToPostExecute; wii.WorkItemPriority = workItemPriority; wir = wig.QueueWorkItem( wiic.CompareWorkItemInfo, state, postExecuteWorkItemCallback, callToPostExecute, workItemPriority); // We must wait for idle to let the post execute run wig.WaitForIdle(); success = (bool)wir.Result; Assert.IsTrue(success); Assert.IsTrue(postExecuteCalled); // Check with cancel success = false; postExecuteCalled = false; wiic.SleepTime = 100; wir = wig.QueueWorkItem( wiic.CompareWorkItemInfo, state, postExecuteWorkItemCallback, callToPostExecute, workItemPriority); wir.Cancel(); // We must wait for idle to let the post execute run wig.WaitForIdle(); Assert.IsFalse(postExecuteCalled); try { wir.GetResult(); } catch (WorkItemCancelException ce) { success = true; } Assert.IsTrue(success); ///////////////////////////////////////////////////////////////////////////// callToPostExecute = CallToPostExecute.WhenWorkItemCanceled; workItemPriority = WorkItemPriority.BelowNormal; postExecuteCalled = false; wiic.SleepTime = 0; wii.CallToPostExecute = callToPostExecute; wii.WorkItemPriority = workItemPriority; wir = wig.QueueWorkItem( wiic.CompareWorkItemInfo, state, postExecuteWorkItemCallback, callToPostExecute, workItemPriority); // We must wait for idle to let the post execute run wig.WaitForIdle(); success = (bool)wir.Result; Assert.IsTrue(success); Assert.IsFalse(postExecuteCalled); // Check with cancel success = false; postExecuteCalled = false; wiic.SleepTime = 100; wir = wig.QueueWorkItem( wiic.CompareWorkItemInfo, state, postExecuteWorkItemCallback, callToPostExecute, workItemPriority); wir.Cancel(); // We must wait for idle to let the post execute run wig.WaitForIdle(); Assert.IsTrue(postExecuteCalled); try { wir.GetResult(); } catch (WorkItemCancelException ce) { success = true; } Assert.IsTrue(success); }
//IWorkItemResult QueueWorkItem(WorkItemInfo workItemInfo, WorkItemCallback callback, object state); public static void TestQueueWorkItemInfoCallStat(IWorkItemsGroup wig) { object state = new object(); WorkItemInfo wii = new WorkItemInfo(); wii.CallToPostExecute = CallToPostExecute.Never; wii.DisposeOfStateObjects = true; wii.PostExecuteWorkItemCallback = delegate(IWorkItemResult w) { }; wii.UseCallerCallContext = true; wii.UseCallerHttpContext = true; wii.WorkItemPriority = WorkItemPriority.Highest; WorkItemInfoComparer wiic = new WorkItemInfoComparer(wii, state); IWorkItemResult wir = wig.QueueWorkItem(wii, wiic.CompareWorkItemInfo, state); // We must wait for idle to let the post execute run wig.WaitForIdle(); bool success = (bool)wir.Result; Assert.IsTrue(success); }
//IWorkItemResult QueueWorkItem(WorkItemCallback callback, object state, PostExecuteWorkItemCallback postExecuteWorkItemCallback, CallToPostExecute callToPostExecute, WorkItemPriority workItemPriority); public static void TestQueueWorkItemCallStatPostPflgPrio(IWorkItemsGroup wig) { bool postExecuteCalled; CallToPostExecute callToPostExecute; object state = new object(); PostExecuteWorkItemCallback postExecuteWorkItemCallback = delegate(IWorkItemResult w) { postExecuteCalled = true; }; WorkItemInfo wii = new WorkItemInfo(); wii.PostExecuteWorkItemCallback = postExecuteWorkItemCallback; WorkItemInfoComparer wiic = new WorkItemInfoComparer(wii, state); WorkItemPriority workItemPriority; IWorkItemResult wir; bool success; ///////////////////////////////////////////////////////////////////////////// callToPostExecute = CallToPostExecute.Always; workItemPriority = WorkItemPriority.Lowest; // Check without cancel postExecuteCalled = false; wiic.SleepTime = 0; wii.CallToPostExecute = callToPostExecute; wii.WorkItemPriority = workItemPriority; wir = wig.QueueWorkItem( wiic.CompareWorkItemInfo, state, postExecuteWorkItemCallback, callToPostExecute, workItemPriority); // We must wait for idle to let the post execute run wig.WaitForIdle(); success = (bool)wir.Result; Assert.IsTrue(success); Assert.IsTrue(postExecuteCalled); // Check with cancel success = false; postExecuteCalled = false; wiic.SleepTime = 100; wir = wig.QueueWorkItem( wiic.CompareWorkItemInfo, state, postExecuteWorkItemCallback, callToPostExecute, workItemPriority); wir.Cancel(); // We must wait for idle to let the post execute run wig.WaitForIdle(); Assert.IsTrue(postExecuteCalled); try { wir.GetResult(); } catch (WorkItemCancelException ce) { success = true; } Assert.IsTrue(success); ///////////////////////////////////////////////////////////////////////////// callToPostExecute = CallToPostExecute.Never; workItemPriority = WorkItemPriority.Highest; postExecuteCalled = false; wiic.SleepTime = 0; wii.CallToPostExecute = callToPostExecute; wii.WorkItemPriority = workItemPriority; wir = wig.QueueWorkItem( wiic.CompareWorkItemInfo, state, postExecuteWorkItemCallback, callToPostExecute, workItemPriority); // We must wait for idle to let the post execute run wig.WaitForIdle(); success = (bool)wir.Result; Assert.IsTrue(success); Assert.IsFalse(postExecuteCalled); // Check with cancel success = false; postExecuteCalled = false; wiic.SleepTime = 100; wir = wig.QueueWorkItem( wiic.CompareWorkItemInfo, state, postExecuteWorkItemCallback, callToPostExecute, workItemPriority); wir.Cancel(); // We must wait for idle to let the post execute run wig.WaitForIdle(); Assert.IsFalse(postExecuteCalled); try { wir.GetResult(); } catch (WorkItemCancelException ce) { success = true; } Assert.IsTrue(success); ///////////////////////////////////////////////////////////////////////////// callToPostExecute = CallToPostExecute.WhenWorkItemNotCanceled; workItemPriority = WorkItemPriority.AboveNormal; postExecuteCalled = false; wiic.SleepTime = 0; wii.CallToPostExecute = callToPostExecute; wii.WorkItemPriority = workItemPriority; wir = wig.QueueWorkItem( wiic.CompareWorkItemInfo, state, postExecuteWorkItemCallback, callToPostExecute, workItemPriority); // We must wait for idle to let the post execute run wig.WaitForIdle(); success = (bool)wir.Result; Assert.IsTrue(success); Assert.IsTrue(postExecuteCalled); // Check with cancel success = false; postExecuteCalled = false; wiic.SleepTime = 100; wir = wig.QueueWorkItem( wiic.CompareWorkItemInfo, state, postExecuteWorkItemCallback, callToPostExecute, workItemPriority); wir.Cancel(); // We must wait for idle to let the post execute run wig.WaitForIdle(); Assert.IsFalse(postExecuteCalled); try { wir.GetResult(); } catch (WorkItemCancelException ce) { success = true; } Assert.IsTrue(success); ///////////////////////////////////////////////////////////////////////////// callToPostExecute = CallToPostExecute.WhenWorkItemCanceled; workItemPriority = WorkItemPriority.BelowNormal; postExecuteCalled = false; wiic.SleepTime = 0; wii.CallToPostExecute = callToPostExecute; wii.WorkItemPriority = workItemPriority; wir = wig.QueueWorkItem( wiic.CompareWorkItemInfo, state, postExecuteWorkItemCallback, callToPostExecute, workItemPriority); // We must wait for idle to let the post execute run wig.WaitForIdle(); success = (bool)wir.Result; Assert.IsTrue(success); Assert.IsFalse(postExecuteCalled); // Check with cancel success = false; postExecuteCalled = false; wiic.SleepTime = 100; wir = wig.QueueWorkItem( wiic.CompareWorkItemInfo, state, postExecuteWorkItemCallback, callToPostExecute, workItemPriority); wir.Cancel(); // We must wait for idle to let the post execute run wig.WaitForIdle(); Assert.IsTrue(postExecuteCalled); try { wir.GetResult(); } catch (WorkItemCancelException ce) { success = true; } Assert.IsTrue(success); }