You are here

class DefinitionDecoratorTest in Zircon Profile 8.0

Same name and namespace in other branches
  1. 8 vendor/symfony/dependency-injection/Tests/DefinitionDecoratorTest.php \Symfony\Component\DependencyInjection\Tests\DefinitionDecoratorTest

Hierarchy

  • class \Symfony\Component\DependencyInjection\Tests\DefinitionDecoratorTest extends \Symfony\Component\DependencyInjection\Tests\PHPUnit_Framework_TestCase

Expanded class hierarchy of DefinitionDecoratorTest

File

vendor/symfony/dependency-injection/Tests/DefinitionDecoratorTest.php, line 16

Namespace

Symfony\Component\DependencyInjection\Tests
View source
class DefinitionDecoratorTest extends \PHPUnit_Framework_TestCase {
  public function testConstructor() {
    $def = new DefinitionDecorator('foo');
    $this
      ->assertEquals('foo', $def
      ->getParent());
    $this
      ->assertEquals(array(), $def
      ->getChanges());
  }

  /**
   * @dataProvider getPropertyTests
   */
  public function testSetProperty($property, $changeKey) {
    $def = new DefinitionDecorator('foo');
    $getter = 'get' . ucfirst($property);
    $setter = 'set' . ucfirst($property);
    $this
      ->assertNull($def
      ->{$getter}());
    $this
      ->assertSame($def, $def
      ->{$setter}('foo'));
    $this
      ->assertEquals('foo', $def
      ->{$getter}());
    $this
      ->assertEquals(array(
      $changeKey => true,
    ), $def
      ->getChanges());
  }
  public function getPropertyTests() {
    return array(
      array(
        'class',
        'class',
      ),
      array(
        'factory',
        'factory',
      ),
      array(
        'configurator',
        'configurator',
      ),
      array(
        'file',
        'file',
      ),
    );
  }

  /**
   * @dataProvider provideLegacyPropertyTests
   * @group legacy
   */
  public function testLegacySetProperty($property, $changeKey) {
    $def = new DefinitionDecorator('foo');
    $getter = 'get' . ucfirst($property);
    $setter = 'set' . ucfirst($property);
    $this
      ->assertNull($def
      ->{$getter}());
    $this
      ->assertSame($def, $def
      ->{$setter}('foo'));
    $this
      ->assertEquals('foo', $def
      ->{$getter}());
    $this
      ->assertEquals(array(
      $changeKey => true,
    ), $def
      ->getChanges());
  }
  public function provideLegacyPropertyTests() {
    return array(
      array(
        'factoryClass',
        'factory_class',
      ),
      array(
        'factoryMethod',
        'factory_method',
      ),
      array(
        'factoryService',
        'factory_service',
      ),
    );
  }
  public function testSetPublic() {
    $def = new DefinitionDecorator('foo');
    $this
      ->assertTrue($def
      ->isPublic());
    $this
      ->assertSame($def, $def
      ->setPublic(false));
    $this
      ->assertFalse($def
      ->isPublic());
    $this
      ->assertEquals(array(
      'public' => true,
    ), $def
      ->getChanges());
  }
  public function testSetLazy() {
    $def = new DefinitionDecorator('foo');
    $this
      ->assertFalse($def
      ->isLazy());
    $this
      ->assertSame($def, $def
      ->setLazy(false));
    $this
      ->assertFalse($def
      ->isLazy());
    $this
      ->assertEquals(array(
      'lazy' => true,
    ), $def
      ->getChanges());
  }
  public function testSetArgument() {
    $def = new DefinitionDecorator('foo');
    $this
      ->assertEquals(array(), $def
      ->getArguments());
    $this
      ->assertSame($def, $def
      ->replaceArgument(0, 'foo'));
    $this
      ->assertEquals(array(
      'index_0' => 'foo',
    ), $def
      ->getArguments());
  }

  /**
   * @expectedException \InvalidArgumentException
   */
  public function testReplaceArgumentShouldRequireIntegerIndex() {
    $def = new DefinitionDecorator('foo');
    $def
      ->replaceArgument('0', 'foo');
  }
  public function testReplaceArgument() {
    $def = new DefinitionDecorator('foo');
    $def
      ->setArguments(array(
      0 => 'foo',
      1 => 'bar',
    ));
    $this
      ->assertEquals('foo', $def
      ->getArgument(0));
    $this
      ->assertEquals('bar', $def
      ->getArgument(1));
    $this
      ->assertSame($def, $def
      ->replaceArgument(1, 'baz'));
    $this
      ->assertEquals('foo', $def
      ->getArgument(0));
    $this
      ->assertEquals('baz', $def
      ->getArgument(1));
    $this
      ->assertEquals(array(
      0 => 'foo',
      1 => 'bar',
      'index_1' => 'baz',
    ), $def
      ->getArguments());
  }

  /**
   * @expectedException \OutOfBoundsException
   */
  public function testGetArgumentShouldCheckBounds() {
    $def = new DefinitionDecorator('foo');
    $def
      ->setArguments(array(
      0 => 'foo',
    ));
    $def
      ->replaceArgument(0, 'foo');
    $def
      ->getArgument(1);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
DefinitionDecoratorTest::getPropertyTests public function
DefinitionDecoratorTest::provideLegacyPropertyTests public function
DefinitionDecoratorTest::testConstructor public function
DefinitionDecoratorTest::testGetArgumentShouldCheckBounds public function @expectedException \OutOfBoundsException
DefinitionDecoratorTest::testLegacySetProperty public function @dataProvider provideLegacyPropertyTests @group legacy
DefinitionDecoratorTest::testReplaceArgument public function
DefinitionDecoratorTest::testReplaceArgumentShouldRequireIntegerIndex public function @expectedException \InvalidArgumentException
DefinitionDecoratorTest::testSetArgument public function
DefinitionDecoratorTest::testSetLazy public function
DefinitionDecoratorTest::testSetProperty public function @dataProvider getPropertyTests
DefinitionDecoratorTest::testSetPublic public function