ExtensionAPIRegisteredAndCalledProvider() as list($sAPIFQCN, $sCallMethod)) { if ($sCallMethod === static::ENUM_API_CALL_METHOD_ENUMPLUGINS) { $iExtendingClassesCount = count(MetaModel::EnumPlugins($sAPIFQCN)); } else { $iExtendingClassesCount = count(utils::GetClassesForInterface($sAPIFQCN, '', ['[\\\\/]lib[\\\\/]', '[\\\\/]node_modules[\\\\/]', '[\\\\/]test[\\\\/]', '[\\\\/]tests[\\\\/]'])); } $this->assertGreaterThan(0, $iExtendingClassesCount, "Found no class extending the $sAPIFQCN API"); } } public function ExtensionAPIRegisteredAndCalledProvider(): array { // APIs not concerned by this test: // * \iRestServiceProvider as it is discovered by iterating over declared classes directly // * \iLoginUIExtension as it is not iterated directly, only its derived interfaces return [ \iLoginFSMExtension::class => [ \iLoginFSMExtension::class, static::ENUM_API_CALL_METHOD_ENUMPLUGINS, ], \iLogoutExtension::class => [ \iLogoutExtension::class, static::ENUM_API_CALL_METHOD_ENUMPLUGINS, ], \iLoginUIExtension::class => [ \iLoginUIExtension::class, static::ENUM_API_CALL_METHOD_ENUMPLUGINS, ], \iPreferencesExtension::class => [ \iPreferencesExtension::class, static::ENUM_API_CALL_METHOD_ENUMPLUGINS, ], \iApplicationUIExtension::class => [ \iApplicationUIExtension::class, static::ENUM_API_CALL_METHOD_ENUMPLUGINS, ], \iApplicationObjectExtension::class => [ \iApplicationObjectExtension::class, static::ENUM_API_CALL_METHOD_ENUMPLUGINS, ], \iPopupMenuExtension::class => [ \iPopupMenuExtension::class, static::ENUM_API_CALL_METHOD_ENUMPLUGINS, ], \iPageUIExtension::class => [ \iPageUIExtension::class, static::ENUM_API_CALL_METHOD_ENUMPLUGINS, ], \iPortalUIExtension::class => [ \iPortalUIExtension::class, static::ENUM_API_CALL_METHOD_ENUMPLUGINS, ], \iQueryModifier::class => [ \iQueryModifier::class, static::ENUM_API_CALL_METHOD_ENUMPLUGINS, ], \iOnClassInitialization::class => [ \iOnClassInitialization::class, static::ENUM_API_CALL_METHOD_ENUMPLUGINS, ], \iModuleExtension::class => [ \iModuleExtension::class, static::ENUM_API_CALL_METHOD_ENUMPLUGINS, ], \iKPILoggerExtension::class => [ \iKPILoggerExtension::class, static::ENUM_API_CALL_METHOD_ENUMPLUGINS, ], \ModuleHandlerApiInterface::class => [ \ModuleHandlerApiInterface::class, static::ENUM_API_CALL_METHOD_ENUMPLUGINS, ], \iNewsroomProvider::class => [ \iNewsroomProvider::class, static::ENUM_API_CALL_METHOD_ENUMPLUGINS, ], ]; } }