Вход Регистрация
Файл: src/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/TraversablePatchSpec.php
Строк: 64
<?php

namespace specProphecyDoublerClassPatch;

use 
PhpSpecObjectBehavior;
use 
ProphecyArgument;

class 
TraversablePatchSpec extends ObjectBehavior
{
    function 
it_is_a_patch()
    {
        
$this->shouldBeAnInstanceOf('ProphecyDoublerClassPatchClassPatchInterface');
    }

    
/**
     * @param ProphecyDoublerGeneratorNodeClassNode $node
     */
    
function it_supports_class_that_implements_only_Traversable($node)
    {
        
$node->getInterfaces()->willReturn(array('Traversable'));

        
$this->supports($node)->shouldReturn(true);
    }

    
/**
     * @param ProphecyDoublerGeneratorNodeClassNode $node
     */
    
function it_does_not_support_class_that_implements_Iterator($node)
    {
        
$node->getInterfaces()->willReturn(array('Traversable''Iterator'));

        
$this->supports($node)->shouldReturn(false);
    }

    
/**
     * @param ProphecyDoublerGeneratorNodeClassNode $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 ProphecyDoublerGeneratorNodeClassNode $node
     */
    
function it_forces_node_to_implement_IteratorAggregate($node)
    {
        
$node->addInterface('Iterator')->shouldBeCalled();

        
$node->addMethod(Argument::type('ProphecyDoublerGeneratorNodeMethodNode'))->willReturn(null);

        
$this->apply($node);
    }
}
Онлайн: 2
Реклама