public async Task Metadata_File_CRUD_LiveSession()
{
const string FILE_ID = "16894937607";
//create metadata
var md = new Dictionary<string, object>() {
{ "attr1", ATTR1 },
{ "attr2", ATTR2 },
{ "attr3", ATTR3 },
{ "attr4", ATTR4 }
};
var createdMD = await _client.MetadataManager.CreateFileMetadataAsync(FILE_ID, md, SCOPE, TEMPLATE_KEY);
Assert.IsTrue(createdMD.Keys.Contains("attr1"), "Failed to correctly create file metadata");
//get metadata
var fetchedMD = await _client.MetadataManager.GetFileMetadataAsync(FILE_ID, SCOPE, TEMPLATE_KEY);
Assert.IsTrue(fetchedMD.Keys.Contains("attr1"), "Failed to correctly fetch file metadata");
//update metadata
var update = new BoxMetadataUpdate() { Op = MetadataUpdateOp.copy, Path = "/attr1", From = "/attr4" };
var update2 = new BoxMetadataUpdate() { Op = MetadataUpdateOp.replace, Path = "/attr4", Value = "value2" };
var updatedMD = await _client.MetadataManager.UpdateFileMetadataAsync(FILE_ID, new List<BoxMetadataUpdate>() { update, update2 }, SCOPE, TEMPLATE_KEY);
Assert.AreEqual(ATTR4, updatedMD["attr1"], "Failed to update metadata on file");
Assert.AreEqual("value2", updatedMD["attr4"], "Failed to update metadata on file");
//get all file metadata
var allMD = await _client.MetadataManager.GetAllFileMetadataTemplatesAsync(FILE_ID);
Assert.AreEqual(1, allMD.Entries.Count, "Failed to get all file metadata");
//delete metadata
var result = await _client.MetadataManager.DeleteFileMetadataAsync(FILE_ID, SCOPE, TEMPLATE_KEY);
Assert.IsTrue(result, "Failed to delete file metadata");
}