public void ShouldCreateAssetAsyncWithMultipleFiles()
{
string[] files = Directory.GetFiles("TestFiles");
IAsset asset = _mediaContext.Assets.Create(Guid.NewGuid().ToString(), AssetCreationOptions.None);
IAccessPolicy policy = _mediaContext.AccessPolicies.Create("Write", TimeSpan.FromMinutes(5), AccessPermissions.Write);
ILocator locator = _mediaContext.Locators.CreateSasLocator(asset, policy);
var blobclient = _mediaContext.MediaServicesClassFactory.GetBlobTransferClient();
var tasks = new List<Task>();
foreach (string filePath in files)
{
var info = new FileInfo(filePath);
IAssetFile file = asset.AssetFiles.Create(info.Name);
tasks.Add(file.UploadAsync(filePath, blobclient, locator, CancellationToken.None));
}
Task.WaitAll(tasks.ToArray());
Assert.AreEqual(AssetState.Initialized, asset.State);
Assert.AreEqual(files.Length, asset.AssetFiles.Count());
Assert.AreEqual(1, asset.Locators.Count);
foreach (IAssetFile assetFile in asset.AssetFiles)
{
Assert.IsTrue(files.Any(f => Path.GetFileName(f).Equals(assetFile.Name, StringComparison.OrdinalIgnoreCase)));
}
}