Skip to content

Commit 6637eb1

Browse files
committed
Merge remote-tracking branch 'tango/MC-33898' into Chaika-PR-2020-05-12
2 parents 80237d6 + 589497d commit 6637eb1

File tree

2 files changed

+26
-3
lines changed

2 files changed

+26
-3
lines changed

lib/internal/Magento/Framework/Code/Reader/ClassReader.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@
77

88
/**
99
* Class ClassReader
10-
*
11-
* @package Magento\Framework\Code\Reader
1210
*/
1311
class ClassReader implements ClassReaderInterface
1412
{
@@ -39,7 +37,11 @@ public function getConstructor($className)
3937
$parameter->isVariadic(),
4038
];
4139
} catch (\ReflectionException $e) {
42-
$message = $e->getMessage();
40+
$message = sprintf(
41+
'Impossible to process constructor argument %s of %s class',
42+
$parameter->__toString(),
43+
$className
44+
);
4345
throw new \ReflectionException($message, 0, $e);
4446
}
4547
}

lib/internal/Magento/Framework/Code/Test/Unit/Reader/ClassReaderTest.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,27 @@ public function testGetParents()
6060
);
6161
}
6262

63+
/**
64+
* Check that while processing nonexistent argument of constructor exception message contains original class name
65+
*/
66+
public function testGetConstructorWithNonexistentDependency()
67+
{
68+
$testClass = new class {
69+
private $arg;
70+
71+
// phpstan:ignore
72+
public function __construct(?\NonexistentDependency $arg = null)
73+
{
74+
$this->arg = $arg;
75+
}
76+
};
77+
78+
$className = get_class($testClass);
79+
$this->expectException(\ReflectionException::class);
80+
$this->expectExceptionMessage($className);
81+
$this->model->getConstructor($className);
82+
}
83+
6384
/**
6485
* Data provider
6586
*

0 commit comments

Comments
 (0)