public static void Count_OperationCanceledException_PreCanceled(LabeledOperation source, LabeledOperation operation) { CancellationTokenSource cs = new CancellationTokenSource(); cs.Cancel(); Functions.AssertIsCanceled(cs, () => operation.Item(DefaultStart, DefaultSize, source.Append(WithCancellation(cs.Token)).Item).Count()); Functions.AssertIsCanceled(cs, () => operation.Item(DefaultStart, DefaultSize, source.Append(WithCancellation(cs.Token)).Item).LongCount()); Functions.AssertIsCanceled(cs, () => operation.Item(DefaultStart, DefaultSize, source.Append(WithCancellation(cs.Token)).Item).Count(x => true)); Functions.AssertIsCanceled(cs, () => operation.Item(DefaultStart, DefaultSize, source.Append(WithCancellation(cs.Token)).Item).LongCount(x => true)); }
public static void Aggregate_OperationCanceledException_PreCanceled(LabeledOperation source, LabeledOperation operation) { CancellationTokenSource cs = new CancellationTokenSource(); cs.Cancel(); Functions.AssertIsCanceled(cs, () => operation.Item(DefaultStart, DefaultSize, source.Append(WithCancellation(cs.Token)).Item).Aggregate((x, y) => x)); Functions.AssertIsCanceled(cs, () => operation.Item(DefaultStart, DefaultSize, source.Append(WithCancellation(cs.Token)).Item).Aggregate(0, (x, y) => x + y)); Functions.AssertIsCanceled(cs, () => operation.Item(DefaultStart, DefaultSize, source.Append(WithCancellation(cs.Token)).Item).Aggregate(0, (x, y) => x + y, r => r)); Functions.AssertIsCanceled(cs, () => operation.Item(DefaultStart, DefaultSize, source.Append(WithCancellation(cs.Token)).Item).Aggregate(0, (a, x) => a + x, (l, r) => l + r, r => r)); Functions.AssertIsCanceled(cs, () => operation.Item(DefaultStart, DefaultSize, source.Append(WithCancellation(cs.Token)).Item).Aggregate(() => 0, (a, x) => a + x, (l, r) => l + r, r => r)); }
public static IEnumerable <object[]> BinaryFailingOperators() { LabeledOperation failing = Label("Failing", (start, count, s) => s(start, count).Select <int, int>(x => { throw new DeliberateTestException(); })); LabeledOperation source = UnorderedRangeSources().First(); foreach (LabeledOperation operation in BinaryOperations(UnorderedRangeSources().First())) { yield return(new object[] { source.Append(failing), operation }); } foreach (LabeledOperation operation in new[] { Label("Except-Fail", (start, count, s) => s(start, count).Except(s(start, count), new FailingEqualityComparer <int>())), Label("GroupJoin-Fail", (start, count, s) => s(start, count).GroupJoin(s(start, count), x => x, y => y, (x, g) => x, new FailingEqualityComparer <int>())), Label("Intersect-Fail", (start, count, s) => s(start, count).Intersect(s(start, count), new FailingEqualityComparer <int>())), Label("Join-Fail", (start, count, s) => s(start, count).Join(s(start, count), x => x, y => y, (x, y) => x, new FailingEqualityComparer <int>())), Label("Union-Fail", (start, count, s) => s(start, count).Union(s(start, count), new FailingEqualityComparer <int>())), Label("Zip-Fail", (start, count, s) => s(start, count).Zip <int, int, int>(s(start, count), (x, y) => { throw new DeliberateTestException(); })), }) { yield return(new object[] { source, operation }); } }
public static void ToLookup_OperationCanceledException_PreCanceled(LabeledOperation source, LabeledOperation operation) { CancellationTokenSource cs = new CancellationTokenSource(); cs.Cancel(); Functions.AssertIsCanceled(cs, () => operation.Item(DefaultStart, DefaultSize, source.Append(WithCancellation(cs.Token)).Item).ToLookup(x => x)); Functions.AssertIsCanceled(cs, () => operation.Item(DefaultStart, DefaultSize, source.Append(WithCancellation(cs.Token)).Item).ToLookup(x => x, y => y)); }
public static void SequenceEqual_OperationCanceledException_PreCanceled(LabeledOperation source, LabeledOperation operation) { CancellationTokenSource cs = new CancellationTokenSource(); cs.Cancel(); Functions.AssertIsCanceled(cs, () => operation.Item(DefaultStart, DefaultSize, source.Append(WithCancellation(cs.Token)).Item).SequenceEqual(ParallelEnumerable.Range(0, 2))); Functions.AssertIsCanceled(cs, () => ParallelEnumerable.Range(0, 2).SequenceEqual(operation.Item(DefaultStart, DefaultSize, source.Append(WithCancellation(cs.Token)).Item))); }