assertTrue(false, "should not here");
} catch (\InvalidArgumentException $e) {
$this->assertStringContainsString("missing required field, bucket", (string)$e);
}
$request = new Models\OpenMetaQueryRequest('bucket-123');
$input = BucketMetaQuery::fromOpenMetaQuery($request);
$this->assertEquals('bucket-123', $input->getBucket());
$this->assertEquals('add', $input->getParameters()['comp']);
$this->assertEquals('', $input->getParameters()['metaQuery']);
$request = new Models\OpenMetaQueryRequest('bucket-123', 'basic');
$input = BucketMetaQuery::fromOpenMetaQuery($request);
$this->assertEquals('bucket-123', $input->getBucket());
$this->assertEquals('add', $input->getParameters()['comp']);
$this->assertEquals('', $input->getParameters()['metaQuery']);
$this->assertEquals('basic', $input->getParameters()['mode']);
$request = new Models\OpenMetaQueryRequest('bucket-123', 'semantic');
$input = BucketMetaQuery::fromOpenMetaQuery($request);
$this->assertEquals('bucket-123', $input->getBucket());
$this->assertEquals('add', $input->getParameters()['comp']);
$this->assertEquals('', $input->getParameters()['metaQuery']);
$this->assertEquals('semantic', $input->getParameters()['mode']);
}
public function testToOpenMetaQuery()
{
// empty output
$output = new OperationOutput();
$result = BucketMetaQuery::toOpenMetaQuery($output);
$this->assertEquals('', $result->status);
$this->assertEquals(0, $result->statusCode);
$this->assertEquals('', $result->requestId);
$this->assertEquals(0, count($result->headers));
$output = new OperationOutput(
'OK',
200,
['x-oss-request-id' => '123']
);
$result = BucketMetaQuery::toOpenMetaQuery($output);
$this->assertEquals('OK', $result->status);
$this->assertEquals(200, $result->statusCode);
$this->assertEquals('123', $result->requestId);
$this->assertEquals(1, count($result->headers));
$this->assertEquals('123', $result->headers['x-oss-request-id']);
}
public function testFromGetMetaQueryStatus()
{
// miss required field
try {
$request = new Models\GetMetaQueryStatusRequest();
$input = BucketMetaQuery::fromGetMetaQueryStatus($request);
$this->assertTrue(false, "should not here");
} catch (\InvalidArgumentException $e) {
$this->assertStringContainsString("missing required field, bucket", (string)$e);
}
$request = new Models\GetMetaQueryStatusRequest('bucket-123');
$input = BucketMetaQuery::fromGetMetaQueryStatus($request);
$this->assertEquals('bucket-123', $input->getBucket());
$this->assertEquals('', $input->getParameters()['metaQuery']);
}
public function testToGetMetaQueryStatus()
{
// empty output
$output = new OperationOutput();
$result = BucketMetaQuery::toGetMetaQueryStatus($output);
$this->assertEquals('', $result->status);
$this->assertEquals(0, $result->statusCode);
$this->assertEquals('', $result->requestId);
$this->assertEquals(0, count($result->headers));
$body = '
Running
FullScanning
2021-08-02T10:49:17.289372919+08:00
2021-08-02T10:49:17.289372919+08:00
';
$output = new OperationOutput(
'OK',
200,
['x-oss-request-id' => '123', 'content-type' => 'application/xml'],
body: Utils::streamFor($body)
);
$result = BucketMetaQuery::toGetMetaQueryStatus($output);
$this->assertEquals('OK', $result->status);
$this->assertEquals(200, $result->statusCode);
$this->assertEquals('123', $result->requestId);
$this->assertEquals(2, count($result->headers));
$this->assertEquals('123', $result->headers['x-oss-request-id']);
$this->assertEquals('application/xml', $result->headers['content-type']);
$this->assertEquals('Running', $result->metaQueryStatus->state);
$this->assertEquals('FullScanning', $result->metaQueryStatus->phase);
$this->assertEquals('2021-08-02T10:49:17.289372919+08:00', $result->metaQueryStatus->createTime);
$this->assertEquals('2021-08-02T10:49:17.289372919+08:00', $result->metaQueryStatus->updateTime);
}
public function testFromDoMetaQuery()
{
// miss required field
try {
$request = new Models\DoMetaQueryRequest();
$input = BucketMetaQuery::fromDoMetaQuery($request);
$this->assertTrue(false, "should not here");
} catch (\InvalidArgumentException $e) {
$this->assertStringContainsString("missing required field, bucket", (string)$e);
}
try {
$request = new Models\DoMetaQueryRequest('bucket-123');
$input = BucketMetaQuery::fromDoMetaQuery($request);
$this->assertTrue(false, "should not here");
} catch (\InvalidArgumentException $e) {
$this->assertStringContainsString("missing required field, metaQuery", (string)$e);
}
$request = new Models\DoMetaQueryRequest('bucket-123', new Models\MetaQuery(
maxResults: 5,
query: "{'Field': 'Size','Value': '1048576','Operation': 'gt'}",
sort: 'Size',
order: Models\MetaQueryOrderType::ASC,
aggregations: new Models\MetaQueryAggregations(
[
new Models\MetaQueryAggregation(
field: 'Size',
operation: 'sum'
),
new Models\MetaQueryAggregation(
field: 'Size',
operation: 'max'
),
]
),
nextToken: 'MTIzNDU2Nzg6aW1tdGVzdDpleGFtcGxlYnVja2V0OmRhdGFzZXQwMDE6b3NzOi8vZXhhbXBsZWJ1Y2tldC9zYW1wbGVvYmplY3QxLmpw****'
));
$input = BucketMetaQuery::fromDoMetaQuery($request);
$this->assertEquals('bucket-123', $input->getBucket());
$xml = <<5{'Field': 'Size','Value': '1048576','Operation': 'gt'}SizeascSizesumSizemaxMTIzNDU2Nzg6aW1tdGVzdDpleGFtcGxlYnVja2V0OmRhdGFzZXQwMDE6b3NzOi8vZXhhbXBsZWJ1Y2tldC9zYW1wbGVvYmplY3QxLmpw****
BBB;
$this->assertEquals($xml, $this->cleanXml($input->getBody()->getContents()));
$request = new Models\DoMetaQueryRequest('bucket-123', new Models\MetaQuery(
maxResults: 99,
query: "Overlook the snow-covered forest",
nextToken: 'MTIzNDU2Nzg6aW1tdGVzdDpleGFtcGxlYnVja2V0OmRhdGFzZXQwMDE6b3NzOi8vZXhhbXBsZWJ1Y2tldC9zYW1wbGVvYmplY3QxLmpw****',
mediaTypes: new Models\MetaQueryMediaTypes('image'),
simpleQuery: "{'Operation':'gt', 'Field': 'Size', 'Value': '30'}"
), mode: 'semantic');
$input = BucketMetaQuery::fromDoMetaQuery($request);
$this->assertEquals('bucket-123', $input->getBucket());
$xml = <<99Overlook the snow-covered forestMTIzNDU2Nzg6aW1tdGVzdDpleGFtcGxlYnVja2V0OmRhdGFzZXQwMDE6b3NzOi8vZXhhbXBsZWJ1Y2tldC9zYW1wbGVvYmplY3QxLmpw****image{'Operation':'gt', 'Field': 'Size', 'Value': '30'}
BBB;
$this->assertEquals($xml, $this->cleanXml($input->getBody()->getContents()));
}
public function testToDoMetaQuery()
{
// empty output
$output = new OperationOutput();
$result = BucketMetaQuery::toDoMetaQuery($output);
$this->assertEquals('', $result->status);
$this->assertEquals(0, $result->statusCode);
$this->assertEquals('', $result->requestId);
$this->assertEquals(0, count($result->headers));
$body = '
MTIzNDU2Nzg6aW1tdGVzdDpleGFtcGxlYnVja2V0OmRhdGFzZXQwMDE6b3NzOi8vZXhhbXBsZWJ1Y2tldC9zYW1wbGVvYmplY3QxLmpw****
exampleobject.txt
120
2021-06-29T15:04:05.000000000Z07:00
Normal
Standard
default
"fba9dede5f27731c9771645a3986****"
4858A48BD1466884
2
owner
John
type
document
x-oss-meta-location
hangzhou
Size
sum
4859250309
Size
max
2235483240
';
$output = new OperationOutput(
'OK',
200,
['x-oss-request-id' => '123', 'content-type' => 'application/xml'],
body: Utils::streamFor($body)
);
$result = BucketMetaQuery::toDoMetaQuery($output);
$this->assertEquals('OK', $result->status);
$this->assertEquals(200, $result->statusCode);
$this->assertEquals('123', $result->requestId);
$this->assertEquals(2, count($result->headers));
$this->assertEquals('application/xml', $result->headers['content-type']);
$this->assertEquals('MTIzNDU2Nzg6aW1tdGVzdDpleGFtcGxlYnVja2V0OmRhdGFzZXQwMDE6b3NzOi8vZXhhbXBsZWJ1Y2tldC9zYW1wbGVvYmplY3QxLmpw****', $result->nextToken);
$this->assertEquals(1, count($result->files->file));
$this->assertEquals('exampleobject.txt', $result->files->file[0]->filename);
$this->assertEquals(120, $result->files->file[0]->size);
$this->assertEquals('2021-06-29T15:04:05.000000000Z07:00', $result->files->file[0]->fileModifiedTime);
$this->assertEquals('Normal', $result->files->file[0]->ossObjectType);
$this->assertEquals('Standard', $result->files->file[0]->ossStorageClass);
$this->assertEquals('default', $result->files->file[0]->objectACL);
$this->assertEquals('"fba9dede5f27731c9771645a3986****"', $result->files->file[0]->etag);
$this->assertEquals(2, $result->files->file[0]->ossTaggingCount);
$this->assertEquals('owner', $result->files->file[0]->ossTagging->taggings[0]->key);
$this->assertEquals('John', $result->files->file[0]->ossTagging->taggings[0]->value);
$this->assertEquals('type', $result->files->file[0]->ossTagging->taggings[1]->key);
$this->assertEquals('document', $result->files->file[0]->ossTagging->taggings[1]->value);
$this->assertEquals(1, count($result->files->file[0]->ossUserMeta->userMetas));
$this->assertEquals('x-oss-meta-location', $result->files->file[0]->ossUserMeta->userMetas[0]->key);
$this->assertEquals('hangzhou', $result->files->file[0]->ossUserMeta->userMetas[0]->value);
$this->assertEquals('Size', $result->aggregations->aggregations[0]->field);
$this->assertEquals('sum', $result->aggregations->aggregations[0]->operation);
$this->assertEquals(4859250309, $result->aggregations->aggregations[0]->value);
$this->assertEquals('Size', $result->aggregations->aggregations[1]->field);
$this->assertEquals('max', $result->aggregations->aggregations[1]->operation);
$this->assertEquals(2235483240, $result->aggregations->aggregations[1]->value);
$body = '
Size
sum
30930054
Size
group
1536000
1
5472362
1
10354204
1
1890304
3
2632192
3
';
$output = new OperationOutput(
'OK',
200,
['x-oss-request-id' => '123', 'content-type' => 'application/xml'],
body: Utils::streamFor($body)
);
$result = BucketMetaQuery::toDoMetaQuery($output);
$this->assertEquals('OK', $result->status);
$this->assertEquals(200, $result->statusCode);
$this->assertEquals('123', $result->requestId);
$this->assertEquals(2, count($result->headers));
$this->assertEquals('application/xml', $result->headers['content-type']);
$this->assertEquals(2, count($result->aggregations->aggregations));
$this->assertEquals('Size', $result->aggregations->aggregations[0]->field);
$this->assertEquals('sum', $result->aggregations->aggregations[0]->operation);
$this->assertEquals(30930054, $result->aggregations->aggregations[0]->value);
$this->assertEquals('Size', $result->aggregations->aggregations[1]->field);
$this->assertEquals('group', $result->aggregations->aggregations[1]->operation);
$this->assertEquals(5, count($result->aggregations->aggregations[1]->groups->groups));
$this->assertEquals(1, $result->aggregations->aggregations[1]->groups->groups[0]->count);
$this->assertEquals('1536000', $result->aggregations->aggregations[1]->groups->groups[0]->value);
$this->assertEquals(1, $result->aggregations->aggregations[1]->groups->groups[1]->count);
$this->assertEquals('5472362', $result->aggregations->aggregations[1]->groups->groups[1]->value);
$this->assertEquals(1, $result->aggregations->aggregations[1]->groups->groups[2]->count);
$this->assertEquals('10354204', $result->aggregations->aggregations[1]->groups->groups[2]->value);
$this->assertEquals(3, $result->aggregations->aggregations[1]->groups->groups[3]->count);
$this->assertEquals('1890304', $result->aggregations->aggregations[1]->groups->groups[3]->value);
$this->assertEquals(3, $result->aggregations->aggregations[1]->groups->groups[4]->count);
$this->assertEquals('2632192', $result->aggregations->aggregations[1]->groups->groups[4]->value);
$body = '
oss://bucket/sample-object.jpg
sample-object.jpg
1000
default
2021-06-29T14:50:14.011643661+08:00
AES256
SM4
"1D9C280A7C4F67F7EF873E28449****"
559890638950338001
2021-06-29T14:50:15.011643661+08:00
image/jpeg
image
30.134390,120.074997
test
2024-12-01T12:00:00.000Z
https://aliyundoc.com
PUT
SM4
9468da86-3509-4f8d-a61e-6eab1eac****
no-cache
attachment; filename=test.jpg
UTF-8
zh-CN
500
270
1080
1920
h264
en
5407765
25/1
0
22.88
572
8
yuv420p
bt709
720
1280
h264
en
5407765
25/1
0
22.88
572
8
yuv420p
bt709
720
1280
aac
1048576
48000
0.0235
3.690667
2
en
mov_text
en
0
71.378
mov_text
en
72
71.378
5407765
Jane
Jenny
Jane
Jane
FirstAlbum
71.378
中国浙江省杭州市余杭区文一西路969号
杭州市
中国
余杭区
zh-Hans
浙江省
文一西路
中国浙江省杭州市余杭区文一西路970号
杭州市
中国
余杭区
zh-Hans
浙江省
文一西路
Normal
Standard
2
key
val
key2
val2
key
val
';
$output = new OperationOutput(
'OK',
200,
['x-oss-request-id' => '123', 'content-type' => 'application/xml'],
body: Utils::streamFor($body)
);
$result = BucketMetaQuery::toDoMetaQuery($output);
$this->assertEquals('OK', $result->status);
$this->assertEquals(200, $result->statusCode);
$this->assertEquals('123', $result->requestId);
$this->assertEquals(2, count($result->headers));
$this->assertEquals('application/xml', $result->headers['content-type']);
$this->assertEquals(1, count($result->files->file));
$this->assertEquals('oss://bucket/sample-object.jpg', $result->files->file[0]->uri);
$this->assertEquals('sample-object.jpg', $result->files->file[0]->filename);
$this->assertEquals(1000, $result->files->file[0]->size);
$this->assertEquals('2021-06-29T14:50:14.011643661+08:00', $result->files->file[0]->fileModifiedTime);
$this->assertEquals('AES256', $result->files->file[0]->serverSideEncryption);
$this->assertEquals('SM4', $result->files->file[0]->serverSideEncryptionCustomerAlgorithm);
$this->assertEquals('"1D9C280A7C4F67F7EF873E28449****"', $result->files->file[0]->etag);
$this->assertEquals('559890638950338001', $result->files->file[0]->ossCrc64);
$this->assertEquals('2021-06-29T14:50:15.011643661+08:00', $result->files->file[0]->produceTime);
$this->assertEquals('image/jpeg', $result->files->file[0]->contentType);
$this->assertEquals('image', $result->files->file[0]->mediaType);
$this->assertEquals('30.134390,120.074997', $result->files->file[0]->latLong);
$this->assertEquals('test', $result->files->file[0]->title);
$this->assertEquals('2024-12-01T12:00:00.000Z', $result->files->file[0]->ossExpiration);
$this->assertEquals('https://aliyundoc.com', $result->files->file[0]->accessControlAllowOrigin);
$this->assertEquals('PUT', $result->files->file[0]->accessControlRequestMethod);
$this->assertEquals('SM4', $result->files->file[0]->serverSideDataEncryption);
$this->assertEquals('9468da86-3509-4f8d-a61e-6eab1eac****', $result->files->file[0]->serverSideEncryptionKeyId);
$this->assertEquals('no-cache', $result->files->file[0]->cacheControl);
$this->assertEquals('attachment; filename=test.jpg', $result->files->file[0]->contentDisposition);
$this->assertEquals('UTF-8', $result->files->file[0]->contentEncoding);
$this->assertEquals('zh-CN', $result->files->file[0]->contentLanguage);
$this->assertEquals(500, $result->files->file[0]->imageHeight);
$this->assertEquals(270, $result->files->file[0]->imageWidth);
$this->assertEquals(1920, $result->files->file[0]->videoHeight);
$this->assertEquals(1080, $result->files->file[0]->videoWidth);
$this->assertEquals(2, count($result->files->file[0]->videoStreams->videoStream));
$this->assertEquals('h264', $result->files->file[0]->videoStreams->videoStream[0]->codecName);
$this->assertEquals('en', $result->files->file[0]->videoStreams->videoStream[0]->language);
$this->assertEquals(5407765, $result->files->file[0]->videoStreams->videoStream[0]->bitrate);
$this->assertEquals(8, $result->files->file[0]->videoStreams->videoStream[0]->bitDepth);
$this->assertEquals('25/1', $result->files->file[0]->videoStreams->videoStream[0]->frameRate);
$this->assertEquals(0, $result->files->file[0]->videoStreams->videoStream[0]->startTime);
$this->assertEquals(22.88, $result->files->file[0]->videoStreams->videoStream[0]->duration);
$this->assertEquals(572, $result->files->file[0]->videoStreams->videoStream[0]->frameCount);
$this->assertEquals('yuv420p', $result->files->file[0]->videoStreams->videoStream[0]->pixelFormat);
$this->assertEquals('bt709', $result->files->file[0]->videoStreams->videoStream[0]->colorSpace);
$this->assertEquals(720, $result->files->file[0]->videoStreams->videoStream[0]->height);
$this->assertEquals(1280, $result->files->file[0]->videoStreams->videoStream[0]->width);
$this->assertEquals('h264', $result->files->file[0]->videoStreams->videoStream[1]->codecName);
$this->assertEquals('en', $result->files->file[0]->videoStreams->videoStream[1]->language);
$this->assertEquals(5407765, $result->files->file[0]->videoStreams->videoStream[1]->bitrate);
$this->assertEquals('25/1', $result->files->file[0]->videoStreams->videoStream[1]->frameRate);
$this->assertEquals(0, $result->files->file[0]->videoStreams->videoStream[1]->startTime);
$this->assertEquals(22.88, $result->files->file[0]->videoStreams->videoStream[1]->duration);
$this->assertEquals(572, $result->files->file[0]->videoStreams->videoStream[1]->frameCount);
$this->assertEquals(8, $result->files->file[0]->videoStreams->videoStream[1]->bitDepth);
$this->assertEquals('yuv420p', $result->files->file[0]->videoStreams->videoStream[1]->pixelFormat);
$this->assertEquals('bt709', $result->files->file[0]->videoStreams->videoStream[1]->colorSpace);
$this->assertEquals(720, $result->files->file[0]->videoStreams->videoStream[1]->height);
$this->assertEquals(1280, $result->files->file[0]->videoStreams->videoStream[1]->width);
$this->assertEquals(1, count($result->files->file[0]->audioStreams->audioStream));
$this->assertEquals('aac', $result->files->file[0]->audioStreams->audioStream[0]->codecName);
$this->assertEquals(1048576, $result->files->file[0]->audioStreams->audioStream[0]->bitrate);
$this->assertEquals(48000, $result->files->file[0]->audioStreams->audioStream[0]->sampleRate);
$this->assertEquals(0.0235, $result->files->file[0]->audioStreams->audioStream[0]->startTime);
$this->assertEquals(3.690667, $result->files->file[0]->audioStreams->audioStream[0]->duration);
$this->assertEquals(2, $result->files->file[0]->audioStreams->audioStream[0]->channels);
$this->assertEquals('en', $result->files->file[0]->audioStreams->audioStream[0]->language);
$this->assertEquals(2, count($result->files->file[0]->subtitles->subtitle));
$this->assertEquals('mov_text', $result->files->file[0]->subtitles->subtitle[0]->codecName);
$this->assertEquals('en', $result->files->file[0]->subtitles->subtitle[0]->language);
$this->assertEquals(0, $result->files->file[0]->subtitles->subtitle[0]->startTime);
$this->assertEquals(71.378, $result->files->file[0]->subtitles->subtitle[0]->duration);
$this->assertEquals('mov_text', $result->files->file[0]->subtitles->subtitle[1]->codecName);
$this->assertEquals('en', $result->files->file[0]->subtitles->subtitle[1]->language);
$this->assertEquals(72, $result->files->file[0]->subtitles->subtitle[1]->startTime);
$this->assertEquals(71.378, $result->files->file[0]->subtitles->subtitle[1]->duration);
$this->assertEquals(5407765, $result->files->file[0]->bitrate);
$this->assertEquals('Jane', $result->files->file[0]->artist);
$this->assertEquals('Jenny', $result->files->file[0]->albumArtist);
$this->assertEquals('Jane', $result->files->file[0]->composer);
$this->assertEquals('Jane', $result->files->file[0]->performer);
$this->assertEquals('FirstAlbum', $result->files->file[0]->album);
$this->assertEquals(71.378, $result->files->file[0]->duration);
$this->assertEquals(2, count($result->files->file[0]->addresses->address));
$this->assertEquals('中国浙江省杭州市余杭区文一西路969号', $result->files->file[0]->addresses->address[0]->addressLine);
$this->assertEquals('杭州市', $result->files->file[0]->addresses->address[0]->city);
$this->assertEquals('中国', $result->files->file[0]->addresses->address[0]->country);
$this->assertEquals('余杭区', $result->files->file[0]->addresses->address[0]->district);
$this->assertEquals('zh-Hans', $result->files->file[0]->addresses->address[0]->language);
$this->assertEquals('浙江省', $result->files->file[0]->addresses->address[0]->province);
$this->assertEquals('文一西路', $result->files->file[0]->addresses->address[0]->township);
$this->assertEquals('中国浙江省杭州市余杭区文一西路970号', $result->files->file[0]->addresses->address[1]->addressLine);
$this->assertEquals('杭州市', $result->files->file[0]->addresses->address[1]->city);
$this->assertEquals('中国', $result->files->file[0]->addresses->address[1]->country);
$this->assertEquals('余杭区', $result->files->file[0]->addresses->address[1]->district);
$this->assertEquals('zh-Hans', $result->files->file[0]->addresses->address[1]->language);
$this->assertEquals('浙江省', $result->files->file[0]->addresses->address[1]->province);
$this->assertEquals('文一西路', $result->files->file[0]->addresses->address[1]->township);
$this->assertEquals('Normal', $result->files->file[0]->ossObjectType);
$this->assertEquals('Standard', $result->files->file[0]->ossStorageClass);
$this->assertEquals(2, $result->files->file[0]->ossTaggingCount);
$this->assertEquals('key', $result->files->file[0]->ossTagging->taggings[0]->key);
$this->assertEquals('val', $result->files->file[0]->ossTagging->taggings[0]->value);
$this->assertEquals('key2', $result->files->file[0]->ossTagging->taggings[1]->key);
$this->assertEquals('val2', $result->files->file[0]->ossTagging->taggings[1]->value);
$this->assertEquals(1, count($result->files->file[0]->ossUserMeta->userMetas));
$this->assertEquals('key', $result->files->file[0]->ossUserMeta->userMetas[0]->key);
$this->assertEquals('val', $result->files->file[0]->ossUserMeta->userMetas[0]->value);
}
public function testFromCloseMetaQuery()
{
// miss required field
try {
$request = new Models\CloseMetaQueryRequest();
$input = BucketMetaQuery::fromCloseMetaQuery($request);
$this->assertTrue(false, "should not here");
} catch (\InvalidArgumentException $e) {
$this->assertStringContainsString("missing required field, bucket", (string)$e);
}
$request = new Models\CloseMetaQueryRequest('bucket-123');
$input = BucketMetaQuery::fromCloseMetaQuery($request);
$this->assertEquals('bucket-123', $input->getBucket());
$this->assertEquals('1B2M2Y8AsgTpgAmY7PhCfg==', $input->getHeaders()['content-md5']);
}
public function testToGetBucketMetaQuery()
{
// empty output
$output = new OperationOutput();
$result = BucketMetaQuery::toCloseMetaQuery($output);
$this->assertEquals('', $result->status);
$this->assertEquals(0, $result->statusCode);
$this->assertEquals('', $result->requestId);
$this->assertEquals(0, count($result->headers));
$output = new OperationOutput(
'OK',
200,
['x-oss-request-id' => '123'],
);
$result = BucketMetaQuery::toCloseMetaQuery($output);
$this->assertEquals('OK', $result->status);
$this->assertEquals(200, $result->statusCode);
$this->assertEquals('123', $result->requestId);
$this->assertEquals(1, count($result->headers));
$this->assertEquals('123', $result->headers['x-oss-request-id']);
}
private function cleanXml($xml): array|string
{
return str_replace("\n", "", str_replace("\r", "", $xml));
}
}