public void GetTaskOutputStoragePathReturnsExpectedValue()
        {
            const string taskId = "test-task";
            var          task   = new CloudTask(taskId, "test");

            var taskLogPath = task.GetOutputStoragePath(TaskOutputKind.TaskLog);

            Assert.Equal($"{taskId}/${TaskOutputKind.TaskLog.ToString()}", taskLogPath);

            taskLogPath = task.GetOutputStoragePath(TaskOutputKind.TaskOutput);
            Assert.Equal($"{taskId}/${TaskOutputKind.TaskOutput.ToString()}", taskLogPath);

            taskLogPath = task.GetOutputStoragePath(TaskOutputKind.TaskPreview);
            Assert.Equal($"{taskId}/${TaskOutputKind.TaskPreview.ToString()}", taskLogPath);

            taskLogPath = task.GetOutputStoragePath(TaskOutputKind.Custom("foo"));
            Assert.Equal($"{taskId}/${TaskOutputKind.Custom("foo").ToString()}", taskLogPath);
        }
        public static CloudTask WithOutputFile(
            this CloudTask task,
            string pattern,
            string containerUrl,
            TaskOutputKind outputKind,
            OutputFileUploadCondition uploadCondition)
        {
            var  outputBase = task.GetOutputStoragePath(outputKind);
            bool patternContainsWildcard = pattern.Contains("*");
            var  path = patternContainsWildcard ? outputBase : $"{outputBase}/{pattern}";

            return(task.WithOutputFile(
                       pattern,
                       containerUrl,
                       path,
                       uploadCondition));
        }