fn test_break_down_batch()

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());
            }
        }
    }