Skip to content

Commit

Permalink
Fix spec for PHP >= 8.4 #624
Browse files Browse the repository at this point in the history
- make optional argument the last
- make sure nullable is generated
  • Loading branch information
andypost committed Oct 28, 2024
1 parent f425512 commit 0e0aba3
Showing 1 changed file with 12 additions and 12 deletions.
24 changes: 12 additions & 12 deletions spec/Prophecy/Doubler/Generator/ClassCodeGeneratorSpec.php
Original file line number Diff line number Diff line change
Expand Up @@ -74,24 +74,24 @@ function it_generates_proper_php_code_for_specific_ClassNode(
$method5->getReturnTypeNode()->willReturn(new ReturnTypeNode('object'));
$method5->getCode()->willReturn('return;');

$argument11->getName()->willReturn('fullname');
$argument11->isOptional()->willReturn(true);
$argument11->getDefault()->willReturn(null);
$argument11->getName()->willReturn('class');
$argument11->isOptional()->willReturn(false);
$argument11->isPassedByReference()->willReturn(false);
$argument11->isVariadic()->willReturn(false);
$argument11->getTypeNode()->willReturn(new ArgumentTypeNode('array'));
$argument11->getTypeNode()->willReturn(new ArgumentTypeNode('ReflectionClass'));

$argument12->getName()->willReturn('class');
$argument12->getName()->willReturn('instance');
$argument12->isOptional()->willReturn(false);
$argument12->isPassedByReference()->willReturn(false);
$argument12->isVariadic()->willReturn(false);
$argument12->getTypeNode()->willReturn(new ArgumentTypeNode('ReflectionClass'));
$argument12->getTypeNode()->willReturn(new ArgumentTypeNode('object'));

$argument13->getName()->willReturn('instance');
$argument13->isOptional()->willReturn(false);
$argument13->getName()->willReturn('fullname');
$argument13->isOptional()->willReturn(true);
$argument13->getDefault()->willReturn(null);
$argument13->isPassedByReference()->willReturn(false);
$argument13->isVariadic()->willReturn(false);
$argument13->getTypeNode()->willReturn(new ArgumentTypeNode('object'));
$argument13->getTypeNode()->willReturn(new ArgumentTypeNode('array', 'null'));

$argument21->getName()->willReturn('default');
$argument21->isOptional()->willReturn(true);
Expand All @@ -116,7 +116,7 @@ class CustomClass extends \RuntimeException implements \Prophecy\Doubler\Generat
public $name;
private $email;
public static function getName(array $fullname = NULL, \ReflectionClass $class, object $instance): ?string {
public static function getName(\ReflectionClass $class, object $instance, ?array $fullname = NULL): ?string {
return $this->name;
}
protected function getEmail(?string $default = '[email protected]') {
Expand Down Expand Up @@ -265,14 +265,14 @@ function it_overrides_properly_methods_with_args_passed_by_reference(
$argument->getDefault()->willReturn(null);
$argument->isPassedByReference()->willReturn(true);
$argument->isVariadic()->willReturn(false);
$argument->getTypeNode()->willReturn(new ArgumentTypeNode('array'));
$argument->getTypeNode()->willReturn(new ArgumentTypeNode('array', 'null'));

$code = $this->generate('CustomClass', $class);
$expected = <<<'PHP'
namespace {
class CustomClass extends \RuntimeException implements \Prophecy\Doubler\Generator\MirroredInterface {
public function getName(array &$fullname = NULL) {
public function getName(?array &$fullname = NULL) {
return $this->name;
}
Expand Down

0 comments on commit 0e0aba3

Please sign in to comment.