in core/src/services/azblob/batch.rs [95:165]
fn test_break_down_batch() {
// the last item in batch is a mocked response.
// if stronger validation is implemented for Azblob,
// feel free to replace or remove it.
let body = r#"--batchresponse_66925647-d0cb-4109-b6d3-28efe3e1e5ed
Content-Type: application/http
Content-ID: 0
HTTP/1.1 202 Accepted
x-ms-delete-type-permanent: true
x-ms-request-id: 778fdc83-801e-0000-62ff-0334671e284f
x-ms-version: 2018-11-09
--batchresponse_66925647-d0cb-4109-b6d3-28efe3e1e5ed
Content-Type: application/http
Content-ID: 1
HTTP/1.1 202 Accepted
x-ms-delete-type-permanent: true
x-ms-request-id: 778fdc83-801e-0000-62ff-0334671e2851
x-ms-version: 2018-11-09
--batchresponse_66925647-d0cb-4109-b6d3-28efe3e1e5ed
Content-Type: application/http
Content-ID: 2
HTTP/1.1 404 The specified blob does not exist.
x-ms-error-code: BlobNotFound
x-ms-request-id: 778fdc83-801e-0000-62ff-0334671e2852
x-ms-version: 2018-11-09
Content-Length: 216
Content-Type: application/xml
<?xml version="1.0" encoding="utf-8"?>
<Error><Code>BlobNotFound</Code><Message>The specified blob does not exist.
RequestId:778fdc83-801e-0000-62ff-0334671e2852
Time:2018-06-14T16:46:54.6040685Z</Message></Error>
--batchresponse_66925647-d0cb-4109-b6d3-28efe3e1e5ed
Content-Type: application/http
Content-ID: 3
HTTP/1.1 403 Request to blob forbidden
x-ms-error-code: BlobForbidden
x-ms-request-id: 778fdc83-801e-0000-62ff-0334671e2852
x-ms-version: 2018-11-09
Content-Length: 216
Content-Type: application/xml
<?xml version="1.0" encoding="utf-8"?>
<Error><Code>BlobNotFound</Code><Message>The specified blob does not exist.
RequestId:778fdc83-801e-0000-62ff-0334671e2852
Time:2018-06-14T16:46:54.6040685Z</Message></Error>
--batchresponse_66925647-d0cb-4109-b6d3-28efe3e1e5ed--"#
.replace('\n', "\r\n");
let expected: Vec<_> = (0..=3).map(|n| format!("/to-del/{n}")).collect();
let boundary = "batchresponse_66925647-d0cb-4109-b6d3-28efe3e1e5ed";
let p =
parse_batch_delete_response(boundary, body, expected.clone()).expect("must_success");
assert_eq!(p.len(), expected.len());
for (idx, ((del, rep), to_del)) in p.into_iter().zip(expected.into_iter()).enumerate() {
assert_eq!(del, to_del);
if idx != 3 {
assert!(rep.is_ok());
} else {
assert!(rep.is_err());
}
}
}