public async Task Metadata_Folder_CRUD_LiveSession()
{
const string FOLDER_ID = "1927308583";
//create metadata
var md = new Dictionary<string, object>() {
{ "attr1", ATTR1 },
{ "attr2", ATTR2 },
{ "attr3", ATTR3 },
{ "attr4", ATTR4 }
};
var createdMD = await _client.MetadataManager.CreateFolderMetadataAsync(FOLDER_ID, md, SCOPE, TEMPLATE_KEY);
Assert.IsTrue(createdMD.Keys.Contains("attr1"), "Failed to correctly create folder metadata");
//get metadata
var fetchedMD = await _client.MetadataManager.GetFolderMetadataAsync(FOLDER_ID, SCOPE, TEMPLATE_KEY);
Assert.IsTrue(fetchedMD.Keys.Contains("attr1"), "Failed to correctly fetch folder 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.UpdateFolderMetadataAsync(FOLDER_ID, new List<BoxMetadataUpdate>() { update, update2 }, SCOPE, TEMPLATE_KEY);
Assert.AreEqual(ATTR4, updatedMD["attr1"], "Failed to update metadata on folder");
Assert.AreEqual("value2", updatedMD["attr4"], "Failed to update metadata on folder");
//get all folder metadata
var allMD = await _client.MetadataManager.GetAllFolderMetadataTemplatesAsync(FOLDER_ID);
Assert.AreEqual(1, allMD.Entries.Count, "Failed to get all folder metadata");
//delete metadata
var result = await _client.MetadataManager.DeleteFolderMetadataAsync(FOLDER_ID, SCOPE, TEMPLATE_KEY);
Assert.IsTrue(result, "Failed to delete folder metadata");
}