public void ShouldSubmitAndFinishPlayReadyProtectedHlsJob()
{
IAsset asset = CreateSmoothAsset();
// Use the published PlayReady Test Key Seed to generate a content key based on a randomly generated Guid.
// We could also use a cryptographically sound random number generator here like RNGCryptoServiceProvider.
byte[] keySeed = Convert.FromBase64String("XVBovsmzhP9gRIZxWfFta3VVRPzVEWmJsazEJ46I");
Guid keyId = Guid.NewGuid();
byte[] keyValue = CommonEncryption.GeneratePlayReadyContentKey(keySeed, keyId);
string encryptionConfiguration = File.ReadAllText(WindowsAzureMediaServicesTestConfiguration.PlayReadyConfigWithContentKey);
encryptionConfiguration = UpdatePlayReadyConfigurationXML(keyId, keyValue, new Uri("http://www.fakeurl.com"), encryptionConfiguration);
IJob job = _mediaContext.Jobs.Create("PlayReady Protected Hls Job");
IMediaProcessor mediaProcessor = GetMediaProcessor(_mediaContext, WindowsAzureMediaServicesTestConfiguration.MpEncryptorName);
ITask task = job.Tasks.AddNew("PlayReady Encryption Task", mediaProcessor, encryptionConfiguration, TaskOptions.ProtectedConfiguration);
task.InputAssets.Add(asset);
IAsset asset2 = task.OutputAssets.AddNew("PlayReady Protected Smooth");
string smoothToHlsConfiguration = File.ReadAllText(WindowsAzureMediaServicesTestConfiguration.SmoothToHlsConfig);
ITask task2 = job.Tasks.AddNew("Smooth to Hls conversion task", mediaProcessor, smoothToHlsConfiguration, TaskOptions.None);
task2.InputAssets.Add(asset2);
task2.OutputAssets.AddNew("JobOutput", options: AssetCreationOptions.CommonEncryptionProtected);
job.Submit();
WaitForJob(job.Id, JobState.Finished, VerifyAllTasksFinished);
}