// TO DO: Since we have to fetch the task, the interceptor needs to handle that case too. Once // the cmdlet can directly call the List Subtasks method by itself, update these test cases to // use the generic interceptor creation helper. private RequestInterceptor CreateFakeListSubtasksInterceptor( string taskId, AzureOperationResponse <ProxyModels.CloudTaskListSubtasksResult, ProxyModels.TaskListSubtasksHeaders> listSubtasksResponse) { RequestInterceptor interceptor = new RequestInterceptor((baseRequest) => { TaskListSubtasksBatchRequest listSubtaskRequest = baseRequest as TaskListSubtasksBatchRequest; if (listSubtaskRequest != null) { listSubtaskRequest.ServiceRequestFunc = (cancellationToken) => { Task <AzureOperationResponse <ProxyModels.CloudTaskListSubtasksResult, ProxyModels.TaskListSubtasksHeaders> > task = Task.FromResult(listSubtasksResponse); return(task); }; } else { TaskGetBatchRequest getTaskRequest = (TaskGetBatchRequest)baseRequest; getTaskRequest.ServiceRequestFunc = (cancellationToken) => { AzureOperationResponse <ProxyModels.CloudTask, ProxyModels.TaskGetHeaders> response = BatchTestHelpers.CreateCloudTaskGetResponse(taskId); Task <AzureOperationResponse <ProxyModels.CloudTask, ProxyModels.TaskGetHeaders> > task = Task.FromResult(response); return(task); }; } }); return(interceptor); }
/// <summary> /// Fabricates a CloudTask that's in the bound state /// </summary> public static CloudTask CreateFakeBoundTask(BatchAccountContext context) { string taskId = "testTask"; RequestInterceptor interceptor = new RequestInterceptor((baseRequest) => { TaskGetBatchRequest request = (TaskGetBatchRequest)baseRequest; request.ServiceRequestFunc = (cancellationToken) => { var response = new AzureOperationResponse <ProxyModels.CloudTask, ProxyModels.TaskGetHeaders>(); response.Body = new ProxyModels.CloudTask(taskId, "cmd /c dir /s"); Task <AzureOperationResponse <ProxyModels.CloudTask, ProxyModels.TaskGetHeaders> > task = Task.FromResult(response); return(task); }; }); return(context.BatchOMClient.JobOperations.GetTask("jobId", taskId, additionalBehaviors: new BatchClientBehavior[] { interceptor })); }