Файл: 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);
}
}