assertTrue( is_subclass_of(HookEventSubscriber::class, StaticEventSubscriber::class, true), HookEventSubscriber::class . ' does not implement ' . StaticEventSubscriber::class ); } public function testGetStaticSubscribedEventsReturnsStaticMethods(): void { $expected = [ DataFilterEvent::class => 'onDataFilterEvent', ]; $this->assertSame( $expected, HookEventSubscriber::getStaticSubscribedEvents() ); foreach ($expected as $methodName) { $this->assertTrue(method_exists(HookEventSubscriber::class, $methodName)); $this->assertTrue( (new \ReflectionMethod(HookEventSubscriber::class, $methodName))->isStatic(), $methodName . ' is not static' ); } } }