public async Task CannotCreateOutputStorageForNullStorageAccount()
        {
            var taskResponse = new Batch.Protocol.Models.CloudTask
            {
                Id  = "faketask",
                Url = $"http://contoso.noregion.batch.azure.com/jobs/fakejob/tasks/faketask",  // TODO: remove if .NET client library can surface CloudTask.JobId directly
            };

            using (var batchClient = await BatchClient.OpenAsync(new FakeBatchServiceClient(taskResponse)))
            {
                CloudTask           task           = batchClient.JobOperations.GetTask("fakejob", "faketask");
                CloudStorageAccount storageAccount = null;
                var ex = Assert.Throws <ArgumentNullException>(() => task.OutputStorage(storageAccount));
                Assert.Equal("storageAccount", ex.ParamName);
            }
        }
        public async Task CloudJobOutputStorageExtensionSavesToCorrectContainer()
        {
            var taskResponse = new Batch.Protocol.Models.CloudTask
            {
                Id  = _taskId,
                Url = $"http://contoso.noregion.batch.azure.com/jobs/{_jobId}/tasks/{_taskId}",  // TODO: remove if .NET client library can surface CloudTask.JobId directly
            };

            using (var batchClient = await BatchClient.OpenAsync(new FakeBatchServiceClient(taskResponse)))
            {
                var task = await batchClient.JobOperations.GetTaskAsync(_jobId, _taskId);

                await task.OutputStorage(StorageAccount).SaveAsync(TaskOutputKind.TaskOutput, FilePath("TestText1.txt"));

                var blobs = task.OutputStorage(StorageAccount).ListOutputs(TaskOutputKind.TaskOutput).ToList();
                Assert.NotEqual(0, blobs.Count);
                Assert.Contains(blobs, b => b.Uri.AbsoluteUri.EndsWith($"{_jobId}/{_taskId}/$TaskOutput/Files/TestText1.txt"));
            }
        }