diff --git a/tests/php-unit-tests/unitary-tests/application/applicationextension/ApplicationExtensionTest.php b/tests/php-unit-tests/unitary-tests/application/applicationextension/ApplicationExtensionTest.php index 9cc48611c..30d2341f1 100644 --- a/tests/php-unit-tests/unitary-tests/application/applicationextension/ApplicationExtensionTest.php +++ b/tests/php-unit-tests/unitary-tests/application/applicationextension/ApplicationExtensionTest.php @@ -28,186 +28,6 @@ class ApplicationExtensionTest extends ItopCustomDatamodelTestCase return __DIR__ . '/Delta/application-extension-usages-in-snippets.xml'; } - /** - * TODO: remove when the refactoring is done - */ - public function testInterfaceDiscovery(): void - { - $oInterfaceDiscoveryService = InterfaceDiscovery::GetInstance(); - - $this->AssertArraysHaveSameItems( - [ - 0 => 'Combodo\iTop\Application\UI\Base\Component\Alert\AlertUIBlockFactory', - 1 => 'Combodo\iTop\Application\UI\Base\Component\ButtonGroup\ButtonGroupUIBlockFactory', - 2 => 'Combodo\iTop\Application\UI\Base\Component\Button\ButtonUIBlockFactory', - 3 => 'Combodo\iTop\Application\UI\Base\Component\CollapsibleSection\CollapsibleSectionUIBlockFactory', - 4 => 'Combodo\iTop\Application\UI\Base\Component\DataTable\DataTableUIBlockFactory', - 5 => 'Combodo\iTop\Application\UI\Base\Component\FieldBadge\FieldBadgeUIBlockFactory', - 6 => 'Combodo\iTop\Application\UI\Base\Component\FieldSet\FieldSetUIBlockFactory', - 7 => 'Combodo\iTop\Application\UI\Base\Component\Field\FieldUIBlockFactory', - 8 => 'Combodo\iTop\Application\UI\Base\Component\Form\FormUIBlockFactory', - 9 => 'Combodo\iTop\Application\UI\Base\Component\Input\FileSelect\FileSelectUIBlockFactory', - 10 => 'Combodo\iTop\Application\UI\Base\Component\Input\InputUIBlockFactory', - 11 => 'Combodo\iTop\Application\UI\Base\Component\Input\Select\SelectOptionUIBlockFactory', - 12 => 'Combodo\iTop\Application\UI\Base\Component\Input\Select\SelectUIBlockFactory', - 13 => 'Combodo\iTop\Application\UI\Base\Component\Input\Set\SetUIBlockFactory', - 14 => 'Combodo\iTop\Application\UI\Base\Component\Panel\PanelUIBlockFactory', - 15 => 'Combodo\iTop\Application\UI\Base\Component\Spinner\SpinnerUIBlockFactory', - 16 => 'Combodo\iTop\Application\UI\Base\Component\Template\TemplateUIBlockFactory', - 17 => 'Combodo\iTop\Application\UI\Base\Component\Title\TitleUIBlockFactory', - 18 => 'Combodo\iTop\Application\UI\Base\Component\Toolbar\Separator\ToolbarSeparatorUIBlockFactory', - 19 => 'Combodo\iTop\Application\UI\Base\Component\Toolbar\ToolbarSpacer\ToolbarSpacerUIBlockFactory', - 20 => 'Combodo\iTop\Application\UI\Base\Component\Toolbar\ToolbarUIBlockFactory', - 21 => 'Combodo\iTop\Application\UI\Base\Layout\MultiColumn\Column\ColumnUIBlockFactory', - 22 => 'Combodo\iTop\Application\UI\Base\Layout\MultiColumn\MultiColumnUIBlockFactory', - 23 => 'Combodo\iTop\Application\UI\Base\Layout\UIContentBlockUIBlockFactory', - 24 => 'Combodo\iTop\Application\UI\Links\Set\LinkSetUIBlockFactory', - ], - $oInterfaceDiscoveryService->FindItopClasses(iUIBlockFactory::class) - ); - } - - /** - * Protection test for Refactoring - * TODO: This test should be removed when the refactoring is done - * @--data--Provider HardcodedImplementationsProvider - */ - public function testGetClassesForInterfaceReturnsExactlySomething() - { - foreach ($this->InterfaceToExpectedClasses() as $sInterface => $aExpectedClasses) { - $aClasses = utils::GetClassesForInterface($sInterface, '', ['[\\\\/]lib[\\\\/]', '[\\\\/]node_modules[\\\\/]', '[\\\\/]test[\\\\/]', '[\\\\/]tests[\\\\/]']); - $this->AssertArraysHaveSameItems($aExpectedClasses, $aClasses, "Found unexpected classes extending the '$sInterface' API"); - } - } - - public function InterfaceToExpectedClasses(): array - { - return [ - \iFieldRendererMappingsExtension::class => [ - 'ExampleFor_iFieldRendererMappingsExtension', - 'Combodo\iTop\Renderer\Bootstrap\BsFieldRendererMappings', - 'Combodo\iTop\Renderer\Console\ConsoleFieldRendererMappings', - ], - \iNewsroomProvider::class => [ - 'ExampleFor_iNewsroomProvider', - 'HubNewsroomProvider', - 'Combodo\iTop\Application\Newsroom\iTopNewsroomProvider', - ], - \iBackupExtraFilesExtension::class => [ - 'ExampleFor_iBackupExtraFilesExtension', - ], - \Combodo\iTop\Application\UI\Base\iUIBlockFactory::class => [ - 0 => 'Combodo\iTop\Application\UI\Base\Component\Input\Select\SelectUIBlockFactory', - 2 => 'Combodo\iTop\Application\UI\Base\Component\Alert\AlertUIBlockFactory', - 3 => 'Combodo\iTop\Application\UI\Base\Component\ButtonGroup\ButtonGroupUIBlockFactory', - 4 => 'Combodo\iTop\Application\UI\Base\Component\Button\ButtonUIBlockFactory', - 5 => 'Combodo\iTop\Application\UI\Base\Component\CollapsibleSection\CollapsibleSectionUIBlockFactory', - 6 => 'Combodo\iTop\Application\UI\Base\Component\DataTable\DataTableUIBlockFactory', - 7 => 'Combodo\iTop\Application\UI\Base\Component\FieldBadge\FieldBadgeUIBlockFactory', - 8 => 'Combodo\iTop\Application\UI\Base\Component\FieldSet\FieldSetUIBlockFactory', - 9 => 'Combodo\iTop\Application\UI\Base\Component\Field\FieldUIBlockFactory', - 10 => 'Combodo\iTop\Application\UI\Base\Component\Form\FormUIBlockFactory', - 11 => 'Combodo\iTop\Application\UI\Base\Component\Input\FileSelect\FileSelectUIBlockFactory', - 12 => 'Combodo\iTop\Application\UI\Base\Component\Input\InputUIBlockFactory', - 13 => 'Combodo\iTop\Application\UI\Base\Component\Input\Select\SelectOptionUIBlockFactory', - 14 => 'Combodo\iTop\Application\UI\Base\Component\Input\Set\SetUIBlockFactory', - 15 => 'Combodo\iTop\Application\UI\Base\Component\Panel\PanelUIBlockFactory', - 16 => 'Combodo\iTop\Application\UI\Base\Component\Spinner\SpinnerUIBlockFactory', - 17 => 'Combodo\iTop\Application\UI\Base\Component\Template\TemplateUIBlockFactory', - 18 => 'Combodo\iTop\Application\UI\Base\Component\Title\TitleUIBlockFactory', - 19 => 'Combodo\iTop\Application\UI\Base\Component\Toolbar\Separator\ToolbarSeparatorUIBlockFactory', - 20 => 'Combodo\iTop\Application\UI\Base\Component\Toolbar\ToolbarSpacer\ToolbarSpacerUIBlockFactory', - 21 => 'Combodo\iTop\Application\UI\Base\Component\Toolbar\ToolbarUIBlockFactory', - 22 => 'Combodo\iTop\Application\UI\Base\Layout\MultiColumn\Column\ColumnUIBlockFactory', - 23 => 'Combodo\iTop\Application\UI\Base\Layout\MultiColumn\MultiColumnUIBlockFactory', - 24 => 'Combodo\iTop\Application\UI\Base\Layout\UIContentBlockUIBlockFactory', - 25 => 'Combodo\iTop\Application\UI\Links\Set\LinkSetUIBlockFactory', - ], - \Combodo\iTop\Controller\iController::class => [ - 0 => 'Combodo\iTop\CoreUpdate\Controller\UpdateController', - 1 => 'Combodo\iTop\CoreUpdate\Controller\AjaxController', - 2 => 'Combodo\iTop\Controller\Base\Layout\ActivityPanelController', - 3 => 'Combodo\iTop\Controller\Base\Layout\ObjectController', - 4 => 'Combodo\iTop\Controller\Links\LinkSetController', - 5 => 'Combodo\iTop\Controller\Newsroom\iTopNewsroomController', - 6 => 'Combodo\iTop\Controller\Notifications\ActionController', - 7 => 'Combodo\iTop\Controller\Notifications\NotificationsCenterController', - 8 => 'Combodo\iTop\Controller\OAuth\OAuthLandingController', - 9 => 'Combodo\iTop\Controller\PreferencesController', - 10 => 'Combodo\iTop\Controller\TemporaryObjects\TemporaryObjectController', - 11 => 'Combodo\iTop\Controller\WelcomePopupController', - 12 => 'Combodo\iTop\OAuthClient\Controller\AjaxOauthClientController', - 13 => 'Combodo\iTop\OAuthClient\Controller\OAuthClientController', - ], - \Combodo\iTop\Application\UI\Hook\iKeyboardShortcut::class => [ - 0 => 'Combodo\iTop\Application\UI\Base\Component\GlobalSearch\GlobalSearch', - 1 => 'Combodo\iTop\Application\UI\Base\Component\QuickCreate\QuickCreate', - 2 => 'Combodo\iTop\Application\UI\Base\Layout\NavigationMenu\NavigationMenu', - 3 => 'Combodo\iTop\Application\UI\Base\Layout\Object\ObjectDetails', - 4 => 'Combodo\iTop\Application\UI\Base\Layout\Object\ObjectSummary', - ], - \Combodo\iTop\Service\Events\iEventServiceSetup::class => [ - 0 => 'Combodo\iTop\Application\EventRegister\ApplicationEvents', - 1 => 'Combodo\iTop\Core\EventListener\AttributeBlobEventListener', - 2 => 'Combodo\iTop\Service\TemporaryObjects\TemporaryObjectsEvents', - 3 => 'Combodo\iTop\Attachments\Hook\EventListener', - ], - \iWelcomePopupExtension::class => [ - 'Combodo\iTop\Application\WelcomePopup\Provider\DefaultProvider' - ], - \iProcess::class => [ - 0 => 'BackupExec', - 1 => 'BulkExportResultGC', - 2 => 'CheckStopWatchThresholds', - 3 => 'Combodo\iTop\Service\Notification\Event\EventNotificationNewsroomGC', - 4 => 'Combodo\iTop\Service\TemporaryObjects\TemporaryObjectGC', - 5 => 'Combodo\iTop\SessionTracker\SessionGC', - 6 => 'ExecAsyncTask', - 7 => 'InlineImageGC', - 8 => 'LogFileRotationProcess', - 9 => 'ObsolescenceDateUpdater', - ] - ]; - } - - /** - * TODO: This test should be removed when the refactoring is done - * Protection of the use case UIBlockExtension::getTokenParsers(), which uses a filter on the class, and does not exclude any directories - */ - public function testVerySpecificCallToGetClassesForInterfaces() - { - $this->AssertArraysHaveSameItems( - [ - 0 => 'Combodo\iTop\Application\UI\Base\Component\Alert\AlertUIBlockFactory', - 1 => 'Combodo\iTop\Application\UI\Base\Component\ButtonGroup\ButtonGroupUIBlockFactory', - 2 => 'Combodo\iTop\Application\UI\Base\Component\Button\ButtonUIBlockFactory', - 3 => 'Combodo\iTop\Application\UI\Base\Component\CollapsibleSection\CollapsibleSectionUIBlockFactory', - 4 => 'Combodo\iTop\Application\UI\Base\Component\DataTable\DataTableUIBlockFactory', - 5 => 'Combodo\iTop\Application\UI\Base\Component\FieldBadge\FieldBadgeUIBlockFactory', - 6 => 'Combodo\iTop\Application\UI\Base\Component\FieldSet\FieldSetUIBlockFactory', - 7 => 'Combodo\iTop\Application\UI\Base\Component\Field\FieldUIBlockFactory', - 8 => 'Combodo\iTop\Application\UI\Base\Component\Form\FormUIBlockFactory', - 9 => 'Combodo\iTop\Application\UI\Base\Component\Input\FileSelect\FileSelectUIBlockFactory', - 10 => 'Combodo\iTop\Application\UI\Base\Component\Input\InputUIBlockFactory', - 11 => 'Combodo\iTop\Application\UI\Base\Component\Input\Select\SelectOptionUIBlockFactory', - 12 => 'Combodo\iTop\Application\UI\Base\Component\Input\Select\SelectUIBlockFactory', - 13 => 'Combodo\iTop\Application\UI\Base\Component\Input\Set\SetUIBlockFactory', - 14 => 'Combodo\iTop\Application\UI\Base\Component\Panel\PanelUIBlockFactory', - 15 => 'Combodo\iTop\Application\UI\Base\Component\Spinner\SpinnerUIBlockFactory', - 16 => 'Combodo\iTop\Application\UI\Base\Component\Template\TemplateUIBlockFactory', - 17 => 'Combodo\iTop\Application\UI\Base\Component\Title\TitleUIBlockFactory', - 18 => 'Combodo\iTop\Application\UI\Base\Component\Toolbar\Separator\ToolbarSeparatorUIBlockFactory', - 19 => 'Combodo\iTop\Application\UI\Base\Component\Toolbar\ToolbarSpacer\ToolbarSpacerUIBlockFactory', - 20 => 'Combodo\iTop\Application\UI\Base\Component\Toolbar\ToolbarUIBlockFactory', - 21 => 'Combodo\iTop\Application\UI\Base\Layout\MultiColumn\Column\ColumnUIBlockFactory', - 22 => 'Combodo\iTop\Application\UI\Base\Layout\MultiColumn\MultiColumnUIBlockFactory', - 23 => 'Combodo\iTop\Application\UI\Base\Layout\UIContentBlockUIBlockFactory', - 24 => 'Combodo\iTop\Application\UI\Links\Set\LinkSetUIBlockFactory', - ], - utils::GetClassesForInterface(iUIBlockFactory::class, 'UIBlockFactory') - ); - } - /** * This test ensures that APIs are discovered / registered / called. *