public void BlobServiceClientEx_PutSingleBlobSize42Specified_HasPutSingleBlobSizeEqualTo42() { const int putSingleBlobSizeOverride = 42; var client = new BlobServiceClientEx(_accountSettings, putSingleBlobSizeOverride); Assert.AreEqual(putSingleBlobSizeOverride, client.MaxSingleBlobUploadSize); }
public void PutBlockBlobIntelligently_DefaultArgsOnly_CreatesBlockBlob() { var expectedData = Encoding.UTF8.GetBytes("test data"); var containerName = GenerateSampleContainerName(); var blobName = GenerateSampleBlobName(); IBlobServiceClientEx client = new BlobServiceClientEx(AccountSettings); CreateContainer(containerName); // Tempt it to do it in two uploads by specifying half megabyte client.PutBlockBlobIntelligently(expectedData.Length - 5, containerName, blobName, expectedData); AssertBlobExists(containerName, blobName, BlobType.BlockBlob); AssertBlockBlobContainsData(containerName, blobName, expectedData); }
public void PutBlockBlobIntelligently_DataSmallerThanMaxSingleUploadSize_CreatesBlockBlobWithOneUpload() { var expectedData = Encoding.UTF8.GetBytes("test data"); var expectedDataLength = expectedData.Length; var containerName = GenerateSampleContainerName(); var blobName = GenerateSampleBlobName(); IBlobServiceClientEx client = new BlobServiceClientEx(AccountSettings); CreateContainer(containerName); // Tempt it to do it in two uploads by specifying a blocksize smaller than the data length var response = client.PutBlockBlobIntelligently(expectedDataLength - 5, containerName, blobName, expectedData); AssertBlobOfSingleUpload(expectedData, containerName, blobName); AssertIsPutBlockBlobResponse(response); }
public void PutBlockBlobAsList_LargerThanMaxSingleBlobSize_CreatesBlockBlobFromLatestBlocks() { var expectedData = new byte[MaxIntelligentSingleBlobUploadSizeOverride + 5]; var containerName = GenerateSampleContainerName(); var blobName = GenerateSampleBlobName(); CreateContainer(containerName); IBlobServiceClientEx client = new BlobServiceClientEx(AccountSettings); client.PutBlockBlobAsList(MaxIntelligentSingleBlobUploadSizeOverride / 2, containerName, blobName, expectedData); AssertBlobExists(containerName, blobName, BlobType.BlockBlob); AssertBlockBlobContainsData(containerName, blobName, expectedData); }
public void PutBlockBlobAsList_RequiredArgsOnly_CreatesBlockBlobFromLatestBlocks() { const string dataPerBlock = "foo"; var expectedData = Encoding.UTF8.GetBytes(string.Format("{0}{0}{0}", dataPerBlock)); var containerName = GenerateSampleContainerName(); var blobName = GenerateSampleBlobName(); IBlobServiceClientEx client = new BlobServiceClientEx(AccountSettings); CreateContainer(containerName); client.PutBlockBlobAsList(4, containerName, blobName, expectedData); AssertBlobExists(containerName, blobName, BlobType.BlockBlob); AssertBlockBlobContainsData(containerName, blobName, expectedData); }
public void PutBlockBlobAsList_OneByteAtATime_CreatesBlobOfCorrectLength() { const string dataPerBlock = "foo"; var expectedData = Encoding.UTF8.GetBytes(string.Format("{0}{0}{0}", dataPerBlock)); var containerName = GenerateSampleContainerName(); var blobName = GenerateSampleBlobName(); IBlobServiceClientEx client = new BlobServiceClientEx(AccountSettings); CreateContainer(containerName); client.PutBlockBlobAsList(1, containerName, blobName, expectedData); AssertBlobExists(containerName, blobName, BlobType.BlockBlob); AssertBlockBlobContainsData(containerName, blobName, expectedData); }
public void PutBlockBlobIntelligently_SingleUploadWithCacheControl_CorrectContentCacheControl() { var expectedData = new byte[1024]; const string expectedCacheControl = "ponyfoo"; var containerName = GenerateSampleContainerName(); var blobName = GenerateSampleBlobName(); IBlobServiceClientEx client = new BlobServiceClientEx(AccountSettings); CreateContainer(containerName); client.PutBlockBlobIntelligently(BlobServiceConstants.MaxSingleBlockUploadSize, containerName, blobName, expectedData, cacheControl: expectedCacheControl); var properties = GetBlobProperties(containerName, blobName); AssertBlobOfSingleUpload(expectedData, containerName, blobName); Assert.AreEqual(expectedCacheControl, properties.CacheControl); }
public void PutBlockBlobIntelligently_SingleUploadWithMetadata_CorrectMetadata() { var expectedData = new byte[1024]; var expectedMetadata = new Dictionary<string, string> { {"haikuLine1", "I dreamed I was in"}, {"haikuLine2", "A long-running endless loop"}, {"haikuLine3", "And then the next day"} }; var containerName = GenerateSampleContainerName(); var blobName = GenerateSampleBlobName(); IBlobServiceClientEx client = new BlobServiceClientEx(AccountSettings); CreateContainer(containerName); client.PutBlockBlobIntelligently(BlobServiceConstants.MaxSingleBlockUploadSize, containerName, blobName, expectedData, metadata: expectedMetadata); var metadata = GetBlobMetadata(containerName, blobName); AssertBlobOfSingleUpload(expectedData, containerName, blobName); Assert.AreEqual(expectedMetadata, metadata); }
public async void PutBlockBlobAsListAsync_SpecifiedContentMD5_CreatesBlockBlobWithSpecifiedContentMD5() { var data = Encoding.UTF8.GetBytes("test content"); var specifiedContentMD5 = Convert.ToBase64String(MD5.Create().ComputeHash(data)); var containerName = _util.GenerateSampleContainerName(_runId); var blobName = _util.GenerateSampleBlobName(_runId); _util.CreateContainer(containerName); IBlobServiceClientEx client = new BlobServiceClientEx(AccountSettings); await client.PutBlockBlobAsListAsync(4, containerName, blobName, data, contentMD5: specifiedContentMD5); var properties = _util.GetBlobProperties(containerName, blobName); _util.AssertBlobExists(containerName, blobName, BlobType.BlockBlob); Assert.AreEqual(specifiedContentMD5, properties.ContentMD5); }
public async void PutBlockBlobIntelligentlyAsync_SingleUploadWithContentEncoding_CorrectContentEncoding() { const string expectedContentEncoding = "UTF8"; var expectedData = new byte[1024]; var containerName = _util.GenerateSampleContainerName(_runId); var blobName = _util.GenerateSampleBlobName(_runId); IBlobServiceClientEx client = new BlobServiceClientEx(AccountSettings); _util.CreateContainer(containerName); await client.PutBlockBlobIntelligentlyAsync(BlobServiceConstants.MaxSingleBlockUploadSize, containerName, blobName, expectedData, contentEncoding: expectedContentEncoding); var properties = _util.GetBlobProperties(containerName, blobName); _util.AssertBlobOfSingleUpload(expectedData, containerName, blobName, MaxIntelligentSingleBlobUploadSizeOverride); Assert.AreEqual(expectedContentEncoding, properties.ContentEncoding); }
public async void PutBlockBlobAsListAsync_SpecifiedContentLanguage_CreatesBlockBlobWithSpecifiedContentLanguage() { var data = Encoding.UTF8.GetBytes("test content"); const string specifiedContentLanguage = "typeB"; var containerName = GenerateSampleContainerName(); var blobName = GenerateSampleBlobName(); CreateContainer(containerName); IBlobServiceClientEx client = new BlobServiceClientEx(AccountSettings); await client.PutBlockBlobAsListAsync(4, containerName, blobName, data, contentLanguage: specifiedContentLanguage); var properties = GetBlobProperties(containerName, blobName); AssertBlobExists(containerName, blobName, BlobType.BlockBlob); Assert.AreEqual(specifiedContentLanguage, properties.ContentLanguage); }
public void PutBlockBlobAsList_SpecifiedMetadata_CreatesBlockBlobWithSpecifiedMetadata() { var data = Encoding.UTF8.GetBytes("test content"); var expectedMetadata = new Dictionary<string, string> { {"haikuLine1", "I dreamed I was in"}, {"haikuLine2", "A long-running endless loop"}, {"haikuLine3", "And then the next day"} }; var containerName = GenerateSampleContainerName(); var blobName = GenerateSampleBlobName(); CreateContainer(containerName); IBlobServiceClientEx client = new BlobServiceClientEx(AccountSettings); client.PutBlockBlobAsList(4, containerName, blobName, data, metadata: expectedMetadata); var gottenMetadata = GetBlobMetadata(containerName, blobName); AssertBlobExists(containerName, blobName, BlobType.BlockBlob); Assert.AreEqual(expectedMetadata, gottenMetadata); }
public async void PutBlockBlobIntelligentlyAsync_SingleUploadWithContentLanguage_CorrectContentLanguage() { const string expectedContentLanguage = "ancient/yiddish"; var expectedData = new byte[1024]; var containerName = GenerateSampleContainerName(); var blobName = GenerateSampleBlobName(); IBlobServiceClientEx client = new BlobServiceClientEx(AccountSettings); CreateContainer(containerName); await client.PutBlockBlobIntelligentlyAsync(BlobServiceConstants.MaxSingleBlockUploadSize, containerName, blobName, expectedData, contentLanguage: expectedContentLanguage); var properties = GetBlobProperties(containerName, blobName); AssertBlobOfSingleUpload(expectedData, containerName, blobName); Assert.AreEqual(expectedContentLanguage, properties.ContentLanguage); }
public void PutBlockBlobIntelligently_SingleUploadWithContentEncoding_CorrectContentEncoding() { const string expectedContentEncoding = "UTF8"; var expectedData = new byte[1024]; var containerName = GenerateSampleContainerName(); var blobName = GenerateSampleBlobName(); IBlobServiceClientEx client = new BlobServiceClientEx(AccountSettings); CreateContainer(containerName); client.PutBlockBlobIntelligently(BlobServiceConstants.MaxSingleBlockUploadSize, containerName, blobName, expectedData, contentEncoding: expectedContentEncoding); var properties = GetBlobProperties(containerName, blobName); AssertBlobOfSingleUpload(expectedData, containerName, blobName); Assert.AreEqual(expectedContentEncoding, properties.ContentEncoding); }
public void PutBlockBlobIntelligently_MultipleUploadsWithContentLanguage_CorrectContentLanguage() { const string expectedContentLanguage = "ancient/yiddish"; var expectedData = new byte[MaxIntelligentSingleBlobUploadSizeOverride + 5]; var containerName = GenerateSampleContainerName(); var blobName = GenerateSampleBlobName(); IBlobServiceClientEx client = new BlobServiceClientEx(AccountSettings, MaxIntelligentSingleBlobUploadSizeOverride); CreateContainer(containerName); client.PutBlockBlobIntelligently(BlobServiceConstants.MaxSingleBlockUploadSize, containerName, blobName, expectedData, contentLanguage: expectedContentLanguage); var properties = GetBlobProperties(containerName, blobName); AssertBlobOfMultipleUploads(expectedData, containerName, blobName); Assert.AreEqual(expectedContentLanguage, properties.ContentLanguage); }
public async void PutBlockBlobIntelligentlyAsync_MultipleUploadsWithMetadata_CorrectMetadata() { var expectedData = new byte[MaxIntelligentSingleBlobUploadSizeOverride + 5]; var expectedMetadata = new Dictionary<string, string> { {"haikuLine1", "I dreamed I was in"}, {"haikuLine2", "A long-running endless loop"}, {"haikuLine3", "And then the next day"} }; var containerName = _util.GenerateSampleContainerName(_runId); var blobName = _util.GenerateSampleBlobName(_runId); IBlobServiceClientEx client = new BlobServiceClientEx(AccountSettings, MaxIntelligentSingleBlobUploadSizeOverride); _util.CreateContainer(containerName); await client.PutBlockBlobIntelligentlyAsync(BlobServiceConstants.MaxSingleBlockUploadSize, containerName, blobName, expectedData, metadata: expectedMetadata); var metadata = _util.GetBlobMetadata(containerName, blobName); _util.AssertBlobOfMultipleUploads(expectedData, containerName, blobName, MaxIntelligentSingleBlobUploadSizeOverride); Assert.AreEqual(expectedMetadata, metadata); }
public void BlobServiceClientEx_DefaultParams_HasDefaultPutSingleBlobSizeEqualToConstant() { var client = new BlobServiceClientEx(_accountSettings); Assert.AreEqual(BlobServiceConstants.MaxSingleBlobUploadSize, client.MaxSingleBlobUploadSize); }
public void PutBlockBlobAsList_BlockSizeLargerThanBlob_CreatesBlobWithoutError() { var expectedData = new byte[10]; var containerName = GenerateSampleContainerName(); var blobName = GenerateSampleBlobName(); CreateContainer(containerName); IBlobServiceClientEx client = new BlobServiceClientEx(AccountSettings); client.PutBlockBlobAsList(expectedData.Length * 2, containerName, blobName, expectedData); AssertBlobExists(containerName, blobName, BlobType.BlockBlob); AssertBlockBlobContainsData(containerName, blobName, expectedData); }
public void PutBlockBlobAsList_MismatchedContentMD5_CreatesBlockBlobWithSpecifiedContentMD5() { var data = Encoding.UTF8.GetBytes("test content"); var badData = Encoding.UTF8.GetBytes("bad content"); var specifiedMismatchedContentMD5 = Convert.ToBase64String(MD5.Create().ComputeHash(badData)); var containerName = GenerateSampleContainerName(); var blobName = GenerateSampleBlobName(); CreateContainer(containerName); IBlobServiceClientEx client = new BlobServiceClientEx(AccountSettings); client.PutBlockBlobAsList(4, containerName, blobName, data, contentMD5: specifiedMismatchedContentMD5); var properties = GetBlobProperties(containerName, blobName); AssertBlobExists(containerName, blobName, BlobType.BlockBlob); Assert.AreEqual(specifiedMismatchedContentMD5, properties.ContentMD5); }
public async void PutBlockBlobIntelligentlyAsync_MultipleUploadsWithContentMD5_CorrectContentMD5() { var expectedData = new byte[MaxIntelligentSingleBlobUploadSizeOverride + 5]; var expectedContentMD5 = Convert.ToBase64String(MD5.Create().ComputeHash(expectedData)); var containerName = GenerateSampleContainerName(); var blobName = GenerateSampleBlobName(); IBlobServiceClientEx client = new BlobServiceClientEx(AccountSettings, MaxIntelligentSingleBlobUploadSizeOverride); CreateContainer(containerName); await client.PutBlockBlobIntelligentlyAsync(BlobServiceConstants.MaxSingleBlockUploadSize, containerName, blobName, expectedData, contentMD5: expectedContentMD5); var properties = GetBlobProperties(containerName, blobName); AssertBlobOfMultipleUploads(expectedData, containerName, blobName); Assert.AreEqual(expectedContentMD5, properties.ContentMD5); }
public void PutBlockBlobAsList_SpecifiedContentEncoding_CreatesBlockBlobWithSpecifiedContentEncoding() { var data = Encoding.UTF8.GetBytes("test content"); const string specifiedContentEncoding = "UTF8"; var containerName = _util.GenerateSampleContainerName(_runId); var blobName = _util.GenerateSampleBlobName(_runId); _util.CreateContainer(containerName); IBlobServiceClientEx client = new BlobServiceClientEx(AccountSettings); client.PutBlockBlobAsList(4, containerName, blobName, data, contentEncoding: specifiedContentEncoding); var properties = _util.GetBlobProperties(containerName, blobName); _util.AssertBlobExists(containerName, blobName, BlobType.BlockBlob); Assert.AreEqual(specifiedContentEncoding, properties.ContentEncoding); }
public void PutBlockBlobAsList_SpecifiedCacheControl_CreatesBlockBlobWithSpecifiedCacheControl() { var data = Encoding.UTF8.GetBytes("test content"); const string specifiedCacheControl = "foo"; var containerName = GenerateSampleContainerName(); var blobName = GenerateSampleBlobName(); CreateContainer(containerName); IBlobServiceClientEx client = new BlobServiceClientEx(AccountSettings); client.PutBlockBlobAsList(4, containerName, blobName, data, cacheControl: specifiedCacheControl); var properties = GetBlobProperties(containerName, blobName); AssertBlobExists(containerName, blobName, BlobType.BlockBlob); Assert.AreEqual(specifiedCacheControl, properties.CacheControl); }
public void PutBlockBlobIntelligently_SingleUploadWithContentMD5_CorrectContentMD5() { var expectedData = new byte[1024]; var expectedContentMD5 = Convert.ToBase64String(MD5.Create().ComputeHash(expectedData)); var containerName = GenerateSampleContainerName(); var blobName = GenerateSampleBlobName(); IBlobServiceClientEx client = new BlobServiceClientEx(AccountSettings); CreateContainer(containerName); client.PutBlockBlobIntelligently(BlobServiceConstants.MaxSingleBlockUploadSize, containerName, blobName, expectedData, contentMD5: expectedContentMD5); var properties = GetBlobProperties(containerName, blobName); AssertBlobOfSingleUpload(expectedData, containerName, blobName); Assert.AreEqual(expectedContentMD5, properties.ContentMD5); }
public async void PutBlockBlobIntelligentlyAsync_DataLargerThanMaxSingleUploadSize_CreatesBlockBlobWithMultipleUploads() { var expectedData = new byte[MaxIntelligentSingleBlobUploadSizeOverride + 5]; var containerName = GenerateSampleContainerName(); var blobName = GenerateSampleBlobName(); IBlobServiceClientEx client = new BlobServiceClientEx(AccountSettings, MaxIntelligentSingleBlobUploadSizeOverride); CreateContainer(containerName); var response = await client.PutBlockBlobIntelligentlyAsync(BlobServiceConstants.MaxSingleBlockUploadSize, containerName, blobName, expectedData); AssertBlobOfMultipleUploads(expectedData, containerName, blobName); AssertIsBlockListResponse(response); }
public async void PutBlockBlobIntelligentlyAsync_MultipleUploadsWithCacheControl_CorrectContentCacheControl() { var expectedData = new byte[MaxIntelligentSingleBlobUploadSizeOverride + 5]; const string expectedCacheControl = "ponyfoo"; var containerName = GenerateSampleContainerName(); var blobName = GenerateSampleBlobName(); IBlobServiceClientEx client = new BlobServiceClientEx(AccountSettings, MaxIntelligentSingleBlobUploadSizeOverride); CreateContainer(containerName); await client.PutBlockBlobIntelligentlyAsync(BlobServiceConstants.MaxSingleBlockUploadSize, containerName, blobName, expectedData, cacheControl: expectedCacheControl); var properties = GetBlobProperties(containerName, blobName); AssertBlobOfMultipleUploads(expectedData, containerName, blobName); Assert.AreEqual(expectedCacheControl, properties.CacheControl); }
private void AssertBlockBlobContainsData(string containerName, string blobName, byte[] expectedData) { var client = new BlobServiceClientEx(AccountSettings); var blob = client.GetBlob(containerName, blobName); var gottenData = blob.GetDataBytes(); Assert.AreEqual(expectedData.Length, gottenData.Length); // Comparing strings -> MUCH faster than comparing the raw arrays // However, bugs out sometimes if the data is too large try { var gottenDataString = Encoding.Unicode.GetString(gottenData); var expectedDataString = Encoding.Unicode.GetString(expectedData); Assert.AreEqual(gottenDataString, expectedDataString); } catch { // Compare raw arrays as last resort... // This only happens if the test running process doesn't have enough memory to convert Assert.AreEqual(expectedData, gottenData); } }
public void PutBlockBlobIntelligently_SingleUploadWithContentType_CorrectContentTypeSet() { const string expectedContentType = "foo/bar"; var expectedData = new byte[1024]; var containerName = _util.GenerateSampleContainerName(_runId); var blobName = _util.GenerateSampleBlobName(_runId); IBlobServiceClientEx client = new BlobServiceClientEx(AccountSettings); _util.CreateContainer(containerName); client.PutBlockBlobIntelligently(BlobServiceConstants.MaxSingleBlockUploadSize, containerName, blobName, expectedData, contentType: expectedContentType); var properties = _util.GetBlobProperties(containerName, blobName); _util.AssertBlobOfSingleUpload(expectedData, containerName, blobName, MaxIntelligentSingleBlobUploadSizeOverride); Assert.AreEqual(expectedContentType, properties.ContentType); }