You are here

public function PhpDumperTest::testAddService in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/symfony/dependency-injection/Tests/Dumper/PhpDumperTest.php \Symfony\Component\DependencyInjection\Tests\Dumper\PhpDumperTest::testAddService()

File

vendor/symfony/dependency-injection/Tests/Dumper/PhpDumperTest.php, line 103

Class

PhpDumperTest

Namespace

Symfony\Component\DependencyInjection\Tests\Dumper

Code

public function testAddService() {

  // without compilation
  $container = (include self::$fixturesPath . '/containers/container9.php');
  $dumper = new PhpDumper($container);
  $this
    ->assertEquals(str_replace('%path%', str_replace('\\', '\\\\', self::$fixturesPath . DIRECTORY_SEPARATOR . 'includes' . DIRECTORY_SEPARATOR), file_get_contents(self::$fixturesPath . '/php/services9.php')), $dumper
    ->dump(), '->dump() dumps services');

  // with compilation
  $container = (include self::$fixturesPath . '/containers/container9.php');
  $container
    ->compile();
  $dumper = new PhpDumper($container);
  $this
    ->assertEquals(str_replace('%path%', str_replace('\\', '\\\\', self::$fixturesPath . DIRECTORY_SEPARATOR . 'includes' . DIRECTORY_SEPARATOR), file_get_contents(self::$fixturesPath . '/php/services9_compiled.php')), $dumper
    ->dump(), '->dump() dumps services');
  $dumper = new PhpDumper($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('\\Symfony\\Component\\DependencyInjection\\Exception\\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');
  }
}