Вход Регистрация
Файл: symfony-2.7/src/Symfony/Component/DependencyInjection/Tests/Dumper/YamlDumperTest.php
Строк: 172
<?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 SymfonyComponentDependencyInjectionTestsDumper;

use 
SymfonyComponentDependencyInjectionContainerBuilder;
use 
SymfonyComponentDependencyInjectionDumperYamlDumper;

class 
YamlDumperTest extends PHPUnit_Framework_TestCase
{
    protected static 
$fixturesPath;

    public static function 
setUpBeforeClass()
    {
        
self::$fixturesPath realpath(__DIR__.'/../Fixtures/');
    }

    public function 
testDump()
    {
        
$dumper = new YamlDumper($container = new ContainerBuilder());

        
$this->assertStringEqualsFile(self::$fixturesPath.'/yaml/services1.yml'$dumper->dump(), '->dump() dumps an empty container as an empty YAML file');

        
$container = new ContainerBuilder();
        
$dumper = new YamlDumper($container);
    }

    public function 
testAddParameters()
    {
        
$container = include self::$fixturesPath.'/containers/container8.php';
        
$dumper = new YamlDumper($container);
        
$this->assertStringEqualsFile(self::$fixturesPath.'/yaml/services8.yml'$dumper->dump(), '->dump() dumps parameters');
    }

    public function 
testLegacyAddService()
    {
        
$this->iniSet('error_reporting', -& ~E_USER_DEPRECATED);

        
$container = include self::$fixturesPath.'/containers/legacy-container9.php';
        
$dumper = new YamlDumper($container);

        
$this->assertEquals(str_replace('%path%'self::$fixturesPath.DIRECTORY_SEPARATOR.'includes'.DIRECTORY_SEPARATORfile_get_contents(self::$fixturesPath.'/yaml/legacy-services9.yml')), $dumper->dump(), '->dump() dumps services');

        
$dumper = new YamlDumper($container = new ContainerBuilder());
        
$container->register('foo''FooClass')->addArgument(new stdClass());
        try {
            
$dumper->dump();
            
$this->fail('->dump() throws a RuntimeException if the container to be dumped has reference to objects or resources');
        } catch (
Exception $e) {
            
$this->assertInstanceOf('RuntimeException'$e'->dump() throws a RuntimeException if the container to be dumped has reference to objects or resources');
            
$this->assertEquals('Unable to dump a service container if a parameter is an object or a resource.'$e->getMessage(), '->dump() throws a RuntimeException if the container to be dumped has reference to objects or resources');
        }
    }

    public function 
testAddService()
    {
        
$container = include self::$fixturesPath.'/containers/container9.php';
        
$dumper = new YamlDumper($container);
        
$this->assertEquals(str_replace('%path%'self::$fixturesPath.DIRECTORY_SEPARATOR.'includes'.DIRECTORY_SEPARATORfile_get_contents(self::$fixturesPath.'/yaml/services9.yml')), $dumper->dump(), '->dump() dumps services');

        
$dumper = new YamlDumper($container = new ContainerBuilder());
        
$container->register('foo''FooClass')->addArgument(new stdClass());
        try {
            
$dumper->dump();
            
$this->fail('->dump() throws a RuntimeException if the container to be dumped has reference to objects or resources');
        } catch (
Exception $e) {
            
$this->assertInstanceOf('RuntimeException'$e'->dump() throws a RuntimeException if the container to be dumped has reference to objects or resources');
            
$this->assertEquals('Unable to dump a service container if a parameter is an object or a resource.'$e->getMessage(), '->dump() throws a RuntimeException if the container to be dumped has reference to objects or resources');
        }
    }
}
Онлайн: 4
Реклама