public void Execute_BlockListWithAllHeaders_AllHeadersSetProperly() { var expectedContainer = "test-container"; var expectedBlob = "test-blob"; var expectedUri = String.Format("{0}/{1}/{2}?comp=blocklist", _settings.BlobEndpoint, expectedContainer, expectedBlob); var expectedRawRequest = new TestableWebRequest(new Uri(expectedUri)) .EnqueueResponse(new HttpResponseSettings((HttpStatusCode)201, "Created", "", false, new Dictionary<string, string>(){ {"ETag", "\"123\""}, {"Date", DateTime.UtcNow.ToString() }, {"Last-Modified", DateTime.UtcNow.ToString() }, {"Content-MD5", "123-MD5" } })); TestableWebRequestCreateFactory.GetFactory().AddRequest(expectedRawRequest); var expectedData = new BlockListBlockIdList(); var expectedContentMD5 = expectedData.AsXmlByteArrayWithMd5Hash().MD5Hash; var request = new PutBlockListRequest(_settings, expectedContainer, expectedBlob, expectedData, "cache/control", "content/type", "content/encoding", "content/language", "blobContent/md5"); request.Execute(); Assert.AreEqual(expectedContentMD5, expectedRawRequest.Headers["Content-MD5"]); Assert.AreEqual("cache/control", expectedRawRequest.Headers["x-ms-blob-cache-control"]); Assert.AreEqual("content/type", expectedRawRequest.Headers["x-ms-blob-content-type"]); Assert.AreEqual("content/encoding", expectedRawRequest.Headers["x-ms-blob-content-encoding"]); Assert.AreEqual("content/language", expectedRawRequest.Headers["x-ms-blob-content-language"]); Assert.AreEqual("blobContent/md5", expectedRawRequest.Headers["x-ms-blob-content-md5"]); }
/// <summary> /// BlockBlob Type /// </summary> public PutBlockListRequest(StorageAccountSettings settings, string containerName, string blobName, BlockListBlockIdList data, string cacheControl = null, string contentType = null, string contentEncoding = null, string contentLanguage = null, string blobContentMD5 = null, Dictionary <string, string> metadata = null, string leaseId = null) : base(settings) { if (!string.IsNullOrEmpty(leaseId)) { Guard.ArgumentIsAGuid("leaseId", leaseId); } if (metadata != null) { IdentifierValidation.EnsureNamesAreValidIdentifiers(metadata.Keys); } var dataAndHash = data.AsXmlByteArrayWithMd5Hash(); _data = dataAndHash.XmlBytes; _requestContentMD5 = dataAndHash.MD5Hash; _containerName = containerName; _blobName = blobName; _contentType = contentType; _contentEncoding = contentEncoding; _contentLanguage = contentLanguage; _blobContentMD5 = blobContentMD5; _cacheControl = cacheControl; _metadata = metadata; _leaseId = leaseId; }
public void Execute_BlockListWithAllHeaders_AllHeadersSetProperly() { var expectedContainer = "test-container"; var expectedBlob = "test-blob"; var expectedUri = String.Format("{0}/{1}/{2}?comp=blocklist", _settings.BlobEndpoint, expectedContainer, expectedBlob); var expectedRawRequest = new TestableWebRequest(new Uri(expectedUri)) .EnqueueResponse(new HttpResponseSettings((HttpStatusCode)201, "Created", "", false, new Dictionary <string, string>() { { "ETag", "\"123\"" }, { "Date", DateTime.UtcNow.ToString() }, { "Last-Modified", DateTime.UtcNow.ToString() }, { "Content-MD5", "123-MD5" } })); TestableWebRequestCreateFactory.GetFactory().AddRequest(expectedRawRequest); var expectedData = new BlockListBlockIdList(); var expectedContentMD5 = expectedData.AsXmlByteArrayWithMd5Hash().MD5Hash; var request = new PutBlockListRequest(_settings, expectedContainer, expectedBlob, expectedData, "cache/control", "content/type", "content/encoding", "content/language", "blobContent/md5"); request.Execute(); Assert.AreEqual(expectedContentMD5, expectedRawRequest.Headers["Content-MD5"]); Assert.AreEqual("cache/control", expectedRawRequest.Headers["x-ms-blob-cache-control"]); Assert.AreEqual("content/type", expectedRawRequest.Headers["x-ms-blob-content-type"]); Assert.AreEqual("content/encoding", expectedRawRequest.Headers["x-ms-blob-content-encoding"]); Assert.AreEqual("content/language", expectedRawRequest.Headers["x-ms-blob-content-language"]); Assert.AreEqual("blobContent/md5", expectedRawRequest.Headers["x-ms-blob-content-md5"]); }