Файл: gapps/vendor/phpspec/prophecy/spec/Prophecy/Doubler/ClassPatch/DisableConstructorPatchSpec.php
Строк: 52
<?php
namespace specProphecyDoublerClassPatch;
use PhpSpecObjectBehavior;
use ProphecyArgument;
use ProphecyDoublerGeneratorNodeArgumentNode;
use ProphecyDoublerGeneratorNodeClassNode;
use ProphecyDoublerGeneratorNodeMethodNode;
class DisableConstructorPatchSpec extends ObjectBehavior
{
function it_is_a_patch()
{
$this->shouldBeAnInstanceOf('ProphecyDoublerClassPatchClassPatchInterface');
}
function its_priority_is_100()
{
$this->getPriority()->shouldReturn(100);
}
function it_supports_anything(ClassNode $node)
{
$this->supports($node)->shouldReturn(true);
}
function it_makes_all_constructor_arguments_optional(
ClassNode $class,
MethodNode $method,
ArgumentNode $arg1,
ArgumentNode $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);
}
function it_creates_new_constructor_if_object_has_none(ClassNode $class)
{
$class->hasMethod('__construct')->willReturn(false);
$class->addMethod(Argument::type('ProphecyDoublerGeneratorNodeMethodNode'))
->shouldBeCalled();
$this->apply($class);
}
}