// 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);
        }
Ejemplo n.º 2
0
        /// <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 }));
        }