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

namespace specProphecyDoublerClassPatch;

use 
PhpSpecObjectBehavior;
use 
ProphecyArgument;

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

    function 
its_priority_is_100()
    {
        
$this->getPriority()->shouldReturn(100);
    }

    
/**
     * @param ProphecyDoublerGeneratorNodeClassNode $node
     */
    
function it_supports_anything($node)
    {
        
$this->supports($node)->shouldReturn(true);
    }

    
/**
     * @param ProphecyDoublerGeneratorNodeClassNode    $class
     * @param ProphecyDoublerGeneratorNodeMethodNode   $method
     * @param ProphecyDoublerGeneratorNodeArgumentNode $arg1
     * @param ProphecyDoublerGeneratorNodeArgumentNode $arg2
     */
    
function it_makes_all_constructor_arguments_optional($class$method$arg1$arg2)
    {
        
$class->hasMethod('__construct')->willReturn(true);
        
$class->getMethod('__construct')->willReturn($method);
        
$method->getArguments()->willReturn(array($arg1$arg2));

        
$arg1->setDefault(null)->shouldBeCalled();
        
$arg2->setDefault(null)->shouldBeCalled();

        
$method->setCode(Argument::type('string'))->shouldBeCalled();

        
$this->apply($class);
    }

    
/**
     * @param ProphecyDoublerGeneratorNodeClassNode $class
     */
    
function it_creates_new_constructor_if_object_has_none($class)
    {
        
$class->hasMethod('__construct')->willReturn(false);
        
$class->addMethod(Argument::type('ProphecyDoublerGeneratorNodeMethodNode'))
            ->
shouldBeCalled();

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