spec\Prophecy\Doubler\ClassPatch\ProphecySubjectPatchSpec::it_forces_all_class_methods_except_constructor_to_proxy_calls_into_prophecy_makeCall PHP Method

it_forces_all_class_methods_except_constructor_to_proxy_calls_into_prophecy_makeCall() public method

public it_forces_all_class_methods_except_constructor_to_proxy_calls_into_prophecy_makeCall ( Prophecy\Doubler\Generator\Node\ClassNode $node, Prophecy\Doubler\Generator\Node\MethodNode $constructor, Prophecy\Doubler\Generator\Node\MethodNode $method1, Prophecy\Doubler\Generator\Node\MethodNode $method2, Prophecy\Doubler\Generator\Node\MethodNode $method3 )
$node Prophecy\Doubler\Generator\Node\ClassNode
$constructor Prophecy\Doubler\Generator\Node\MethodNode
$method1 Prophecy\Doubler\Generator\Node\MethodNode
$method2 Prophecy\Doubler\Generator\Node\MethodNode
$method3 Prophecy\Doubler\Generator\Node\MethodNode
    function it_forces_all_class_methods_except_constructor_to_proxy_calls_into_prophecy_makeCall(ClassNode $node, MethodNode $constructor, MethodNode $method1, MethodNode $method2, MethodNode $method3)
    {
        $node->addInterface('Prophecy\\Prophecy\\ProphecySubjectInterface')->willReturn(null);
        $node->addProperty('objectProphecy', 'private')->willReturn(null);
        $node->hasMethod(Argument::any())->willReturn(false);
        $node->addMethod(Argument::type('Prophecy\\Doubler\\Generator\\Node\\MethodNode'))->willReturn(null);
        $node->addMethod(Argument::type('Prophecy\\Doubler\\Generator\\Node\\MethodNode'))->willReturn(null);
        $constructor->getName()->willReturn('__construct');
        $method1->getName()->willReturn('method1');
        $method2->getName()->willReturn('method2');
        $method3->getName()->willReturn('method3');
        $node->getMethods()->willReturn(array('method1' => $method1, 'method2' => $method2, 'method3' => $method3));
        $constructor->setCode(Argument::any())->shouldNotBeCalled();
        $method1->setCode('return $this->getProphecy()->makeProphecyMethodCall(__FUNCTION__, func_get_args());')->shouldBeCalled();
        $method2->setCode('return $this->getProphecy()->makeProphecyMethodCall(__FUNCTION__, func_get_args());')->shouldBeCalled();
        $method3->setCode('return $this->getProphecy()->makeProphecyMethodCall(__FUNCTION__, func_get_args());')->shouldBeCalled();
        $this->apply($node);
    }