@@ -98,8 +98,8 @@ public function testFromPutBucketLifecycle()
9898 $ request = new Models \PutBucketLifecycleRequest ('bucket-123 ' );
9999 $ rule = new Models \LifecycleRule (prefix: '' , transitions: array (
100100 new Models \LifecycleRuleTransition (days: 30 , storageClass: 'Archive ' ),
101- ), filter: new Models \LifecycleRuleFilter (not: new Models \LifecycleRuleNot (tag: new Models \Tag (key: 'key1 ' , value: 'value1 ' ), prefix: 'log ' )
102- ), id: 'rule ' , expiration: new Models \LifecycleRuleExpiration (expiredObjectDeleteMarker: true ), noncurrentVersionExpiration: new Models \NoncurrentVersionExpiration (noncurrentDays: 5 ), status: 'Enabled ' );
101+ ), filter: new Models \LifecycleRuleFilter (nots: array ( new Models \LifecycleRuleNot (tag: new Models \Tag (key: 'key1 ' , value: 'value1 ' ), prefix: 'log ' )
102+ )) , id: 'rule ' , expiration: new Models \LifecycleRuleExpiration (expiredObjectDeleteMarker: true ), noncurrentVersionExpiration: new Models \NoncurrentVersionExpiration (noncurrentDays: 5 ), status: 'Enabled ' );
103103 $ request ->lifecycleConfiguration = new Models \LifecycleConfiguration (
104104 array (
105105 $ rule
@@ -112,6 +112,34 @@ public function testFromPutBucketLifecycle()
112112BBB ;
113113 $ this ->assertEquals ($ xml , $ this ->cleanXml ($ input ->getBody ()->getContents ()));
114114
115+ $ request = new Models \PutBucketLifecycleRequest ('bucket-123 ' );
116+ $ rule = new Models \LifecycleRule (
117+ prefix: '' ,
118+ transitions: array (
119+ new Models \LifecycleRuleTransition (days: 30 , storageClass: 'Archive ' ),
120+ ),
121+ filter: new Models \LifecycleRuleFilter (
122+ nots: array (
123+ new Models \LifecycleRuleNot (tag: new Models \Tag (key: 'key1 ' , value: 'value1 ' ), prefix: 'log ' ),
124+ new Models \LifecycleRuleNot (tag: new Models \Tag (key: 'key2 ' , value: 'value2 ' ), prefix: 'pre ' )
125+ )),
126+ id: 'rule ' ,
127+ expiration: new Models \LifecycleRuleExpiration (expiredObjectDeleteMarker: true ),
128+ noncurrentVersionExpiration: new Models \NoncurrentVersionExpiration (noncurrentDays: 5 ),
129+ status: 'Enabled '
130+ );
131+ $ request ->lifecycleConfiguration = new Models \LifecycleConfiguration (
132+ array (
133+ $ rule
134+ )
135+ );
136+ $ input = BucketLifecycle::fromPutBucketLifecycle ($ request );
137+ $ this ->assertEquals ('bucket-123 ' , $ input ->getBucket ());
138+ $ xml = <<<BBB
139+ <?xml version="1.0" encoding="UTF-8"?><LifecycleConfiguration><Rule><Prefix></Prefix><Transition><Days>30</Days><StorageClass>Archive</StorageClass></Transition><Filter><Not><Tag><Key>key1</Key><Value>value1</Value></Tag><Prefix>log</Prefix></Not><Not><Tag><Key>key2</Key><Value>value2</Value></Tag><Prefix>pre</Prefix></Not></Filter><ID>rule</ID><Expiration><ExpiredObjectDeleteMarker>true</ExpiredObjectDeleteMarker></Expiration><NoncurrentVersionExpiration><NoncurrentDays>5</NoncurrentDays></NoncurrentVersionExpiration><Status>Enabled</Status></Rule></LifecycleConfiguration>
140+ BBB ;
141+ $ this ->assertEquals ($ xml , $ this ->cleanXml ($ input ->getBody ()->getContents ()));
142+
115143 // demo6
116144 $ request = new Models \PutBucketLifecycleRequest ('bucket-123 ' );
117145 $ rule = new Models \LifecycleRule (prefix: '' , transitions: array (
@@ -349,6 +377,118 @@ public function testToGetBucketLifecycle()
349377 $ this ->assertFalse ($ result ->lifecycleConfiguration ->rules [1 ]->noncurrentVersionTransitions [0 ]->returnToStdWhenVisit );
350378 $ this ->assertTrue ($ result ->lifecycleConfiguration ->rules [1 ]->noncurrentVersionTransitions [0 ]->isAccessTime );
351379 $ this ->assertEquals (1631698332 , $ result ->lifecycleConfiguration ->rules [1 ]->atimeBase );
380+
381+ $ body = '<?xml version="1.0" encoding="UTF-8"?>
382+ <LifecycleConfiguration>
383+ <Rule>
384+ <Prefix></Prefix>
385+ <Transition>
386+ <Days>30</Days>
387+ <StorageClass>Archive</StorageClass>
388+ </Transition>
389+ <Filter>
390+ <Not>
391+ <Tag>
392+ <Key>key1</Key>
393+ <Value>value1</Value>
394+ </Tag>
395+ <Prefix>log</Prefix>
396+ </Not>
397+ </Filter>
398+ <ID>rule</ID>
399+ <Expiration>
400+ <ExpiredObjectDeleteMarker>true</ExpiredObjectDeleteMarker>
401+ </Expiration>
402+ <NoncurrentVersionExpiration>
403+ <NoncurrentDays>5</NoncurrentDays>
404+ </NoncurrentVersionExpiration>
405+ <Status>Enabled</Status>
406+ </Rule>
407+ </LifecycleConfiguration> ' ;
408+ $ output = new OperationOutput (
409+ 'OK ' ,
410+ 200 ,
411+ ['x-oss-request-id ' => '123 ' ],
412+ Utils::streamFor ($ body )
413+ );
414+ $ result = BucketLifecycle::toGetBucketLifecycle ($ output );
415+ $ this ->assertEquals ('OK ' , $ result ->status );
416+ $ this ->assertEquals (200 , $ result ->statusCode );
417+ $ this ->assertEquals ('123 ' , $ result ->requestId );
418+ $ this ->assertEquals (1 , count ($ result ->headers ));
419+ $ this ->assertEquals ('123 ' , $ result ->headers ['x-oss-request-id ' ]);
420+ $ this ->assertEquals (1 , count ($ result ->lifecycleConfiguration ->rules ));
421+ $ this ->assertEquals ('rule ' , $ result ->lifecycleConfiguration ->rules [0 ]->id );
422+ $ this ->assertEquals ('' , $ result ->lifecycleConfiguration ->rules [0 ]->prefix );
423+ $ this ->assertEquals ('Enabled ' , $ result ->lifecycleConfiguration ->rules [0 ]->status );
424+ $ this ->assertEquals (1 , count ($ result ->lifecycleConfiguration ->rules [0 ]->transitions ));
425+ $ this ->assertEquals (30 , $ result ->lifecycleConfiguration ->rules [0 ]->transitions [0 ]->days );
426+ $ this ->assertEquals ('Archive ' , $ result ->lifecycleConfiguration ->rules [0 ]->transitions [0 ]->storageClass );
427+ $ this ->assertEquals (1 , count ($ result ->lifecycleConfiguration ->rules [0 ]->filter ->nots ));
428+ $ this ->assertEquals ('log ' , $ result ->lifecycleConfiguration ->rules [0 ]->filter ->nots [0 ]->prefix );
429+ $ this ->assertEquals ('key1 ' , $ result ->lifecycleConfiguration ->rules [0 ]->filter ->nots [0 ]->tag ->key );
430+ $ this ->assertEquals ('value1 ' , $ result ->lifecycleConfiguration ->rules [0 ]->filter ->nots [0 ]->tag ->value );
431+
432+ $ body = '<?xml version="1.0" encoding="UTF-8"?>
433+ <LifecycleConfiguration>
434+ <Rule>
435+ <Prefix></Prefix>
436+ <Transition>
437+ <Days>30</Days>
438+ <StorageClass>Archive</StorageClass>
439+ </Transition>
440+ <Filter>
441+ <Not>
442+ <Tag>
443+ <Key>key1</Key>
444+ <Value>value1</Value>
445+ </Tag>
446+ <Prefix>log</Prefix>
447+ </Not>
448+ <Not>
449+ <Tag>
450+ <Key>key2</Key>
451+ <Value>value2</Value>
452+ </Tag>
453+ <Prefix>pre</Prefix>
454+ </Not>
455+ </Filter>
456+ <ID>rule</ID>
457+ <Expiration>
458+ <ExpiredObjectDeleteMarker>true</ExpiredObjectDeleteMarker>
459+ </Expiration>
460+ <NoncurrentVersionExpiration>
461+ <NoncurrentDays>5</NoncurrentDays>
462+ </NoncurrentVersionExpiration>
463+ <Status>Enabled</Status>
464+ </Rule>
465+ </LifecycleConfiguration> ' ;
466+ $ output = new OperationOutput (
467+ 'OK ' ,
468+ 200 ,
469+ ['x-oss-request-id ' => '123 ' ],
470+ Utils::streamFor ($ body )
471+ );
472+ $ result = BucketLifecycle::toGetBucketLifecycle ($ output );
473+ $ this ->assertEquals ('OK ' , $ result ->status );
474+ $ this ->assertEquals (200 , $ result ->statusCode );
475+ $ this ->assertEquals ('123 ' , $ result ->requestId );
476+ $ this ->assertEquals (1 , count ($ result ->headers ));
477+ $ this ->assertEquals ('123 ' , $ result ->headers ['x-oss-request-id ' ]);
478+ $ this ->assertEquals (1 , count ($ result ->lifecycleConfiguration ->rules ));
479+ $ this ->assertEquals ('rule ' , $ result ->lifecycleConfiguration ->rules [0 ]->id );
480+ $ this ->assertEquals ('' , $ result ->lifecycleConfiguration ->rules [0 ]->prefix );
481+ $ this ->assertEquals ('Enabled ' , $ result ->lifecycleConfiguration ->rules [0 ]->status );
482+ $ this ->assertEquals (1 , count ($ result ->lifecycleConfiguration ->rules [0 ]->transitions ));
483+ $ this ->assertEquals (30 , $ result ->lifecycleConfiguration ->rules [0 ]->transitions [0 ]->days );
484+ $ this ->assertEquals ('Archive ' , $ result ->lifecycleConfiguration ->rules [0 ]->transitions [0 ]->storageClass );
485+ $ this ->assertEquals (2 , count ($ result ->lifecycleConfiguration ->rules [0 ]->filter ->nots ));
486+ $ this ->assertEquals ('log ' , $ result ->lifecycleConfiguration ->rules [0 ]->filter ->nots [0 ]->prefix );
487+ $ this ->assertEquals ('key1 ' , $ result ->lifecycleConfiguration ->rules [0 ]->filter ->nots [0 ]->tag ->key );
488+ $ this ->assertEquals ('value1 ' , $ result ->lifecycleConfiguration ->rules [0 ]->filter ->nots [0 ]->tag ->value );
489+ $ this ->assertEquals ('pre ' , $ result ->lifecycleConfiguration ->rules [0 ]->filter ->nots [1 ]->prefix );
490+ $ this ->assertEquals ('key2 ' , $ result ->lifecycleConfiguration ->rules [0 ]->filter ->nots [1 ]->tag ->key );
491+ $ this ->assertEquals ('value2 ' , $ result ->lifecycleConfiguration ->rules [0 ]->filter ->nots [1 ]->tag ->value );
352492 }
353493
354494 public function testFromDeleteBucketLifecycle ()
0 commit comments