public void WillCopyMetadataFromSourceWherePresent() { var buffer = Encoding.UTF8.GetBytes("File content"); var sourceBlob = new StandaloneAzureBlockBlob(BasePath, SourceBlobName); sourceBlob.UploadFromByteArrayAsync(buffer, 0, buffer.Length).Wait(); sourceBlob.Metadata["thing"] = "something"; sourceBlob.Properties.ContentType = "whatever"; sourceBlob.SetMetadata(); sourceBlob.SetProperties(); var destinationBlob = new StandaloneAzureBlockBlob(BasePath, DestinationBlobName); destinationBlob.StartCopyFromBlob(sourceBlob); destinationBlob.FetchAttributes(); new { Metadata = new Dictionary<string, string> { {"thing", "something"} }, Properties = new { ContentType = "whatever", Length = (long) 12 } }.ToExpectedObject().ShouldMatch(destinationBlob); }
public void CanPersistAndRetrieveProperties() { var sourceBlob = new StandaloneAzureBlockBlob(BasePath, BlobName); CreateBlobContent(sourceBlob); sourceBlob.Properties.ContentType = "something"; sourceBlob.SetProperties(); var loadedBlob = new StandaloneAzureBlockBlob(BasePath, BlobName); loadedBlob.FetchAttributes(); new { Properties = new { ContentType = "something", Length = (long) 12 } }.ToExpectedObject().ShouldMatch(loadedBlob); }
public void FetchingAttributesOverwritesAnyUnsavedPropertyValues() { var sourceBlob = new StandaloneAzureBlockBlob(BasePath, BlobName); CreateBlobContent(sourceBlob); sourceBlob.Properties.ContentType = "something"; sourceBlob.SetProperties(); var loadedBlob = new StandaloneAzureBlockBlob(BasePath, BlobName); loadedBlob.FetchAttributes(); sourceBlob.Properties.ContentType = "something else"; loadedBlob.FetchAttributes(); new { Properties = new { ContentType = "something", Length = (long)12 } }.ToExpectedObject().ShouldMatch(loadedBlob); }
public void WillThrowOnSaveOfPropertiesIfBlobDoesNotExist() { var blob = new StandaloneAzureBlockBlob(BasePath, BlobName); Assert.Throws<StorageException>(() => blob.SetProperties()); }
public void WillThrowOnSaveOfMetadataWhenFileWriteRetriesExhausted(string blobName) { var metadataPath = Path.Combine(BasePath, ".meta", blobName); var sourceBlob = new StandaloneAzureBlockBlob(BasePath, blobName); CreateBlobContent(sourceBlob); sourceBlob.Properties.ContentType = "thing"; sourceBlob.SetProperties(); var loadedBlob = new StandaloneAzureBlockBlob(BasePath, blobName); loadedBlob.FetchAttributes(); loadedBlob.Properties.ContentType = "otherthing"; using (File.Open(metadataPath, FileMode.Open, FileAccess.ReadWrite, FileShare.None)) { Assert.Throws<StorageException>(() => loadedBlob.SetProperties()); } }
public void PropertiesCanBeSetRepeatedly(string blobName) { var sourceBlob = new StandaloneAzureBlockBlob(BasePath, blobName); CreateBlobContent(sourceBlob); sourceBlob.Properties.ContentType = "something"; sourceBlob.SetProperties(); sourceBlob.Properties.ContentType = "something else"; sourceBlob.SetProperties(); var loadedBlob = new StandaloneAzureBlockBlob(BasePath, blobName); loadedBlob.FetchAttributes(); new { Properties = new { ContentType = "something else" } }.ToExpectedObject().ShouldMatch(loadedBlob); }