class TraversablePatchSpec in Zircon Profile 8.0
Same name and namespace in other branches
- 8 vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/TraversablePatchSpec.php \spec\Prophecy\Doubler\ClassPatch\TraversablePatchSpec
Hierarchy
- class \spec\Prophecy\Doubler\ClassPatch\TraversablePatchSpec extends \PhpSpec\ObjectBehavior
Expanded class hierarchy of TraversablePatchSpec
File
- vendor/
phpspec/ prophecy/ spec/ Prophecy/ Doubler/ ClassPatch/ TraversablePatchSpec.php, line 8
Namespace
spec\Prophecy\Doubler\ClassPatchView 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);
}
}