public async Task shouldCancelDuringBuild() { var cancellationTestee = new PipelineManager(); var canceller = new System.Threading.CancellationTokenSource(); var progressReporter = new PipelineProgress(canceller.Cancel, 50, false); var result = await cancellationTestee.BuildPipelineAsync(this.scheme, canceller.Token, progressReporter, new TestSubject()); var refinedResults = result.Select(r => r.Outcome).ToArray(); Assert.IsTrue(refinedResults.Contains(StepBuildResults.Cancelled) && refinedResults.Contains(StepBuildResults.Completed), "Token may have expirec before the build took place.\nResults are:\n" + refinedResults.PrintContentsToString(Environment.NewLine)); }
public async Task shouldShowWhereBuildWasCancelled() { // Similar to "shouldCancelDuringBuild", but this time check to be sure that the build is cancelling at the right spot. var cancellationTestee = new PipelineManager(); var canceller = new System.Threading.CancellationTokenSource(); var progressReporter = new PipelineProgress(canceller.Cancel, 50, false); var expected = new List<StepBuildResults>() { StepBuildResults.Completed, StepBuildResults.Completed, StepBuildResults.Completed, StepBuildResults.Completed, StepBuildResults.Cancelled, StepBuildResults.Cancelled }; var result = await cancellationTestee.BuildPipelineAsync(this.scheme, canceller.Token, progressReporter, new TestSubject()); var actual = result.Select(r => r.Outcome).ToArray(); Assert.IsTrue(expected.SequenceEqual(actual), TestingHelpers.DumpTestSequencesToText(expected, actual)); }