public void AsyncBuildWithMultipleSubmissionsCancelAndReSubmit()
        {
            BuildRequestData[] buildRequests = GenerateBuildRequests(BuildSubmissionTests.NormalProjectExecutionTime);
            ConfigurationCacheTestExtension configurationCachetestExtension = this.testExtensionContainer.GetFirstTestExtension <ConfigurationCacheTestExtension>();
            ResultsCacheTestExtension       resultsCacheTestExtension       = this.testExtensionContainer.GetFirstTestExtension <ResultsCacheTestExtension>();

            this.buildManagerTestExtension.BeginBuild(BuildManagerTestExtension.CreateBuildParameters(BuildSubmissionTests.DefaultNodeReUseAction, BuildSubmissionTests.MultipleNodeCount, BuildSubmissionTests.DefaultMemoryLimit, "4.0"));
            AsyncBuildRequestStatus[] requestsStatus = null;
            this.buildManagerTestExtension.ExecuteAsyncBuildRequests(buildRequests, BuildSubmissionTests.DefaultBuildCompletionTimeout, !BuildSubmissionTests.WaitForCompletion, out requestsStatus);
            this.buildManagerTestExtension.CancelAllSubmissions();

            for (int j = 0; j < buildRequests.Length; j++)
            {
                Verify.IsTrue(BuildManagerTestExtension.Wait(requestsStatus[j].SubmissionCompletedEvent, BuildSubmissionTests.DefaultBuildCompletionTimeout), "Submissions should have completed in the specified 60 seconds timeout.");
                requestsStatus[j].SubmissionCompletedEvent.Close();
                requestsStatus[j].SubmissionTestExtension.BuildResultTestExtension.Verify.BuildWasAborted();
                BuildResultTestExtension resultFromCacheTestExtension = resultsCacheTestExtension.GetResultFromCache(requestsStatus[j].SubmissionTestExtension.ConfigurationIdForSubmission);
                resultFromCacheTestExtension.Verify.BuildWasAborted();
            }

            this.buildManagerTestExtension.EndBuild();

            this.buildManagerTestExtension.BeginBuild(BuildManagerTestExtension.CreateBuildParameters(BuildSubmissionTests.DefaultNodeReUseAction, BuildSubmissionTests.MultipleNodeCount, BuildSubmissionTests.DefaultMemoryLimit, "4.0"));
            AsyncBuildRequestStatus[] requestsStatusAfterCancel = null;
            bool success = this.buildManagerTestExtension.ExecuteAsyncBuildRequests(buildRequests, BuildSubmissionTests.DefaultBuildCompletionTimeout, BuildSubmissionTests.WaitForCompletion, out requestsStatusAfterCancel);

            Verify.IsTrue(success, "Submissions should have completed in the specified 60 seconds timeout.");

            for (int k = 0; k < buildRequests.Length; k++)
            {
                requestsStatusAfterCancel[k].SubmissionTestExtension.BuildResultTestExtension.Verify.BuildSucceeded();
            }

            this.buildManagerTestExtension.EndBuild();
        }
        public void SimpleSuccessfulBuild()
        {
            BuildRequestData         data = this.buildManagerTestExtension.CreateBuildRequestData(BuildSubmissionTests.NormalProjectExecutionTime);
            BuildResultTestExtension resultTestExtension = this.buildManagerTestExtension.Build(BuildManagerTestExtension.DefaultBuildParameters, data);

            resultTestExtension.Verify.BuildSucceeded();
        }