5
5
use Drupal \Core \Logger \LoggerChannel ;
6
6
use mglaman \PHPStanDrupal \Drupal \DrupalServiceDefinition ;
7
7
use mglaman \PHPStanDrupal \Drupal \ServiceMap ;
8
- use PHPStan \Type \ObjectType ;
9
- use PHPStan \Type \UnionType ;
10
8
use PHPUnit \Framework \TestCase ;
11
9
12
10
final class ServiceMapFactoryTest extends TestCase
@@ -16,7 +14,9 @@ final class ServiceMapFactoryTest extends TestCase
16
14
* @dataProvider getServiceProvider
17
15
*
18
16
* @covers \mglaman\PHPStanDrupal\Drupal\DrupalServiceDefinition::__construct
17
+ * @covers \mglaman\PHPStanDrupal\Drupal\DrupalServiceDefinition::addDecorator
19
18
* @covers \mglaman\PHPStanDrupal\Drupal\DrupalServiceDefinition::getClass
19
+ * @covers \mglaman\PHPStanDrupal\Drupal\DrupalServiceDefinition::getDecorators
20
20
* @covers \mglaman\PHPStanDrupal\Drupal\DrupalServiceDefinition::isPublic
21
21
* @covers \mglaman\PHPStanDrupal\Drupal\DrupalServiceDefinition::getAlias
22
22
* @covers \mglaman\PHPStanDrupal\Drupal\DrupalServiceDefinition::getId
@@ -103,7 +103,11 @@ public function testFactory(string $id, callable $validator): void
103
103
'service_map.deocrating_base ' => [
104
104
'decorates ' => 'service_map.base_to_be_decorated ' ,
105
105
'class ' => 'Drupal\service_map\SecondBase ' ,
106
- ]
106
+ ],
107
+ 'service_map.decorates_decorating_base ' => [
108
+ 'decorates ' => 'service_map.deocrating_base ' ,
109
+ 'class ' => 'Drupal\service_map\Override ' ,
110
+ ],
107
111
]);
108
112
$ validator ($ service ->getService ($ id ));
109
113
}
@@ -225,12 +229,12 @@ function (DrupalServiceDefinition $service): void {
225
229
yield [
226
230
'service_map.base_to_be_decorated ' ,
227
231
function (DrupalServiceDefinition $ service ): void {
228
- $ combined_class = [
229
- new ObjectType ( ' Drupal\service_map\Base ' ),
230
- new ObjectType ( ' Drupal\ service_map\SecondBase ' )
231
- ] ;
232
- $ expected_class = new UnionType ( $ combined_class );
233
- self ::assertEquals ( $ expected_class , $ service -> getType () );
232
+ $ decorators = $ service -> getDecorators ();
233
+ self :: assertCount ( 1 , $ decorators );
234
+ self :: assertArrayHasKey ( ' service_map.deocrating_base ' , $ decorators );
235
+ $ child_decorators = $ decorators [ ' service_map.deocrating_base ' ]-> getDecorators () ;
236
+ self :: assertCount ( 1 , $ child_decorators );
237
+ self ::assertArrayHasKey ( ' service_map.decorates_decorating_base ' , $ child_decorators );
234
238
}
235
239
];
236
240
}
0 commit comments