144 lines
		
	
	
	
		
			3.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			144 lines
		
	
	
	
		
			3.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
|   | <?php | ||
|  | 
 | ||
|  | /* | ||
|  |  * This file is part of the Symfony package. | ||
|  |  * | ||
|  |  * (c) Fabien Potencier <fabien@symfony.com> | ||
|  |  * | ||
|  |  * For the full copyright and license information, please view the LICENSE | ||
|  |  * file that was distributed with this source code. | ||
|  |  */ | ||
|  | 
 | ||
|  | namespace Symfony\Component\Config\Tests\Definition\Dumper; | ||
|  | 
 | ||
|  | use PHPUnit\Framework\TestCase; | ||
|  | use Symfony\Component\Config\Definition\Dumper\YamlReferenceDumper; | ||
|  | use Symfony\Component\Config\Tests\Fixtures\Configuration\ExampleConfiguration; | ||
|  | 
 | ||
|  | class YamlReferenceDumperTest extends TestCase | ||
|  | { | ||
|  |     public function testDumper() | ||
|  |     { | ||
|  |         $configuration = new ExampleConfiguration(); | ||
|  | 
 | ||
|  |         $dumper = new YamlReferenceDumper(); | ||
|  | 
 | ||
|  |         $this->assertEquals($this->getConfigurationAsString(), $dumper->dump($configuration)); | ||
|  |     } | ||
|  | 
 | ||
|  |     public function provideDumpAtPath() | ||
|  |     { | ||
|  |         return array( | ||
|  |             'Regular node' => array('scalar_true', <<<EOL | ||
|  | scalar_true:          true | ||
|  | EOL | ||
|  |             ), | ||
|  |             'Array node' => array('array', <<<EOL | ||
|  | # some info
 | ||
|  | array: | ||
|  |     child1:               ~ | ||
|  |     child2:               ~ | ||
|  | 
 | ||
|  |     # this is a long
 | ||
|  |     # multi-line info text
 | ||
|  |     # which should be indented
 | ||
|  |     child3:               ~ # Example: example setting
 | ||
|  | EOL | ||
|  |             ), | ||
|  |             'Regular nested' => array('array.child2', <<<EOL | ||
|  | child2:               ~ | ||
|  | EOL | ||
|  |             ), | ||
|  |             'Prototype' => array('cms_pages.page', <<<EOL | ||
|  | # Prototype
 | ||
|  | page: | ||
|  | 
 | ||
|  |     # Prototype
 | ||
|  |     locale: | ||
|  |         title:                ~ # Required
 | ||
|  |         path:                 ~ # Required
 | ||
|  | EOL | ||
|  |             ), | ||
|  |             'Nested prototype' => array('cms_pages.page.locale', <<<EOL | ||
|  | # Prototype
 | ||
|  | locale: | ||
|  |     title:                ~ # Required
 | ||
|  |     path:                 ~ # Required
 | ||
|  | EOL | ||
|  |             ), | ||
|  |         ); | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * @dataProvider provideDumpAtPath | ||
|  |      */ | ||
|  |     public function testDumpAtPath($path, $expected) | ||
|  |     { | ||
|  |         $configuration = new ExampleConfiguration(); | ||
|  | 
 | ||
|  |         $dumper = new YamlReferenceDumper(); | ||
|  | 
 | ||
|  |         $this->assertSame(trim($expected), trim($dumper->dumpAtPath($configuration, $path))); | ||
|  |     } | ||
|  | 
 | ||
|  |     private function getConfigurationAsString() | ||
|  |     { | ||
|  |         return <<<'EOL' | ||
|  | acme_root: | ||
|  |     boolean:              true | ||
|  |     scalar_empty:         ~ | ||
|  |     scalar_null:          null | ||
|  |     scalar_true:          true | ||
|  |     scalar_false:         false | ||
|  |     scalar_default:       default | ||
|  |     scalar_array_empty:   [] | ||
|  |     scalar_array_defaults: | ||
|  | 
 | ||
|  |         # Defaults:
 | ||
|  |         - elem1 | ||
|  |         - elem2 | ||
|  |     scalar_required:      ~ # Required
 | ||
|  |     scalar_deprecated:    ~ # Deprecated (The child node "scalar_deprecated" at path "acme_root" is deprecated.)
 | ||
|  |     scalar_deprecated_with_message: ~ # Deprecated (Deprecation custom message for "scalar_deprecated_with_message" at "acme_root")
 | ||
|  |     node_with_a_looong_name: ~ | ||
|  |     enum_with_default:    this # One of "this"; "that"
 | ||
|  |     enum:                 ~ # One of "this"; "that"
 | ||
|  | 
 | ||
|  |     # some info
 | ||
|  |     array: | ||
|  |         child1:               ~ | ||
|  |         child2:               ~ | ||
|  | 
 | ||
|  |         # this is a long
 | ||
|  |         # multi-line info text
 | ||
|  |         # which should be indented
 | ||
|  |         child3:               ~ # Example: example setting
 | ||
|  |     scalar_prototyped:    [] | ||
|  |     parameters: | ||
|  | 
 | ||
|  |         # Prototype: Parameter name
 | ||
|  |         name:                 ~ | ||
|  |     connections: | ||
|  | 
 | ||
|  |         # Prototype
 | ||
|  |         - | ||
|  |             user:                 ~ | ||
|  |             pass:                 ~ | ||
|  |     cms_pages: | ||
|  | 
 | ||
|  |         # Prototype
 | ||
|  |         page: | ||
|  | 
 | ||
|  |             # Prototype
 | ||
|  |             locale: | ||
|  |                 title:                ~ # Required
 | ||
|  |                 path:                 ~ # Required
 | ||
|  |     pipou: | ||
|  | 
 | ||
|  |         # Prototype
 | ||
|  |         name:                 [] | ||
|  | 
 | ||
|  | EOL; | ||
|  |     } | ||
|  | } |