You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
130 lines
4.7 KiB
130 lines
4.7 KiB
<?php
|
|
|
|
namespace 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));
|
|
}
|
|
}
|
|
|