78 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			78 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			PHP
		
	
	
|  | <?php | ||
|  | 
 | ||
|  | namespace OSS\Tests; | ||
|  | 
 | ||
|  | 
 | ||
|  | use OSS\Model\CnameConfig; | ||
|  | use OSS\Core\OssException; | ||
|  | 
 | ||
|  | class CnameConfigTest extends \PHPUnit\Framework\TestCase | ||
|  | { | ||
|  |     private $xml1 = <<<BBBB | ||
|  | <?xml version="1.0" encoding="utf-8"?>
 | ||
|  | <BucketCnameConfiguration> | ||
|  |   <Cname> | ||
|  |     <Domain>www.foo.com</Domain> | ||
|  |     <Status>enabled</Status> | ||
|  |     <LastModified>20150101</LastModified> | ||
|  |   </Cname> | ||
|  |   <Cname> | ||
|  |     <Domain>bar.com</Domain> | ||
|  |     <Status>disabled</Status> | ||
|  |     <LastModified>20160101</LastModified> | ||
|  |   </Cname> | ||
|  | </BucketCnameConfiguration> | ||
|  | BBBB; | ||
|  | 
 | ||
|  |     public function testFromXml() | ||
|  |     { | ||
|  |         $cnameConfig = new CnameConfig(); | ||
|  |         $cnameConfig->parseFromXml($this->xml1); | ||
|  | 
 | ||
|  |         $cnames = $cnameConfig->getCnames(); | ||
|  |         $this->assertEquals(2, count($cnames)); | ||
|  |         $this->assertEquals('www.foo.com', $cnames[0]['Domain']); | ||
|  |         $this->assertEquals('enabled', $cnames[0]['Status']); | ||
|  |         $this->assertEquals('20150101', $cnames[0]['LastModified']); | ||
|  | 
 | ||
|  |         $this->assertEquals('bar.com', $cnames[1]['Domain']); | ||
|  |         $this->assertEquals('disabled', $cnames[1]['Status']); | ||
|  |         $this->assertEquals('20160101', $cnames[1]['LastModified']); | ||
|  |     } | ||
|  | 
 | ||
|  |     public function testToXml() | ||
|  |     { | ||
|  |         $cnameConfig = new CnameConfig(); | ||
|  |         $cnameConfig->addCname('www.foo.com'); | ||
|  |         $cnameConfig->addCname('bar.com'); | ||
|  | 
 | ||
|  |         $xml = $cnameConfig->serializeToXml(); | ||
|  |         $comp = new CnameConfig(); | ||
|  |         $comp->parseFromXml($xml); | ||
|  | 
 | ||
|  |         $cnames1 = $cnameConfig->getCnames(); | ||
|  |         $cnames2 = $comp->getCnames(); | ||
|  | 
 | ||
|  |         $this->assertEquals(count($cnames1), count($cnames2)); | ||
|  |         $this->assertEquals(count($cnames1[0]), count($cnames2[0])); | ||
|  |         $this->assertEquals(1, count($cnames1[0])); | ||
|  |         $this->assertEquals($cnames1[0]['Domain'], $cnames2[0]['Domain']); | ||
|  |     } | ||
|  | 
 | ||
|  |     public function testCnameNumberLimit() | ||
|  |     { | ||
|  |         $cnameConfig = new CnameConfig(); | ||
|  |         for ($i = 0; $i < CnameConfig::OSS_MAX_RULES; $i += 1) { | ||
|  |             $cnameConfig->addCname(strval($i) . '.foo.com'); | ||
|  |         } | ||
|  |         try { | ||
|  |             $cnameConfig->addCname('www.foo.com'); | ||
|  |             $this->assertFalse(true); | ||
|  |         } catch (OssException $e) { | ||
|  |             $this->assertEquals( | ||
|  |                 $e->getMessage(), | ||
|  |                 "num of cname in the config exceeds self::OSS_MAX_RULES: " . strval(CnameConfig::OSS_MAX_RULES)); | ||
|  |         } | ||
|  |     } | ||
|  | } |