public void CloudBlobSnapshotMetadataAPM() { CloudBlobContainer container = GetRandomContainerReference(); try { container.Create(); var blobName = GetRandomBlobName(); CloudAppendBlob appendBlob = container.GetAppendBlobReference(blobName); appendBlob.CreateOrReplace(); CloudBlob blob = container.GetBlobReference(blobName); blob.Metadata["Hello"] = "World"; blob.Metadata["Marco"] = "Polo"; blob.SetMetadata(); IDictionary <string, string> snapshotMetadata = new Dictionary <string, string>(); snapshotMetadata["Hello"] = "Dolly"; snapshotMetadata["Yoyo"] = "Ma"; IAsyncResult result; using (AutoResetEvent waitHandle = new AutoResetEvent(false)) { result = blob.BeginSnapshot(snapshotMetadata, null, null, null, ar => waitHandle.Set(), null); waitHandle.WaitOne(); CloudBlob snapshot = blob.EndSnapshot(result); // Test the client view against the expected metadata // Metadata keys should be case-insensitive // None of the original metadata should be present Assert.AreEqual("Dolly", snapshot.Metadata["Hello"]); Assert.AreEqual("Dolly", snapshot.Metadata["HELLO"]); Assert.AreEqual("Ma", snapshot.Metadata["Yoyo"]); Assert.IsFalse(snapshot.Metadata.ContainsKey("Marco")); // Test the server view against the expected metadata snapshot.FetchAttributes(); Assert.AreEqual("Dolly", snapshot.Metadata["Hello"]); Assert.AreEqual("Dolly", snapshot.Metadata["HELLO"]); Assert.AreEqual("Ma", snapshot.Metadata["Yoyo"]); Assert.IsFalse(snapshot.Metadata.ContainsKey("Marco")); } } finally { container.DeleteIfExists(); } }
public void CloudBlobSnapshotMetadata() { CloudBlobContainer container = GetRandomContainerReference(); try { container.Create(); var blobName = GetRandomBlobName(); CloudAppendBlob appendBlob = container.GetAppendBlobReference(blobName); appendBlob.CreateOrReplace(); CloudBlob blob = container.GetBlobReference(blobName); blob.Metadata["Hello"] = "World"; blob.Metadata["Marco"] = "Polo"; blob.SetMetadata(); IDictionary <string, string> snapshotMetadata = new Dictionary <string, string>(); snapshotMetadata["Hello"] = "Dolly"; snapshotMetadata["Yoyo"] = "Ma"; CloudBlob snapshot = blob.Snapshot(snapshotMetadata); // Test the client view against the expected metadata // Metadata keys should be case-insensitive // None of the original metadata should be present Assert.AreEqual("Dolly", snapshot.Metadata["Hello"]); Assert.AreEqual("Dolly", snapshot.Metadata["HELLO"]); Assert.AreEqual("Ma", snapshot.Metadata["Yoyo"]); Assert.IsFalse(snapshot.Metadata.ContainsKey("Marco")); // Test the server view against the expected metadata snapshot.FetchAttributes(); Assert.AreEqual("Dolly", snapshot.Metadata["Hello"]); Assert.AreEqual("Dolly", snapshot.Metadata["HELLO"]); Assert.AreEqual("Ma", snapshot.Metadata["Yoyo"]); Assert.IsFalse(snapshot.Metadata.ContainsKey("Marco")); } finally { container.DeleteIfExists(); } }