ExtensionAPIRegisteredAndCalledProvider() as list($sAPIFQCN, $sCallMethod)) { if ($sCallMethod === static::ENUM_API_CALL_METHOD_ENUMPLUGINS) { $iExtendingClassesCount = count(MetaModel::EnumPlugins($sAPIFQCN)); } else { $iExtendingClassesCount = count(InterfaceDiscovery::GetInstance()->FindItopClasses($sAPIFQCN)); } $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, ], \iPopupMenuExtension::class => [ \iPopupMenuExtension::class, static::ENUM_API_CALL_METHOD_ENUMPLUGINS, ], \iPageUIBlockExtension::class => [ \iPageUIBlockExtension::class, static::ENUM_API_CALL_METHOD_ENUMPLUGINS, ], \iBackofficeLinkedScriptsExtension::class => [ \iBackofficeLinkedScriptsExtension::class, static::ENUM_API_CALL_METHOD_ENUMPLUGINS, ], \iBackofficeEarlyScriptExtension::class => [ \iBackofficeEarlyScriptExtension::class, static::ENUM_API_CALL_METHOD_ENUMPLUGINS, ], \iBackofficeScriptExtension::class => [ \iBackofficeScriptExtension::class, static::ENUM_API_CALL_METHOD_ENUMPLUGINS, ], \iBackofficeInitScriptExtension::class => [ \iBackofficeInitScriptExtension::class, static::ENUM_API_CALL_METHOD_ENUMPLUGINS, ], \iBackofficeReadyScriptExtension::class => [ \iBackofficeReadyScriptExtension::class, static::ENUM_API_CALL_METHOD_ENUMPLUGINS, ], \iBackofficeLinkedStylesheetsExtension::class => [ \iBackofficeLinkedStylesheetsExtension::class, static::ENUM_API_CALL_METHOD_ENUMPLUGINS, ], \iBackofficeStyleExtension::class => [ \iBackofficeStyleExtension::class, static::ENUM_API_CALL_METHOD_ENUMPLUGINS, ], \iBackofficeSassExtension::class => [ \iBackofficeSassExtension::class, static::ENUM_API_CALL_METHOD_ENUMPLUGINS, ], \iBackofficeDictEntriesExtension::class => [ \iBackofficeDictEntriesExtension::class, static::ENUM_API_CALL_METHOD_ENUMPLUGINS, ], \iBackofficeDictEntriesPrefixesExtension::class => [ \iBackofficeDictEntriesPrefixesExtension::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, ], ]; } }