public void PutBlockList_WithBlobContentLanguage_UploadsWithSpecifiedBlobContentLanguage() { const string dataPerBlock = "foo"; const string expectedContentLanguage = "gibberish"; var containerName = _util.GenerateSampleContainerName(_runId); var blobName = _util.GenerateSampleBlobName(_runId); _util.CreateContainer(containerName); var blockListBlockIds = _util.CreateBlockIdList(3, PutBlockListListType.Latest); var blockIds = _util.GetIdsFromBlockIdList(blockListBlockIds); _util.CreateBlockList(containerName, blobName, blockIds, dataPerBlock); IBlobServiceClient client = new BlobServiceClient(AccountSettings); client.PutBlockList(containerName, blobName, blockListBlockIds, contentLanguage: expectedContentLanguage); var blob = _util.AssertBlobExists(containerName, blobName, BlobType.BlockBlob); Assert.AreEqual(expectedContentLanguage, blob.Properties.ContentLanguage); }
public void PutBlockList_WithMetadata_UploadsMetadata() { const string dataPerBlock = "foo"; var expectedMetadata = new Dictionary<string, string>(){ { "firstValue", "1" }, { "secondValue", "2"} }; var containerName = _util.GenerateSampleContainerName(_runId); var blobName = _util.GenerateSampleBlobName(_runId); _util.CreateContainer(containerName); var blockListBlockIds = _util.CreateBlockIdList(3, PutBlockListListType.Latest); var blockIds = _util.GetIdsFromBlockIdList(blockListBlockIds); _util.CreateBlockList(containerName, blobName, blockIds, dataPerBlock); IBlobServiceClient client = new BlobServiceClient(AccountSettings); client.PutBlockList(containerName, blobName, blockListBlockIds, metadata: expectedMetadata); var blob = _util.AssertBlobExists(containerName, blobName, BlobType.BlockBlob); Assert.IsTrue(blob.Metadata.Any(m => m.Key == "firstValue" && m.Value == "1"), "First value is missing or incorrect"); Assert.IsTrue(blob.Metadata.Any(m => m.Key == "secondValue" && m.Value == "2"), "Second value is missing or incorrect"); }
public void PutBlockList_WithBlobContentMD5_UploadsWithSpecifiedBlobContentMD5() { const string dataPerBlock = "foo"; const string expectedData = "foofoofoo"; var expectedContentMD5 = Convert.ToBase64String((MD5.Create()).ComputeHash(Encoding.Unicode.GetBytes(expectedData))); var containerName = _util.GenerateSampleContainerName(_runId); var blobName = _util.GenerateSampleBlobName(_runId); _util.CreateContainer(containerName); var blockListBlockIds = _util.CreateBlockIdList(3, PutBlockListListType.Latest); var blockIds = _util.GetIdsFromBlockIdList(blockListBlockIds); _util.CreateBlockList(containerName, blobName, blockIds, dataPerBlock); IBlobServiceClient client = new BlobServiceClient(AccountSettings); client.PutBlockList(containerName, blobName, blockListBlockIds, blobContentMD5: expectedContentMD5); var blob = _util.AssertBlobExists(containerName, blobName, BlobType.BlockBlob); Assert.AreEqual(expectedContentMD5, blob.Properties.ContentMD5); }
public void PutBlockList_LeasedBlobWithInvalidLeaseGiven_ThrowsArgumentException() { var containerName = _util.GenerateSampleContainerName(_runId); var blobName = _util.GenerateSampleBlobName(_runId); var blockListBlockIds = _util.CreateBlockIdList(3, PutBlockListListType.Latest); IBlobServiceClient client = new BlobServiceClient(AccountSettings); client.PutBlockList(containerName, blobName, blockListBlockIds, leaseId: InvalidLeaseId); // throws exception }
public void PutBlockList_InvalidBlockId_ThrowsInvalidBlockListAzureException() { const string dataPerBlock = "foo"; var containerName = _util.GenerateSampleContainerName(_runId); var blobName = _util.GenerateSampleBlobName(_runId); _util.CreateContainer(containerName); var blockListBlockIds = _util.CreateBlockIdList(3, PutBlockListListType.Latest); var blockIds = _util.GetIdsFromBlockIdList(blockListBlockIds); blockListBlockIds.Add(new BlockListBlockId { Id = Base64Converter.ConvertToBase64("id4"), ListType = PutBlockListListType.Latest }); _util.CreateBlockList(containerName, blobName, blockIds, dataPerBlock); IBlobServiceClient client = new BlobServiceClient(AccountSettings); client.PutBlockList(containerName, blobName, blockListBlockIds); // Throws exception }
public void PutBlockList_LeasedBlobWithIncorrectLeaseGiven_ThrowsLeaseIdMismatchWithBlobOperationAzureException() { const string dataPerBlock = "foo"; var containerName = _util.GenerateSampleContainerName(_runId); var blobName = _util.GenerateSampleBlobName(_runId); _util.CreateContainer(containerName); _util.CreateBlockBlob(containerName, blobName); var blockListBlockIds = _util.CreateBlockIdList(3, PutBlockListListType.Latest); var blockIds = _util.GetIdsFromBlockIdList(blockListBlockIds); _util.CreateBlockList(containerName, blobName, blockIds, dataPerBlock); _util.LeaseBlob(containerName, blobName); IBlobServiceClient client = new BlobServiceClient(AccountSettings); client.PutBlockList(containerName, blobName, blockListBlockIds, leaseId: GetGuidString()); // throws exception }
public void PutBlockList_LeasedBlobCorrectLeaseSpecified_CreatesBlockBlobFromLatestBlocks() { const string dataPerBlock = "foo"; const string expectedData = "foofoofoo"; var containerName = _util.GenerateSampleContainerName(_runId); var blobName = _util.GenerateSampleBlobName(_runId); _util.CreateContainer(containerName); _util.CreateBlockBlob(containerName, blobName); var blockListBlockIds = _util.CreateBlockIdList(3, PutBlockListListType.Latest); var blockIds = _util.GetIdsFromBlockIdList(blockListBlockIds); _util.CreateBlockList(containerName, blobName, blockIds, dataPerBlock); var lease = _util.LeaseBlob(containerName, blobName); IBlobServiceClient client = new BlobServiceClient(AccountSettings); client.PutBlockList(containerName, blobName, blockListBlockIds, leaseId: lease); _util.AssertBlobExists(containerName, blobName, BlobType.BlockBlob); _util.AssertBlobContainsData(containerName, blobName, BlobType.BlockBlob, Encoding.Unicode.GetBytes(expectedData)); }
public void PutBlockList_WithBlobContentEncoding_UploadsWithSpecifiedBlobContentEncoding() { const string dataPerBlock = "foo"; const string expectedContentEncoding = "UTF32"; var containerName = GenerateSampleContainerName(); var blobName = GenerateSampleBlobName(); CreateContainer(containerName); var blockListBlockIds = CreateBlockIdList(3, BlockListListType.Latest); var blockIds = GetIdsFromBlockIdList(blockListBlockIds); CreateBlockList(containerName, blobName, blockIds, dataPerBlock, Encoding.UTF32); IBlobServiceClient client = new BlobServiceClient(AccountSettings); client.PutBlockList(containerName, blobName, blockListBlockIds, contentEncoding: expectedContentEncoding); var blob = AssertBlobExists(containerName, blobName, BlobType.BlockBlob); Assert.AreEqual(expectedContentEncoding, blob.Properties.ContentEncoding); }
public void PutBlockList_LeasedBlobWithNoLeaseGiven_ThrowsLeaseIdMissingAzureException() { const string dataPerBlock = "foo"; var containerName = GenerateSampleContainerName(); var blobName = GenerateSampleBlobName(); CreateContainer(containerName); CreateBlockBlob(containerName, blobName); var blockListBlockIds = CreateBlockIdList(3, BlockListListType.Latest); var blockIds = GetIdsFromBlockIdList(blockListBlockIds); CreateBlockList(containerName, blobName, blockIds, dataPerBlock); LeaseBlob(containerName, blobName); IBlobServiceClient client = new BlobServiceClient(AccountSettings); client.PutBlockList(containerName, blobName, blockListBlockIds); // throws exception }
public void PutBlockList_RequiredArgsOnly_CreatesBlockBlobFromLatestBlocks() { const string dataPerBlock = "foo"; const string expectedData = "foofoofoo"; var containerName = GenerateSampleContainerName(); var blobName = GenerateSampleBlobName(); CreateContainer(containerName); var blockListBlockIds = CreateBlockIdList(3, BlockListListType.Latest); var blockIds = GetIdsFromBlockIdList(blockListBlockIds); CreateBlockList(containerName, blobName, blockIds, dataPerBlock); IBlobServiceClient client = new BlobServiceClient(AccountSettings); client.PutBlockList(containerName, blobName, blockListBlockIds); AssertBlobExists(containerName, blobName, BlobType.BlockBlob); AssertBlobContainsData(containerName, blobName, BlobType.BlockBlob, Encoding.Unicode.GetBytes(expectedData)); }