public void ShouldCreateAssetFile()
{
IAsset asset = _mediaContext.Assets.Create("Empty", AssetCreationOptions.StorageEncrypted);
IAssetFile file = asset.AssetFiles.CreateAsync(Path.GetFileName(_smallWmv), CancellationToken.None).Result;
IAccessPolicy policy = _mediaContext.AccessPolicies.Create("temp", TimeSpan.FromMinutes(10), AccessPermissions.Write);
ILocator locator = _mediaContext.Locators.CreateSasLocator(asset, policy);
BlobTransferClient blobTransferClient = _mediaContext.MediaServicesClassFactory.GetBlobTransferClient();
bool transferCompletedFired = false;
blobTransferClient.TransferCompleted += (sender, args) =>
{
transferCompletedFired = true;
Assert.AreEqual(BlobTransferType.Upload, args.TransferType, "file.UploadAsync Transfer completed expected BlobTransferType is Upload");
};
file.UploadAsync(_smallWmv, blobTransferClient, locator, CancellationToken.None).Wait();
Assert.IsNotNull(asset, "Asset should be non null");
Assert.IsTrue(transferCompletedFired, "TransferCompleted event has not been fired");
Assert.AreNotEqual(Guid.Empty, asset.Id, "Asset ID shuold not be null");
Assert.AreEqual(AssetState.Initialized, asset.State, "Asset state wrong");
Assert.AreEqual(1, asset.AssetFiles.Count());
IAssetFile queriedAssetFile = asset.AssetFiles.First();
Assert.IsTrue(string.Compare(Path.GetFileName(_smallWmv), queriedAssetFile.Name, StringComparison.InvariantCultureIgnoreCase) == 0, "Main file is wrong");
FileInfo assetFileInfo = new FileInfo(_smallWmv);
Assert.AreEqual(assetFileInfo.Length, queriedAssetFile.ContentFileSize);
}