@Test
public void testCopyFile() throws B2Exception {

    final B2CopyFileRequest request = B2CopyFileRequest
            .builder(fileId(1), fileName(2))
            .setDestinationBucketId(bucketId(3))
            .setContentType("b2/x-auto")
            .setMetadataDirective(B2CopyFileRequest.COPY_METADATA_DIRECTIVE)
            .setRange(B2ByteRange.between(10, 100))
            .build();
    webifier.copyFile(ACCOUNT_AUTH, request);
    webApiClient.check("postJsonReturnJson.\n" +
            "url:\n" +
            "    apiUrl1/b2api/v2/b2_copy_file\n" +
            "headers:\n" +
            "    Authorization: accountToken1\n" +
            "    User-Agent: SecretAgentMan/3.19.28\n" +
            "    X-Bz-Test-Mode: force_cap_exceeded\n" +
            "request:\n" +
            "    {\n" +
            "      \"contentType\": \"b2/x-auto\",\n" +
            "      \"destinationBucketId\": \"bucket3\",\n" +
            "      \"fileInfo\": null,\n" +
            "      \"fileName\": \"files/\u81ea\u7531/0002\",\n" +
            "      \"metadataDirective\": \"COPY\",\n" +
            "      \"range\": \"bytes=10-100\",\n" +
            "      \"sourceFileId\": \"4_zBlah_0000001\"\n" +
            "    }\n" +
            "responseClass:\n" +
            "    B2FileVersion\n"
    );
    checkRequestCategory(OTHER, w -> w.copyFile(ACCOUNT_AUTH, request));
}