public void CloudFileShareSetMetadataAPM() { CloudFileShare share = GetRandomShareReference(); try { share.Create(); using (AutoResetEvent waitHandle = new AutoResetEvent(false)) { CloudFileShare share2 = share.ServiceClient.GetShareReference(share.Name); IAsyncResult result = share2.BeginFetchAttributes( ar => waitHandle.Set(), null); waitHandle.WaitOne(); share2.EndFetchAttributes(result); Assert.AreEqual(0, share2.Metadata.Count); share.Metadata.Add("key1", "value1"); result = share.BeginSetMetadata( ar => waitHandle.Set(), null); waitHandle.WaitOne(); share.EndSetMetadata(result); result = share2.BeginFetchAttributes( ar => waitHandle.Set(), null); waitHandle.WaitOne(); share2.EndFetchAttributes(result); Assert.AreEqual(1, share2.Metadata.Count); Assert.AreEqual("value1", share2.Metadata["key1"]); result = share.ServiceClient.BeginListSharesSegmented(share.Name, ShareListingDetails.Metadata, null, null, null, null, ar => waitHandle.Set(), null); waitHandle.WaitOne(); CloudFileShare share3 = share.ServiceClient.EndListSharesSegmented(result).Results.First(); Assert.AreEqual(1, share3.Metadata.Count); Assert.AreEqual("value1", share3.Metadata["key1"]); share.Metadata.Clear(); result = share.BeginSetMetadata( ar => waitHandle.Set(), null); waitHandle.WaitOne(); share.EndSetMetadata(result); result = share2.BeginFetchAttributes( ar => waitHandle.Set(), null); waitHandle.WaitOne(); share2.EndFetchAttributes(result); Assert.AreEqual(0, share2.Metadata.Count); } } finally { share.DeleteIfExists(); } }