| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 | <?phpnamespace OSS\Tests;use OSS\Core\OssException;use OSS\Model\LifecycleAction;use OSS\Model\LifecycleConfig;use OSS\Model\LifecycleRule;class LifecycleConfigTest extends \PHPUnit\Framework\TestCase{    private $validLifecycle = <<<BBBB<?xml version="1.0" encoding="utf-8"?><LifecycleConfiguration><Rule><ID>delete obsoleted files</ID><Prefix>obsoleted/</Prefix><Status>Enabled</Status><Expiration><Days>3</Days></Expiration></Rule><Rule><ID>delete temporary files</ID><Prefix>temporary/</Prefix><Status>Enabled</Status><Expiration><Date>2022-10-12T00:00:00.000Z</Date></Expiration><Expiration2><Date>2022-10-12T00:00:00.000Z</Date></Expiration2></Rule></LifecycleConfiguration>BBBB;    private $validLifecycle2 = <<<BBBB<?xml version="1.0" encoding="utf-8"?><LifecycleConfiguration><Rule><ID>delete temporary files</ID><Prefix>temporary/</Prefix><Status>Enabled</Status><Expiration><Date>2022-10-12T00:00:00.000Z</Date></Expiration><Expiration2><Date>2022-10-12T00:00:00.000Z</Date></Expiration2></Rule></LifecycleConfiguration>BBBB;    private $nullLifecycle = <<<BBBB<?xml version="1.0" encoding="utf-8"?><LifecycleConfiguration/>BBBB;    public function testConstructValidConfig()    {        $lifecycleConfig = new LifecycleConfig();        $actions = array();        $actions[] = new LifecycleAction("Expiration", "Days", 3);        $lifecycleRule = new LifecycleRule("delete obsoleted files", "obsoleted/", "Enabled", $actions);        $lifecycleConfig->addRule($lifecycleRule);        $actions = array();        $actions[] = new LifecycleAction("Expiration", "Date", '2022-10-12T00:00:00.000Z');        $actions[] = new LifecycleAction("Expiration2", "Date", '2022-10-12T00:00:00.000Z');        $lifecycleRule = new LifecycleRule("delete temporary files", "temporary/", "Enabled", $actions);        $lifecycleConfig->addRule($lifecycleRule);        try {            $lifecycleConfig->addRule(null);            $this->assertFalse(true);        } catch (OssException $e) {            $this->assertEquals('lifecycleRule is null', $e->getMessage());        }        $this->assertEquals($this->cleanXml(strval($lifecycleConfig)), $this->cleanXml($this->validLifecycle));    }    public function testParseValidXml()    {        $lifecycleConfig = new LifecycleConfig();        $lifecycleConfig->parseFromXml($this->validLifecycle);        $this->assertEquals($this->cleanXml($lifecycleConfig->serializeToXml()), $this->cleanXml($this->validLifecycle));        $this->assertEquals(2, count($lifecycleConfig->getRules()));        $rules = $lifecycleConfig->getRules();        $this->assertEquals('delete temporary files', $rules[1]->getId());    }    public function testParseValidXml2()    {        $lifecycleConfig = new LifecycleConfig();        $lifecycleConfig->parseFromXml($this->validLifecycle2);        $this->assertEquals($this->cleanXml($lifecycleConfig->serializeToXml()), $this->cleanXml($this->validLifecycle2));        $this->assertEquals(1, count($lifecycleConfig->getRules()));        $rules = $lifecycleConfig->getRules();        $this->assertEquals('delete temporary files', $rules[0]->getId());    }    public function testParseNullXml()    {        $lifecycleConfig = new LifecycleConfig();        $lifecycleConfig->parseFromXml($this->nullLifecycle);        $this->assertEquals($this->cleanXml($lifecycleConfig->serializeToXml()), $this->cleanXml($this->nullLifecycle));        $this->assertEquals(0, count($lifecycleConfig->getRules()));    }    public function testLifecycleRule()    {        $lifecycleRule = new LifecycleRule("x", "x", "x", array('x'));        $lifecycleRule->setId("id");        $lifecycleRule->setPrefix("prefix");        $lifecycleRule->setStatus("Enabled");        $lifecycleRule->setActions(array());        $this->assertEquals('id', $lifecycleRule->getId());        $this->assertEquals('prefix', $lifecycleRule->getPrefix());        $this->assertEquals('Enabled', $lifecycleRule->getStatus());        $this->assertEmpty($lifecycleRule->getActions());    }    public function testLifecycleAction()    {        $action = new LifecycleAction('x', 'x', 'x');        $this->assertEquals($action->getAction(), 'x');        $this->assertEquals($action->getTimeSpec(), 'x');        $this->assertEquals($action->getTimeValue(), 'x');        $action->setAction('y');        $action->setTimeSpec('y');        $action->setTimeValue('y');        $this->assertEquals($action->getAction(), 'y');        $this->assertEquals($action->getTimeSpec(), 'y');        $this->assertEquals($action->getTimeValue(), 'y');    }    private function cleanXml($xml)    {        return str_replace("\n", "", str_replace("\r", "", $xml));    }}
 |