You are here

class TraversablePatchSpec in Zircon Profile 8.0

Same name and namespace in other branches
  1. 8 vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/TraversablePatchSpec.php \spec\Prophecy\Doubler\ClassPatch\TraversablePatchSpec

Hierarchy

Expanded class hierarchy of TraversablePatchSpec

File

vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/TraversablePatchSpec.php, line 8

Namespace

spec\Prophecy\Doubler\ClassPatch
View source
class TraversablePatchSpec extends ObjectBehavior {
  function it_is_a_patch() {
    $this
      ->shouldBeAnInstanceOf('Prophecy\\Doubler\\ClassPatch\\ClassPatchInterface');
  }

  /**
   * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
   */
  function it_supports_class_that_implements_only_Traversable($node) {
    $node
      ->getInterfaces()
      ->willReturn(array(
      'Traversable',
    ));
    $this
      ->supports($node)
      ->shouldReturn(true);
  }

  /**
   * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
   */
  function it_does_not_support_class_that_implements_Iterator($node) {
    $node
      ->getInterfaces()
      ->willReturn(array(
      'Traversable',
      'Iterator',
    ));
    $this
      ->supports($node)
      ->shouldReturn(false);
  }

  /**
   * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
   */
  function it_does_not_support_class_that_implements_IteratorAggregate($node) {
    $node
      ->getInterfaces()
      ->willReturn(array(
      'Traversable',
      'IteratorAggregate',
    ));
    $this
      ->supports($node)
      ->shouldReturn(false);
  }
  function it_has_100_priority() {
    $this
      ->getPriority()
      ->shouldReturn(100);
  }

  /**
   * @param \Prophecy\Doubler\Generator\Node\ClassNode $node
   */
  function it_forces_node_to_implement_IteratorAggregate($node) {
    $node
      ->addInterface('Iterator')
      ->shouldBeCalled();
    $node
      ->addMethod(Argument::type('Prophecy\\Doubler\\Generator\\Node\\MethodNode'))
      ->willReturn(null);
    $this
      ->apply($node);
  }

}

Members