Файл: gapps/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/TraversablePatchSpec.php
Строк: 57
<?php
namespace specProphecyDoublerClassPatch;
use PhpSpecObjectBehavior;
use ProphecyArgument;
use ProphecyDoublerGeneratorNodeClassNode;
class TraversablePatchSpec extends ObjectBehavior
{
function it_is_a_patch()
{
$this->shouldBeAnInstanceOf('ProphecyDoublerClassPatchClassPatchInterface');
}
function it_supports_class_that_implements_only_Traversable(ClassNode $node)
{
$node->getInterfaces()->willReturn(array('Traversable'));
$this->supports($node)->shouldReturn(true);
}
function it_does_not_support_class_that_implements_Iterator(ClassNode $node)
{
$node->getInterfaces()->willReturn(array('Traversable', 'Iterator'));
$this->supports($node)->shouldReturn(false);
}
function it_does_not_support_class_that_implements_IteratorAggregate(ClassNode $node)
{
$node->getInterfaces()->willReturn(array('Traversable', 'IteratorAggregate'));
$this->supports($node)->shouldReturn(false);
}
function it_has_100_priority()
{
$this->getPriority()->shouldReturn(100);
}
function it_forces_node_to_implement_IteratorAggregate(ClassNode $node)
{
$node->addInterface('Iterator')->shouldBeCalled();
$node->addMethod(Argument::type('ProphecyDoublerGeneratorNodeMethodNode'))->willReturn(null);
$this->apply($node);
}
}