public void ShouldSubmitAndFinishJobWithMultipleTasksAndSharedOutputAsset()
{
IAsset asset1 = AssetTests.CreateAsset(_mediaContext, WindowsAzureMediaServicesTestConfiguration.SmallWmv2, AssetCreationOptions.StorageEncrypted);
asset1.Name = "SmallWmv2";
asset1.Update();
string configuration = File.ReadAllText(WindowsAzureMediaServicesTestConfiguration.ThumbnailXml);
IJob job = _mediaContext.Jobs.Create("Test");
IMediaProcessor mediaProcessor = GetMediaProcessor(_mediaContext, WindowsAzureMediaServicesTestConfiguration.MpEncoderName);
ITask task1 = job.Tasks.AddNew("Task1", mediaProcessor, configuration, TaskOptions.None);
task1.InputAssets.Add(asset1);
IAsset output = task1.OutputAssets.AddNew("JobOutput", options: AssetCreationOptions.None, formatOption: AssetFormatOption.None);
ITask task2 = job.Tasks.AddNew("Task2", mediaProcessor, configuration, TaskOptions.None);
task2.InputAssets.Add(asset1);
task2.OutputAssets.Add(output);
job.Submit();
WaitForJob(job.Id, JobState.Finished, VerifyAllTasksFinished);
Assert.IsTrue(job.OutputMediaAssets.Count == 1);
Assert.AreEqual(job.Tasks[0].OutputAssets[0].Id, job.Tasks[1].OutputAssets[0].Id, "Output assets are not the same");
}