Вход Регистрация
Файл: 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);
    }
}
Онлайн: 0
Реклама