20 $this->mapper = $managerHelper->getObject(VirtualTypeMapper::class, [
23 'virtualType1' =>
'Magento\SomeModule\Some\Class1',
24 'virtualType2' =>
'Magento\SomeModule\Some\Class2',
25 'virtualType3' =>
'Magento\SomeModule\Some\Class3',
28 'virtualType1' =>
'Magento\SomeModule\Some\Class4',
29 'virtualType4' =>
'Magento\SomeModule\Some\Class5',
37 $file =
'/path/to/file/scope/filename.ext';
38 static::assertEquals(
'scope', $this->mapper->getScopeFromFile($file));
49 static::assertEquals($expected, $this->mapper->getType(
$type, $scope));
61 'Magento\SomeModule\Some\Class1' 66 'Magento\SomeModule\Some\Class2' 71 'Magento\SomeModule\Some\Class3' 76 'Magento\SomeModule\Some\Class4' 81 'Magento\SomeModule\Some\Class5' 91 public function testLoad(array $diFilesPath, array $expectedVirtualTypesDependencies)
94 self::assertArrayEqualsRecursive(
95 $expectedVirtualTypesDependencies,
96 $mapper->loadMap($diFilesPath)
108 $mapper->loadMap($diFilesPath);
111 $expectedVirtualTypesDependencies[
'global'][
'ConcreteClass'] =
'ConcreteClass';
113 foreach ($expectedVirtualTypesDependencies as $scope => $deps) {
114 foreach ($deps as $virtualType => $baseType) {
115 self::assertEquals($baseType, $mapper->getType($virtualType, $scope));
128 'diFilesPath' => [$this->getFilePath(
'etc/di.xml')],
129 'expectedVirtualTypesDependencies' => [
131 'Magento\Internal\Some\Class' =>
'ExternalVirtualType',
132 'MyVirtualType' =>
'Magento\Internal\Some\Class' 142 'diFilesPath' => [$this->getFilePath(
'etc/di.xml'), $this->getFilePath(
'etc/adminhtml/di.xml')],
143 'expectedVirtualTypesDependencies' => [
145 'Magento\Internal\Some\Class' =>
'ExternalVirtualType',
146 'MyVirtualType' =>
'Magento\Internal\Some\Class' 149 'MyVirtualType2' =>
'ExternalVirtualType' 160 private static function assertArrayEqualsRecursive(
164 static::assertEquals(count($expectation), count($input));
165 foreach ($expectation as $ek => $ev) {
166 self::assertArrayHasKey($ek, $input);
168 self::assertArrayEqualsRecursive($ev, $input[$ek]);
170 self::assertEquals($ev, $input[$ek]);
182 . DIRECTORY_SEPARATOR
183 .
'_files' . DIRECTORY_SEPARATOR .
$fileName;
defined('TESTS_BP')||define('TESTS_BP' __DIR__
loadConfigurationDataProvider()
testLoad(array $diFilesPath, array $expectedVirtualTypesDependencies)
testGetTypeComplex(array $diFilesPath, array $expectedVirtualTypesDependencies)
testGetType($scope, $type, $expected)