2 declare(strict_types = 1);
18 use PhpParser\NodeTraverser;
19 use PhpParser\NodeVisitor\NameResolver;
20 use PhpParser\ParserFactory;
21 use PHPUnit\Framework\TestCase;
35 'Breaking-87193-DeprecatedFunctionalityRemoved.rst',
42 'required' => array_merge($defaults, [
43 'numberOfMandatoryArguments' => 4,
46 [32, 33, 34, 35, 42, 43],
50 'dropped' => array_merge($defaults, [
51 'maximumNumberOfArguments' => 2,
54 [32, 33, 34, 35, 42, 43],
58 'called' => array_merge($defaults, [
59 'numberOfMandatoryArguments' => 1,
60 'maximumNumberOfArguments' => 3,
63 [32, 33, 34, 35, 42, 43],
67 'unused' => array_merge($defaults, [
68 'unusedArgumentNumbers' => [2],
85 $parser = (
new ParserFactory())->create(ParserFactory::PREFER_PHP7);
86 $fixtureFile = __DIR__ .
'/Fixtures/ConstructorArgumentMatcherFixture.php';
87 $statements =
$parser->parse(file_get_contents($fixtureFile));
90 $traverser =
new NodeTraverser();
91 $traverser->addVisitor(
new NameResolver());
92 $statements = $traverser->traverse($statements);
95 $traverser =
new NodeTraverser();
98 Subject::class => $configuration
100 $traverser->addVisitor($subject);
101 $traverser->traverse($statements);
103 $lineNumbers = array_column($subject->getMatches(),
'line');
104 self::assertEquals($expectation, $lineNumbers);