diff --git a/Build/phpstan/phpstan-baseline.neon b/Build/phpstan/phpstan-baseline.neon index 83dc831b781a5e75673dc53d567a45541bff31a3..b332e03d2b5dcf80d6f098669157c3e3dfdd1dd5 100644 --- a/Build/phpstan/phpstan-baseline.neon +++ b/Build/phpstan/phpstan-baseline.neon @@ -1681,7 +1681,7 @@ parameters: path: ../../typo3/sysext/extbase/Tests/Unit/Mvc/Controller/MvcPropertyMappingConfigurationServiceTest.php - - message: "#^Property class@anonymous/extbase/Tests/Unit/Mvc/View/JsonViewTest\\.php\\:106\\:\\:\\$prohibited is unused\\.$#" + message: "#^Property class@anonymous/extbase/Tests/Unit/Mvc/View/JsonViewTest\\.php\\:108\\:\\:\\$prohibited is unused\\.$#" count: 1 path: ../../typo3/sysext/extbase/Tests/Unit/Mvc/View/JsonViewTest.php diff --git a/typo3/sysext/adminpanel/Tests/Unit/Middleware/AdminPanelInitiatorTest.php b/typo3/sysext/adminpanel/Tests/Unit/Middleware/AdminPanelInitiatorTest.php index ef62c9041f9d3e21891ff4724a983a73da0e716a..094a314443e01289eff0b0ad69d26e8c60c9059f 100644 --- a/typo3/sysext/adminpanel/Tests/Unit/Middleware/AdminPanelInitiatorTest.php +++ b/typo3/sysext/adminpanel/Tests/Unit/Middleware/AdminPanelInitiatorTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Adminpanel\Tests\Unit\Middleware; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; @@ -29,9 +30,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class AdminPanelInitiatorTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function processCallsInitialize(): void { $tsConfig = [ @@ -62,9 +61,7 @@ final class AdminPanelInitiatorTest extends UnitTestCase $adminPanelInitiator->process($request, $handler); } - /** - * @test - */ + #[Test] public function processDoesNotCallInitializeIfAdminPanelIsNotEnabledInUC(): void { $tsConfig = [ @@ -82,9 +79,7 @@ final class AdminPanelInitiatorTest extends UnitTestCase $this->checkAdminPanelDoesNotCallInitialize($tsConfig, $uc); } - /** - * @test - */ + #[Test] public function processDoesNotCallInitializeIfNoAdminPanelModuleIsEnabled(): void { $tsConfig = [ diff --git a/typo3/sysext/adminpanel/Tests/Unit/Modules/PreviewModuleTest.php b/typo3/sysext/adminpanel/Tests/Unit/Modules/PreviewModuleTest.php index 1b6e361eab4af17783e29c7f515c0dd7e64891f7..8eb5c008259785b69ea5a1b239d68d33ced7cb89 100644 --- a/typo3/sysext/adminpanel/Tests/Unit/Modules/PreviewModuleTest.php +++ b/typo3/sysext/adminpanel/Tests/Unit/Modules/PreviewModuleTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Adminpanel\Tests\Unit\Modules; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Adminpanel\Modules\PreviewModule; use TYPO3\CMS\Adminpanel\Service\ConfigurationService; use TYPO3\CMS\Core\Context\Context; @@ -45,10 +47,8 @@ final class PreviewModuleTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider simulateDateDataProvider - */ + #[DataProvider('simulateDateDataProvider')] + #[Test] public function initializeFrontendPreviewSetsDateForSimulation(string $dateToSimulate, int $expectedExecTime, int $expectedAccessTime): void { $configurationService = $this->getMockBuilder(ConfigurationService::class)->disableOriginalConstructor()->getMock(); @@ -71,9 +71,7 @@ final class PreviewModuleTest extends UnitTestCase self::assertSame($GLOBALS['SIM_ACCESS_TIME'], $expectedAccessTime, 'ACCESS_TIME'); } - /** - * @test - */ + #[Test] public function initializeFrontendPreviewSetsUserGroupForSimulation(): void { $request = (new ServerRequest())->withAttribute('frontend.user', $this->getMockBuilder(FrontendUserAuthentication::class)->getMock()); diff --git a/typo3/sysext/adminpanel/Tests/Unit/Service/ConfigurationServiceTest.php b/typo3/sysext/adminpanel/Tests/Unit/Service/ConfigurationServiceTest.php index 93c29777959c98e914ceb023b825ecd270d5b972..1b07e45b6a862347c32d56f66761ba703390f48e 100644 --- a/typo3/sysext/adminpanel/Tests/Unit/Service/ConfigurationServiceTest.php +++ b/typo3/sysext/adminpanel/Tests/Unit/Service/ConfigurationServiceTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Adminpanel\Tests\Unit\Service; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use Psr\Http\Message\ServerRequestInterface; use TYPO3\CMS\Adminpanel\Service\ConfigurationService; @@ -36,9 +38,7 @@ final class ConfigurationServiceTest extends UnitTestCase $GLOBALS['BE_USER'] = $this->beUser; } - /** - * @test - */ + #[Test] public function getMainConfigurationReturnsTsConfigFromUser(): void { $userTsAdmPanelConfig = [ @@ -54,9 +54,7 @@ final class ConfigurationServiceTest extends UnitTestCase self::assertSame($userTsAdmPanelConfig, $result); } - /** - * @test - */ + #[Test] public function getConfigurationOptionReturnsEmptyStringIfNoConfigurationFound(): void { $configurationService = new ConfigurationService(); @@ -64,9 +62,7 @@ final class ConfigurationServiceTest extends UnitTestCase self::assertSame('', $result); } - /** - * @test - */ + #[Test] public function getConfigurationOptionReturnsOverrideOptionIfSet(): void { $this->setUpUserTsConfigForAdmPanel( @@ -85,9 +81,7 @@ final class ConfigurationServiceTest extends UnitTestCase self::assertSame('1', $result); } - /** - * @test - */ + #[Test] public function getConfigurationOptionCastsResultToString(): void { $this->setUpUserTsConfigForAdmPanel( @@ -124,10 +118,8 @@ final class ConfigurationServiceTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider getConfigurationOptionEmptyArgumentDataProvider - */ + #[DataProvider('getConfigurationOptionEmptyArgumentDataProvider')] + #[Test] public function getConfigurationOptionThrowsExceptionOnEmptyArgument(string $identifier, string $option): void { $this->expectException(\InvalidArgumentException::class); @@ -137,9 +129,7 @@ final class ConfigurationServiceTest extends UnitTestCase $configurationService->getConfigurationOption($identifier, $option); } - /** - * @test - */ + #[Test] public function getConfigurationOptionReturnsSettingFromUcIfNoOverrideGiven(): void { $this->setUpUserTsConfigForAdmPanel([]); @@ -155,9 +145,7 @@ final class ConfigurationServiceTest extends UnitTestCase self::assertSame('1', $result); } - /** - * @test - */ + #[Test] public function saveConfigurationTriggersOnSubmitOnEnabledModules(): void { $requestMock = $this->getMockBuilder(ServerRequestInterface::class)->getMock(); @@ -178,9 +166,7 @@ final class ConfigurationServiceTest extends UnitTestCase $configurationService->saveConfiguration($modules, $requestMock); } - /** - * @test - */ + #[Test] public function saveConfigurationSavesMergedExistingAndNewConfiguration(): void { // existing configuration from UC diff --git a/typo3/sysext/adminpanel/Tests/Unit/Service/ModuleLoaderTest.php b/typo3/sysext/adminpanel/Tests/Unit/Service/ModuleLoaderTest.php index 4ba686f5e84409bbef1785757f4d3dd855f7ed70..006e6706e0387b9e17a50b0e0e82a6b58f144d0c 100644 --- a/typo3/sysext/adminpanel/Tests/Unit/Service/ModuleLoaderTest.php +++ b/typo3/sysext/adminpanel/Tests/Unit/Service/ModuleLoaderTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Adminpanel\Tests\Unit\Service; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Adminpanel\Service\ModuleLoader; use TYPO3\CMS\Adminpanel\Tests\Unit\Fixtures\DisabledMainModuleFixture; use TYPO3\CMS\Adminpanel\Tests\Unit\Fixtures\MainModuleFixture; @@ -26,9 +28,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ModuleLoaderTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function validateSortAndInitializeModulesReturnsEmptyArrayIfNoModulesAreConfigured(): void { $moduleLoader = new ModuleLoader(); @@ -45,10 +45,8 @@ final class ModuleLoaderTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider missingConfigurationDataProvider - */ + #[DataProvider('missingConfigurationDataProvider')] + #[Test] public function validateSortAndInitializeModulesThrowsExceptionIfModuleHasMissingConfiguration(array $configuration): void { $this->expectException(\RuntimeException::class); @@ -84,10 +82,8 @@ final class ModuleLoaderTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider invalidConfigurationDataProvider - */ + #[DataProvider('invalidConfigurationDataProvider')] + #[Test] public function validateSortAndInitializeModulesThrowsExceptionIfModuleHasInvalidConfiguration(array $configuration): void { $this->expectException(\RuntimeException::class); @@ -97,9 +93,7 @@ final class ModuleLoaderTest extends UnitTestCase $moduleLoader->validateSortAndInitializeModules($configuration); } - /** - * @test - */ + #[Test] public function validateSortAndInitializeModulesOrdersModulesWithDependencyOrderingService(): void { $config = [ @@ -117,9 +111,7 @@ final class ModuleLoaderTest extends UnitTestCase $moduleLoader->validateSortAndInitializeModules($config); } - /** - * @test - */ + #[Test] public function validateSortAndInitializeModulesInstantiatesMainModulesOnlyIfEnabled(): void { $config = [ diff --git a/typo3/sysext/adminpanel/Tests/Unit/Utility/StateUtilityTest.php b/typo3/sysext/adminpanel/Tests/Unit/Utility/StateUtilityTest.php index 13551dec7a81498c1d527a456207188fd2236c89..36ce074b0811e5df63fd47ae18ae15e0d0e180c9 100644 --- a/typo3/sysext/adminpanel/Tests/Unit/Utility/StateUtilityTest.php +++ b/typo3/sysext/adminpanel/Tests/Unit/Utility/StateUtilityTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Adminpanel\Tests\Unit\Utility; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Adminpanel\Utility\StateUtility; use TYPO3\CMS\Backend\FrontendBackendUserAuthentication; use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; @@ -24,9 +26,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class StateUtilityTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function isEnabledReturnsFalseIfNoBackendUserExists(): void { $GLOBALS['BE_USER'] = false; @@ -34,9 +34,7 @@ final class StateUtilityTest extends UnitTestCase self::assertFalse($isEnabled); } - /** - * @test - */ + #[Test] public function isEnabledReturnsFalseIfNoBackendUserInFrontendContextIsLoggedIn(): void { $GLOBALS['BE_USER'] = $this->getMockBuilder(BackendUserAuthentication::class)->disableOriginalConstructor()->getMock(); @@ -68,10 +66,8 @@ final class StateUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider tsConfigEnabledDataProvider - */ + #[DataProvider('tsConfigEnabledDataProvider')] + #[Test] public function isEnabledReturnsTrueIfAtLeastOneModuleIsEnabled(array $tsConfig): void { $beUserMock = $this->getMockBuilder(FrontendBackendUserAuthentication::class)->disableOriginalConstructor()->getMock(); @@ -104,10 +100,8 @@ final class StateUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider tsConfigDisabledDataProvider - */ + #[DataProvider('tsConfigDisabledDataProvider')] + #[Test] public function isEnabledReturnsFalseIfNoModulesEnabled(array $tsConfig): void { $beUserMock = $this->getMockBuilder(FrontendBackendUserAuthentication::class)->disableOriginalConstructor()->getMock(); @@ -143,10 +137,8 @@ final class StateUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider tsConfigHideDataProvider - */ + #[DataProvider('tsConfigHideDataProvider')] + #[Test] public function isHiddenForUserReturnsCorrectValue(array $tsConfig, bool $expected): void { $beUserMock = $this->getMockBuilder(FrontendBackendUserAuthentication::class)->disableOriginalConstructor()->getMock(); @@ -156,9 +148,7 @@ final class StateUtilityTest extends UnitTestCase self::assertSame($expected, $isEnabled); } - /** - * @test - */ + #[Test] public function isHiddenForUserReturnsFalseIfUserIsNotAvailable(): void { $GLOBALS['BE_USER'] = null; @@ -192,10 +182,8 @@ final class StateUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider ucDisplayOpenDataProvider - */ + #[DataProvider('ucDisplayOpenDataProvider')] + #[Test] public function isOpenForUserReturnsCorrectValue(array $uc, bool $expected): void { $beUser = new FrontendBackendUserAuthentication(); @@ -205,9 +193,7 @@ final class StateUtilityTest extends UnitTestCase self::assertSame($expected, $isOpen); } - /** - * @test - */ + #[Test] public function isOpenForUserReturnsFalseIfUserIsNotAvailable(): void { $GLOBALS['BE_USER'] = null; @@ -241,10 +227,8 @@ final class StateUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider typoScriptDataProvider - */ + #[DataProvider('typoScriptDataProvider')] + #[Test] public function isActivatedInTypoScriptReturnsCorrectValue(array $typoScript, bool $expected): void { $tsfe = new \stdClass(); diff --git a/typo3/sysext/backend/Tests/Unit/Configuration/BackendUserConfigurationTest.php b/typo3/sysext/backend/Tests/Unit/Configuration/BackendUserConfigurationTest.php index 66b486e001ea83ea96b80a1900c8c46cc03f3c34..3581a27519acb600e1452724ca0b14b1affc6e69 100644 --- a/typo3/sysext/backend/Tests/Unit/Configuration/BackendUserConfigurationTest.php +++ b/typo3/sysext/backend/Tests/Unit/Configuration/BackendUserConfigurationTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Configuration; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Backend\Configuration\BackendUserConfiguration; use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; @@ -34,9 +35,7 @@ final class BackendUserConfigurationTest extends UnitTestCase $this->backendUserConfiguration = new BackendUserConfiguration($this->backendUserMock); } - /** - * @test - */ + #[Test] public function getsConfiguration(): void { $this->backendUserMock->uc = [ @@ -50,9 +49,7 @@ final class BackendUserConfigurationTest extends UnitTestCase self::assertEquals('B', $this->backendUserConfiguration->get('nested.key')); } - /** - * @test - */ + #[Test] public function getsAllConfiguration(): void { $configuration = [ @@ -64,9 +61,7 @@ final class BackendUserConfigurationTest extends UnitTestCase self::assertEquals($configuration, $this->backendUserConfiguration->getAll()); } - /** - * @test - */ + #[Test] public function setsConfiguration(): void { $this->backendUserMock->uc = [ @@ -89,9 +84,7 @@ final class BackendUserConfigurationTest extends UnitTestCase self::assertEquals($expected, $this->backendUserMock->uc); } - /** - * @test - */ + #[Test] public function addsToListConfigurationOption(): void { $this->backendUserMock->uc = [ @@ -116,9 +109,7 @@ final class BackendUserConfigurationTest extends UnitTestCase self::assertEquals($expected, $this->backendUserMock->uc); } - /** - * @test - */ + #[Test] public function removesFromListConfigurationOption(): void { $this->backendUserMock->uc = [ @@ -142,18 +133,14 @@ final class BackendUserConfigurationTest extends UnitTestCase self::assertEquals($expected, $this->backendUserMock->uc); } - /** - * @test - */ + #[Test] public function clearsConfiguration(): void { $this->backendUserMock->expects(self::atLeastOnce())->method('resetUC'); $this->backendUserConfiguration->clear(); } - /** - * @test - */ + #[Test] public function unsetsConfigurationOption(): void { $this->backendUserMock->uc = [ diff --git a/typo3/sysext/backend/Tests/Unit/Configuration/TranslationConfigurationProviderTest.php b/typo3/sysext/backend/Tests/Unit/Configuration/TranslationConfigurationProviderTest.php index b1172f0e9adc9b9b4633aa154a79193efab55ed7..3ed66a7adb6280ec2ba55e56a7e95b50567ece70 100644 --- a/typo3/sysext/backend/Tests/Unit/Configuration/TranslationConfigurationProviderTest.php +++ b/typo3/sysext/backend/Tests/Unit/Configuration/TranslationConfigurationProviderTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Configuration; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Configuration\TranslationConfigurationProvider; use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; use TYPO3\CMS\Core\Localization\LanguageService; @@ -40,9 +41,7 @@ final class TranslationConfigurationProviderTest extends UnitTestCase $GLOBALS['LANG'] = $this->createMock(LanguageService::class); } - /** - * @test - */ + #[Test] public function defaultLanguageIsAlwaysReturned(): void { $languageService = $this->createMock(LanguageService::class); @@ -58,9 +57,7 @@ final class TranslationConfigurationProviderTest extends UnitTestCase self::assertArrayHasKey(0, $languages); } - /** - * @test - */ + #[Test] public function getSystemLanguagesAggregatesLanguagesOfAllSitesForRootLevel(): void { $siteFinderMock = $this->createMock(SiteFinder::class); @@ -70,9 +67,7 @@ final class TranslationConfigurationProviderTest extends UnitTestCase self::assertCount(3, $languages); } - /** - * @test - */ + #[Test] public function getSystemLanguagesConcatenatesTitlesOfLanguagesForRootLevel(): void { $siteFinderMock = $this->createMock(SiteFinder::class); diff --git a/typo3/sysext/backend/Tests/Unit/Controller/EditDocumentControllerTest.php b/typo3/sysext/backend/Tests/Unit/Controller/EditDocumentControllerTest.php index 7ba17662d0725e70886f1789d5a8a805db4d5d5b..ac2ff665ceaacc90f6a097f08e02385fde5f8293 100644 --- a/typo3/sysext/backend/Tests/Unit/Controller/EditDocumentControllerTest.php +++ b/typo3/sysext/backend/Tests/Unit/Controller/EditDocumentControllerTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Controller; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Controller\EditDocumentController; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -24,10 +26,8 @@ final class EditDocumentControllerTest extends UnitTestCase { protected bool $resetSingletonInstances = true; - /** - * @test - * @dataProvider slugDependentFieldsAreAddedToColumnsOnlyDataProvider - */ + #[DataProvider('slugDependentFieldsAreAddedToColumnsOnlyDataProvider')] + #[Test] public function slugDependentFieldsAreAddedToColumnsOnly(string $result, string $selectedFields, string $tableName, array $configuration): void { $GLOBALS['TCA'][$tableName]['columns'] = $configuration; @@ -115,10 +115,8 @@ final class EditDocumentControllerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider resolvePreviewRecordIdDataProvider - */ + #[DataProvider('resolvePreviewRecordIdDataProvider')] + #[Test] public function resolvePreviewRecordIdReturnsExpectedUid(int $expected, array $previewConfiguration): void { $recordArray = ['uid' => 2, 'l10n_parent' => 1]; @@ -148,10 +146,8 @@ final class EditDocumentControllerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider resolvePreviewRecordIdForNonTranslatableTableDataProvider - */ + #[DataProvider('resolvePreviewRecordIdForNonTranslatableTableDataProvider')] + #[Test] public function resolvePreviewRecordIdReturnsExpectedUidForNonTranslatableTable(int $expected, array $previewConfiguration): void { $recordArray = ['uid' => 2]; diff --git a/typo3/sysext/backend/Tests/Unit/Controller/Event/AfterPageTreeItemsPreparedEventTest.php b/typo3/sysext/backend/Tests/Unit/Controller/Event/AfterPageTreeItemsPreparedEventTest.php index 1676c8770ef8640723402e45e18909898660f29a..9d914546265a2e7b829ee3ce0f161f1493875491 100644 --- a/typo3/sysext/backend/Tests/Unit/Controller/Event/AfterPageTreeItemsPreparedEventTest.php +++ b/typo3/sysext/backend/Tests/Unit/Controller/Event/AfterPageTreeItemsPreparedEventTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Controller\Event; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Controller\Event\AfterPageTreeItemsPreparedEvent; use TYPO3\CMS\Core\Http\ServerRequest; use TYPO3\CMS\Core\Http\Uri; @@ -24,9 +25,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class AfterPageTreeItemsPreparedEventTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function gettersReturnInitializedObjects(): void { $request = new ServerRequest(new Uri('https://example.com')); diff --git a/typo3/sysext/backend/Tests/Unit/Controller/Event/ModifyNewContentElementWizardItemsEventTest.php b/typo3/sysext/backend/Tests/Unit/Controller/Event/ModifyNewContentElementWizardItemsEventTest.php index d2a7633e7d2cce60c4d26c87afba897fb44474d3..7631ad8198b99513bdfd3ee75098f2b0283c21f2 100644 --- a/typo3/sysext/backend/Tests/Unit/Controller/Event/ModifyNewContentElementWizardItemsEventTest.php +++ b/typo3/sysext/backend/Tests/Unit/Controller/Event/ModifyNewContentElementWizardItemsEventTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Controller\Event; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Controller\Event\ModifyNewContentElementWizardItemsEvent; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -45,9 +47,7 @@ final class ModifyNewContentElementWizardItemsEventTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function wizardItemsModifyTest(): void { self::assertCount(3, $this->subject->getWizardItems()); @@ -214,10 +214,8 @@ final class ModifyNewContentElementWizardItemsEventTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider addWizardItemTestDataProvider - */ + #[DataProvider('addWizardItemTestDataProvider')] + #[Test] public function addWizardItemTest(string $identifier, array $configuration, array $position, array $expected): void { $this->subject->setWizardItem($identifier, $configuration, $position); diff --git a/typo3/sysext/backend/Tests/Unit/Controller/File/FileControllerTest.php b/typo3/sysext/backend/Tests/Unit/Controller/File/FileControllerTest.php index 24e2954ef5f77d67378fc360f4921caeeba49203..bf7a21c40a2736ec2a34ec52c8ec0afbcd7cd143 100644 --- a/typo3/sysext/backend/Tests/Unit/Controller/File/FileControllerTest.php +++ b/typo3/sysext/backend/Tests/Unit/Controller/File/FileControllerTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Controller\File; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Backend\Controller\File\FileController; use TYPO3\CMS\Backend\Routing\UriBuilder; @@ -48,9 +49,7 @@ final class FileControllerTest extends UnitTestCase $this->fileResourceMock->method('getParentFolder')->willReturn(null); } - /** - * @test - */ + #[Test] public function flattenResultDataValueReturnsAnythingElseAsIs(): void { $subject = $this->getAccessibleMock(FileController::class, ['init', 'main'], [], '', false); @@ -58,9 +57,7 @@ final class FileControllerTest extends UnitTestCase self::assertSame([], $subject->_call('flattenResultDataValue', [])); } - /** - * @test - */ + #[Test] public function flattenResultDataValueFlattensFile(): void { $iconFactoryMock = $this->createMock(IconFactory::class); @@ -92,9 +89,7 @@ final class FileControllerTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function processAjaxRequestDeleteProcessActuallyDoesNotChangeFileData(): void { $subject = $this->getAccessibleMock( @@ -114,9 +109,7 @@ final class FileControllerTest extends UnitTestCase $subject->processAjaxRequest(new ServerRequest()); } - /** - * @test - */ + #[Test] public function processAjaxRequestEditFileProcessActuallyDoesNotChangeFileData(): void { $subject = $this->getAccessibleMock( @@ -136,9 +129,7 @@ final class FileControllerTest extends UnitTestCase $subject->processAjaxRequest(new ServerRequest()); } - /** - * @test - */ + #[Test] public function processAjaxRequestReturnsStatus200IfNoErrorOccurs(): void { $subject = $this->getAccessibleMock( @@ -158,9 +149,7 @@ final class FileControllerTest extends UnitTestCase self::assertEquals(200, $response->getStatusCode()); } - /** - * @test - */ + #[Test] public function processAjaxRequestReturnsStatus500IfErrorOccurs(): void { $flashMessageService = new FlashMessageService(); diff --git a/typo3/sysext/backend/Tests/Unit/Controller/File/ThumbnailControllerTest.php b/typo3/sysext/backend/Tests/Unit/Controller/File/ThumbnailControllerTest.php index 87e093292e38dbae34691320e3722135b4eb52cb..0fc5790bdd2cf4f08271c7dec818e2e0a24c10e0 100644 --- a/typo3/sysext/backend/Tests/Unit/Controller/File/ThumbnailControllerTest.php +++ b/typo3/sysext/backend/Tests/Unit/Controller/File/ThumbnailControllerTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Controller\File; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Backend\Controller\File\ThumbnailController; use TYPO3\CMS\Core\Http\Response; @@ -52,10 +54,9 @@ final class ThumbnailControllerTest extends UnitTestCase /** * @param string|null $hmac - * - * @test - * @dataProvider exceptionIsThrownOnInvalidHMACDataProvider */ + #[DataProvider('exceptionIsThrownOnInvalidHMACDataProvider')] + #[Test] public function exceptionIsThrownOnInvalidHMAC(string $hmac = null): void { $this->expectException(\InvalidArgumentException::class); @@ -82,10 +83,9 @@ final class ThumbnailControllerTest extends UnitTestCase /** * @param array|null $parameters - * - * @test - * @dataProvider generateThumbnailIsInvokedDataProvider */ + #[DataProvider('generateThumbnailIsInvokedDataProvider')] + #[Test] public function generateThumbnailIsInvoked(array $parameters = null): void { $this->subject->expects(self::once()) diff --git a/typo3/sysext/backend/Tests/Unit/Controller/FormInlineAjaxControllerTest.php b/typo3/sysext/backend/Tests/Unit/Controller/FormInlineAjaxControllerTest.php index 1a8433685e67a2cb3d78ce89d8c74772d474c4d7..db7bde71f90871e38cf974fb55ca351e719db161 100644 --- a/typo3/sysext/backend/Tests/Unit/Controller/FormInlineAjaxControllerTest.php +++ b/typo3/sysext/backend/Tests/Unit/Controller/FormInlineAjaxControllerTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Controller; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Controller\FormInlineAjaxController; use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; use TYPO3\CMS\Core\Http\ServerRequest; @@ -30,9 +31,7 @@ final class FormInlineAjaxControllerTest extends UnitTestCase $GLOBALS['TYPO3_CONF_VARS']['SYS']['encryptionKey'] = ''; } - /** - * @test - */ + #[Test] public function createActionThrowsExceptionIfContextIsEmpty(): void { $request = (new ServerRequest())->withQueryParams( @@ -47,9 +46,7 @@ final class FormInlineAjaxControllerTest extends UnitTestCase (new FormInlineAjaxController())->createAction($request); } - /** - * @test - */ + #[Test] public function createActionThrowsExceptionIfContextConfigSectionIsEmpty(): void { $request = (new ServerRequest())->withQueryParams( @@ -64,9 +61,7 @@ final class FormInlineAjaxControllerTest extends UnitTestCase (new FormInlineAjaxController())->createAction($request); } - /** - * @test - */ + #[Test] public function createActionThrowsExceptionIfContextConfigSectionDoesNotValidate(): void { $request = (new ServerRequest())->withQueryParams( @@ -88,9 +83,7 @@ final class FormInlineAjaxControllerTest extends UnitTestCase (new FormInlineAjaxController())->createAction($request); } - /** - * @test - */ + #[Test] public function detailsActionThrowsExceptionIfContextIsEmpty(): void { $request = (new ServerRequest())->withQueryParams( @@ -105,9 +98,7 @@ final class FormInlineAjaxControllerTest extends UnitTestCase (new FormInlineAjaxController())->detailsAction($request); } - /** - * @test - */ + #[Test] public function detailsActionThrowsExceptionIfContextConfigSectionIsEmpty(): void { $request = (new ServerRequest())->withQueryParams( @@ -122,9 +113,7 @@ final class FormInlineAjaxControllerTest extends UnitTestCase (new FormInlineAjaxController())->detailsAction($request); } - /** - * @test - */ + #[Test] public function detailsActionThrowsExceptionIfContextConfigSectionDoesNotValidate(): void { $request = (new ServerRequest())->withQueryParams( @@ -146,9 +135,7 @@ final class FormInlineAjaxControllerTest extends UnitTestCase (new FormInlineAjaxController())->detailsAction($request); } - /** - * @test - */ + #[Test] public function synchronizeLocalizeActionThrowsExceptionIfContextIsEmpty(): void { $request = (new ServerRequest())->withQueryParams( @@ -163,9 +150,7 @@ final class FormInlineAjaxControllerTest extends UnitTestCase (new FormInlineAjaxController())->synchronizeLocalizeAction($request); } - /** - * @test - */ + #[Test] public function synchronizeLocalizeActionThrowsExceptionIfContextConfigSectionIsEmpty(): void { $request = (new ServerRequest())->withQueryParams( @@ -180,9 +165,7 @@ final class FormInlineAjaxControllerTest extends UnitTestCase (new FormInlineAjaxController())->synchronizeLocalizeAction($request); } - /** - * @test - */ + #[Test] public function synchronizeLocalizeActionThrowsExceptionIfContextConfigSectionDoesNotValidate(): void { $request = (new ServerRequest())->withQueryParams( @@ -207,9 +190,8 @@ final class FormInlineAjaxControllerTest extends UnitTestCase /** * Fallback for IRRE items without inline view attribute * @see https://forge.typo3.org/issues/76561 - * - * @test */ + #[Test] public function getInlineExpandCollapseStateArraySwitchesToFallbackIfTheBackendUserDoesNotHaveAnUCInlineViewProperty(): void { $backendUser = $this->createMock(BackendUserAuthentication::class); @@ -230,9 +212,8 @@ final class FormInlineAjaxControllerTest extends UnitTestCase /** * Unserialize uc inline view string for IRRE item * @see https://forge.typo3.org/issues/76561 - * - * @test */ + #[Test] public function getInlineExpandCollapseStateArrayWillUnserializeUCInlineViewPropertyAsAnArrayWithData(): void { $backendUser = $this->createMock(BackendUserAuthentication::class); diff --git a/typo3/sysext/backend/Tests/Unit/Controller/FormSelectTreeAjaxControllerTest.php b/typo3/sysext/backend/Tests/Unit/Controller/FormSelectTreeAjaxControllerTest.php index 047b3624faff33764a312940b5743a2611188193..93c71e5fd47095d154b62aa29c93ab2c9dd7fd31 100644 --- a/typo3/sysext/backend/Tests/Unit/Controller/FormSelectTreeAjaxControllerTest.php +++ b/typo3/sysext/backend/Tests/Unit/Controller/FormSelectTreeAjaxControllerTest.php @@ -17,15 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Controller; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Controller\FormSelectTreeAjaxController; use TYPO3\CMS\Core\Http\ServerRequest; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class FormSelectTreeAjaxControllerTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function fetchDataActionThrowsExceptionIfTcaOfTableDoesNotExist(): void { $this->expectException(\RuntimeException::class); @@ -33,9 +32,7 @@ final class FormSelectTreeAjaxControllerTest extends UnitTestCase (new FormSelectTreeAjaxController())->fetchDataAction(new ServerRequest()); } - /** - * @test - */ + #[Test] public function fetchDataActionThrowsExceptionIfTcaOfTableFieldDoesNotExist(): void { $serverRequest = (new ServerRequest())->withQueryParams([ diff --git a/typo3/sysext/backend/Tests/Unit/Controller/LoginControllerTest.php b/typo3/sysext/backend/Tests/Unit/Controller/LoginControllerTest.php index 50eb00cd730d5aafb0a0f7989deb3e8c5216f428..571645e4e5ba9efe35da1ace7724391a795ecf00 100644 --- a/typo3/sysext/backend/Tests/Unit/Controller/LoginControllerTest.php +++ b/typo3/sysext/backend/Tests/Unit/Controller/LoginControllerTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Controller; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Controller\LoginController; use TYPO3\CMS\Backend\LoginProvider\LoginProviderResolver; use TYPO3\CMS\Backend\Routing\UriBuilder; @@ -37,9 +38,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class LoginControllerTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function checkRedirectRedirectsIfLoginIsInProgressAndUserWasFound(): void { $GLOBALS['LANG'] = $this->createMock(LanguageService::class); @@ -77,9 +76,7 @@ final class LoginControllerTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function checkRedirectDoesNotRedirectIfNoUserIsFound(): void { $GLOBALS['BE_USER'] = $this->createMock(BackendUserAuthentication::class); diff --git a/typo3/sysext/backend/Tests/Unit/Controller/SiteConfigurationControllerTest.php b/typo3/sysext/backend/Tests/Unit/Controller/SiteConfigurationControllerTest.php index 32bf25874abf7a913d4d060d7493939133983bae..c3d25f4c9b562cc1098d867e35e48439ce7d1ba5 100644 --- a/typo3/sysext/backend/Tests/Unit/Controller/SiteConfigurationControllerTest.php +++ b/typo3/sysext/backend/Tests/Unit/Controller/SiteConfigurationControllerTest.php @@ -17,15 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Controller; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Controller\SiteConfigurationController; use TYPO3\CMS\Core\Site\Entity\Site; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class SiteConfigurationControllerTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function duplicateEntryPointsAreRecognized(): void { $mockedSiteConfigurationController = $this->getAccessibleMock(SiteConfigurationController::class, null, [], '', false); @@ -127,9 +126,7 @@ final class SiteConfigurationControllerTest extends UnitTestCase self::assertEquals($expected, $mockedSiteConfigurationController->_call('getDuplicatedEntryPoints', $sites, $rootPages)); } - /** - * @test - */ + #[Test] public function languageBaseVariantsAreKept(): void { $mockedSiteConfigurationController = $this->getAccessibleMock(SiteConfigurationController::class, null, [], '', false); diff --git a/typo3/sysext/backend/Tests/Unit/Controller/SwitchUserControllerTest.php b/typo3/sysext/backend/Tests/Unit/Controller/SwitchUserControllerTest.php index fac0db2ad12804600b909c3e9a5569fa731f41a9..3608b7e61c6bf3eca6a2e72ca2344de56ba50f82 100644 --- a/typo3/sysext/backend/Tests/Unit/Controller/SwitchUserControllerTest.php +++ b/typo3/sysext/backend/Tests/Unit/Controller/SwitchUserControllerTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Controller; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Backend\Controller\SwitchUserController; use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; @@ -42,9 +43,7 @@ final class SwitchUserControllerTest extends UnitTestCase $this->subject = $this->getAccessibleMock(SwitchUserController::class, null, [], '', false); } - /** - * @test - */ + #[Test] public function generateListOfLatestSwitchedUsersReturnsCorrectAmountAndOrder(): void { $items = range(1, self::RECENT_USERS_LIMIT + 5); @@ -57,9 +56,7 @@ final class SwitchUserControllerTest extends UnitTestCase self::assertSame($expected, $GLOBALS['BE_USER']->uc['recentSwitchedToUsers']); } - /** - * @test - */ + #[Test] public function listOfLatestSwitchedUsersDoesNotContainTheSameUserTwice(): void { $GLOBALS['BE_USER']->uc['recentSwitchedToUsers'] = $this->subject->_call('generateListOfMostRecentSwitchedUsers', 100); diff --git a/typo3/sysext/backend/Tests/Unit/Controller/Wizard/SuggestWizardControllerTest.php b/typo3/sysext/backend/Tests/Unit/Controller/Wizard/SuggestWizardControllerTest.php index 171e8b494db942940a38bed19bbb5a6247fe40fd..9d58fd7f7f9e675da89a5267abec1bdb1657b9ee 100644 --- a/typo3/sysext/backend/Tests/Unit/Controller/Wizard/SuggestWizardControllerTest.php +++ b/typo3/sysext/backend/Tests/Unit/Controller/Wizard/SuggestWizardControllerTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Controller\Wizard; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Controller\Wizard\SuggestWizardController; use TYPO3\CMS\Core\Configuration\FlexForm\FlexFormTools; use TYPO3\CMS\Core\Http\ServerRequest; @@ -25,9 +27,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class SuggestWizardControllerTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getFlexFieldConfigurationThrowsExceptionIfSimpleFlexFieldIsNotFound(): void { $dataStructureIdentifier = '{"type":"tca","tableName":"tt_content","fieldName":"pi_flexform","dataStructureKey":"blog_example,list"}'; @@ -68,9 +68,7 @@ final class SuggestWizardControllerTest extends UnitTestCase (new SuggestWizardController())->searchAction($request); } - /** - * @test - */ + #[Test] public function getFlexFieldConfigurationThrowsExceptionIfSectionContainerFlexFieldIsNotFound(): void { $dataStructureIdentifier = '{"type":"tca","tableName":"tt_content","fieldName":"pi_flexform","dataStructureKey":"blog_example,list"}'; @@ -111,10 +109,8 @@ final class SuggestWizardControllerTest extends UnitTestCase (new SuggestWizardController())->searchAction($request); } - /** - * @test - * @dataProvider isTableHiddenIsProperlyRetrievedDataProvider - */ + #[DataProvider('isTableHiddenIsProperlyRetrievedDataProvider')] + #[Test] public function isTableHiddenIsProperlyRetrieved(bool $expected, array $array): void { $subject = $this->getAccessibleMock(SuggestWizardController::class, null, [], '', false); @@ -132,10 +128,8 @@ final class SuggestWizardControllerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider whereClauseIsProperlyRetrievedDataProvider - */ + #[DataProvider('whereClauseIsProperlyRetrievedDataProvider')] + #[Test] public function whereClauseIsProperlyRetrieved(string $expected, array $array): void { $subject = $this->getAccessibleMock(SuggestWizardController::class, null, [], '', false); diff --git a/typo3/sysext/backend/Tests/Unit/ElementBrowser/ElementBrowserRegistryTest.php b/typo3/sysext/backend/Tests/Unit/ElementBrowser/ElementBrowserRegistryTest.php index 21c3bda2c80f185f65db42c477a531d763071734..4d51b3525115851876493ef73a9600db386415c3 100644 --- a/typo3/sysext/backend/Tests/Unit/ElementBrowser/ElementBrowserRegistryTest.php +++ b/typo3/sysext/backend/Tests/Unit/ElementBrowser/ElementBrowserRegistryTest.php @@ -17,15 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\ElementBrowser; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\ElementBrowser\ElementBrowserInterface; use TYPO3\CMS\Backend\ElementBrowser\ElementBrowserRegistry; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ElementBrowserRegistryTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function registrationRequiresInterface(): void { $elementBrowser = [ @@ -40,9 +39,7 @@ final class ElementBrowserRegistryTest extends UnitTestCase self::assertTrue($elementBrowserRegistry->hasElementBrowser('valid-identifier')); } - /** - * @test - */ + #[Test] public function registrationThrowsExceptionOnEmptyIdentifier(): void { $elementBrowser = [ @@ -55,9 +52,7 @@ final class ElementBrowserRegistryTest extends UnitTestCase new ElementBrowserRegistry($elementBrowser); } - /** - * @test - */ + #[Test] public function registrationThrowsExceptionOnDuplicateIdentifier(): void { $elementBrowser = [ @@ -71,9 +66,7 @@ final class ElementBrowserRegistryTest extends UnitTestCase new ElementBrowserRegistry($elementBrowser); } - /** - * @test - */ + #[Test] public function registrationThrowsExceptionOnRequestingInvalidIdentifier(): void { $this->expectException(\UnexpectedValueException::class); diff --git a/typo3/sysext/backend/Tests/Unit/ElementBrowser/Event/IsFileSelectableEventTest.php b/typo3/sysext/backend/Tests/Unit/ElementBrowser/Event/IsFileSelectableEventTest.php index a5c31470baf886624f91b0a1162319dbe188958b..3a07cc8be3e2512b2474902ce7abeebeab875965 100644 --- a/typo3/sysext/backend/Tests/Unit/ElementBrowser/Event/IsFileSelectableEventTest.php +++ b/typo3/sysext/backend/Tests/Unit/ElementBrowser/Event/IsFileSelectableEventTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\ElementBrowser\Event; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\ElementBrowser\Event\IsFileSelectableEvent; use TYPO3\CMS\Core\Resource\File; use TYPO3\CMS\Core\Resource\ResourceStorage; @@ -24,9 +25,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class IsFileSelectableEventTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function eventMethodsReturnExpected(): void { $mockResourceStorage = $this->getMockBuilder(ResourceStorage::class)->disableOriginalConstructor()->getMock(); diff --git a/typo3/sysext/backend/Tests/Unit/Form/Container/ListOfFieldsContainerTest.php b/typo3/sysext/backend/Tests/Unit/Form/Container/ListOfFieldsContainerTest.php index 51ac5867a0bbcaee57b72949bc77a102907890bb..fcdc08a6f5cf8da524aff5d1b1f0bda964ed6216 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/Container/ListOfFieldsContainerTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/Container/ListOfFieldsContainerTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\Container; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\Container\ListOfFieldsContainer; use TYPO3\CMS\Backend\Form\Container\PaletteAndSingleContainer; use TYPO3\CMS\Backend\Form\NodeFactory; @@ -24,9 +25,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ListOfFieldsContainerTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function renderDelegatesShowitemField(): void { $nodeFactoryMock = $this->createMock(NodeFactory::class); @@ -58,9 +57,7 @@ final class ListOfFieldsContainerTest extends UnitTestCase (new ListOfFieldsContainer($nodeFactoryMock, $input))->render(); } - /** - * @test - */ + #[Test] public function renderDelegatesShowitemFieldAndRemovesDuplicates(): void { $nodeFactoryMock = $this->createMock(NodeFactory::class); @@ -92,9 +89,7 @@ final class ListOfFieldsContainerTest extends UnitTestCase (new ListOfFieldsContainer($nodeFactoryMock, $input))->render(); } - /** - * @test - */ + #[Test] public function renderDelegatesPaletteFields(): void { $nodeFactoryMock = $this->createMock(NodeFactory::class); @@ -134,9 +129,7 @@ final class ListOfFieldsContainerTest extends UnitTestCase (new ListOfFieldsContainer($nodeFactoryMock, $input))->render(); } - /** - * @test - */ + #[Test] public function renderRemovesNotExistingTypesField(): void { $nodeFactoryMock = $this->createMock(NodeFactory::class); diff --git a/typo3/sysext/backend/Tests/Unit/Form/Container/PaletteAndSingleContainerTest.php b/typo3/sysext/backend/Tests/Unit/Form/Container/PaletteAndSingleContainerTest.php index 5fd21703e55a0fcbe919149915b6417070c6ec65..af3b39e7ec1aa820f29bfeb81a6bb44b335a32dd 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/Container/PaletteAndSingleContainerTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/Container/PaletteAndSingleContainerTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\Container; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\Container\PaletteAndSingleContainer; use TYPO3\CMS\Backend\Form\Container\SingleFieldContainer; use TYPO3\CMS\Backend\Form\NodeFactory; @@ -26,9 +27,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class PaletteAndSingleContainerTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function renderUsesPaletteLabelFromFieldArray(): void { $nodeFactoryMock = $this->createMock(NodeFactory::class); @@ -89,9 +88,7 @@ final class PaletteAndSingleContainerTest extends UnitTestCase self::assertStringContainsString($labelReference, $containerResult['html']); } - /** - * @test - */ + #[Test] public function renderUsesPaletteValuesFromPaletteArray(): void { $nodeFactoryMock = $this->createMock(NodeFactory::class); @@ -156,9 +153,7 @@ final class PaletteAndSingleContainerTest extends UnitTestCase self::assertStringContainsString($descriptionReference, $containerResult['html']); } - /** - * @test - */ + #[Test] public function renderPrefersFieldArrayPaletteValuesOverPaletteValues(): void { $nodeFactoryMock = $this->createMock(NodeFactory::class); diff --git a/typo3/sysext/backend/Tests/Unit/Form/Element/AbstractFormElementTest.php b/typo3/sysext/backend/Tests/Unit/Form/Element/AbstractFormElementTest.php index d4aec7d6e0ae3b7e74073411b083c188ee5426e6..f4100ac81e75568e1cf7bc6d756584b232b65962 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/Element/AbstractFormElementTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/Element/AbstractFormElementTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\Element; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\Element\AbstractFormElement; use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -265,10 +267,8 @@ final class AbstractFormElementTest extends UnitTestCase ]; } - /** - * @dataProvider formatValueDataProvider - * @test - */ + #[DataProvider('formatValueDataProvider')] + #[Test] public function formatValueWithGivenConfiguration(array $config, ?string $itemValue, string $expectedResult): void { $GLOBALS['BE_USER'] = new BackendUserAuthentication(); diff --git a/typo3/sysext/backend/Tests/Unit/Form/Element/DatetimeElementTest.php b/typo3/sysext/backend/Tests/Unit/Form/Element/DatetimeElementTest.php index e8c6da7d735607c4b212fb512530a2827816fcca..bf351cd1bddc0293e3915906cdcf3922061b24c7 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/Element/DatetimeElementTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/Element/DatetimeElementTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\Element; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\Element\DatetimeElement; use TYPO3\CMS\Backend\Form\NodeExpansion\FieldInformation; use TYPO3\CMS\Backend\Form\NodeFactory; @@ -75,10 +77,8 @@ final class DatetimeElementTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider renderAppliesCorrectTimestampConversionDataProvider - */ + #[DataProvider('renderAppliesCorrectTimestampConversionDataProvider')] + #[Test] public function renderAppliesCorrectTimestampConversion(int $input, string $serverTimezone, string $expectedOutput): void { date_default_timezone_set($serverTimezone); diff --git a/typo3/sysext/backend/Tests/Unit/Form/Element/InputHiddenElementTest.php b/typo3/sysext/backend/Tests/Unit/Form/Element/InputHiddenElementTest.php index ce22d19e0484e414d86ea232013ece76974acc5b..ab7e7c1b45f7a0822c569b33a6908ee95954b01d 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/Element/InputHiddenElementTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/Element/InputHiddenElementTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\Element; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\Element\InputHiddenElement; use TYPO3\CMS\Backend\Form\NodeFactory; use TYPO3\CMS\Core\Imaging\IconFactory; @@ -28,9 +29,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; */ final class InputHiddenElementTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function renderReturnsElementsAsAdditionalHiddenFields(): void { $data = [ diff --git a/typo3/sysext/backend/Tests/Unit/Form/Element/JsonElementTest.php b/typo3/sysext/backend/Tests/Unit/Form/Element/JsonElementTest.php index 944edbd2a8be297e5c8ac93635147cf8538ba4fb..ea3ff12d76f65e3007bfe5ec6bcc74e3b206ea40 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/Element/JsonElementTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/Element/JsonElementTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\Element; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\Element\JsonElement; use TYPO3\CMS\Backend\Form\NodeExpansion\FieldInformation; use TYPO3\CMS\Backend\Form\NodeFactory; @@ -34,9 +35,7 @@ final class JsonElementTest extends UnitTestCase { protected bool $resetSingletonInstances = true; - /** - * @test - */ + #[Test] public function renderReturnsJsonInStandardTextarea(): void { $data = [ @@ -70,9 +69,7 @@ final class JsonElementTest extends UnitTestCase self::assertStringContainsString('"foo": "bar"', $result['html']); } - /** - * @test - */ + #[Test] public function renderReturnsJsonInCodeEditor(): void { $data = [ diff --git a/typo3/sysext/backend/Tests/Unit/Form/Element/UuidElementTest.php b/typo3/sysext/backend/Tests/Unit/Form/Element/UuidElementTest.php index 23b8e99fec0d73a547730533c3acb95d244a7470..37ce89ed2a0f0bb76c9e6273e27906be3c24a3dc 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/Element/UuidElementTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/Element/UuidElementTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\Element; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\Element\UuidElement; use TYPO3\CMS\Backend\Form\NodeExpansion\FieldInformation; use TYPO3\CMS\Backend\Form\NodeFactory; @@ -35,9 +36,7 @@ final class UuidElementTest extends UnitTestCase $GLOBALS['LANG'] = $this->createMock(LanguageService::class); } - /** - * @test - */ + #[Test] public function renderThrowsExceptionOnEmptyElementValue(): void { $data = [ @@ -64,9 +63,7 @@ final class UuidElementTest extends UnitTestCase (new UuidElement($this->createMock(NodeFactory::class), $data))->render(); } - /** - * @test - */ + #[Test] public function renderThrowsExceptionOnInvalidUuid(): void { $data = [ @@ -93,9 +90,7 @@ final class UuidElementTest extends UnitTestCase (new UuidElement($this->createMock(NodeFactory::class), $data))->render(); } - /** - * @test - */ + #[Test] public function renderReturnsInputElementWithUuidAndCopyToClipboardButton(): void { $uuid = 'b3190536-1431-453e-afbb-25b8c5022513'; @@ -129,9 +124,7 @@ final class UuidElementTest extends UnitTestCase self::assertMatchesRegularExpression('/<input.*value="' . $uuid . '".*id="formengine-uuid-/s', $result['html']); } - /** - * @test - */ + #[Test] public function renderReturnsInputElementWithUuidAndWithoutCopyToClipboardButton(): void { $uuid = 'b3190536-1431-453e-afbb-25b8c5022513'; diff --git a/typo3/sysext/backend/Tests/Unit/Form/FieldControl/ElementBrowserTest.php b/typo3/sysext/backend/Tests/Unit/Form/FieldControl/ElementBrowserTest.php index 38fa68dc41a47c96686f13b108cc07f3d7fbbe2d..94021f678c3e9833ec4bda8b91b0d7f13898f110 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FieldControl/ElementBrowserTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FieldControl/ElementBrowserTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FieldControl; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FieldControl\ElementBrowser; use TYPO3\CMS\Backend\Form\NodeFactory; use TYPO3\CMS\Core\Site\Entity\Site; @@ -24,9 +26,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ElementBrowserTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function renderTrimsAllowedValuesFromConfigSection(): void { $nodeFactory = $this->createMock(NodeFactory::class); @@ -53,9 +53,7 @@ final class ElementBrowserTest extends UnitTestCase self::assertSame($result['linkAttributes']['data-params'], '|||be_users,be_groups|'); } - /** - * @test - */ + #[Test] public function renderTrimsAllowedValues(): void { $nodeFactory = $this->createMock(NodeFactory::class); @@ -81,10 +79,8 @@ final class ElementBrowserTest extends UnitTestCase self::assertSame($result['linkAttributes']['data-params'], '|||jpg,png|'); } - /** - * @test - * @dataProvider renderResolvesEntryPointDataProvider - */ + #[DataProvider('renderResolvesEntryPointDataProvider')] + #[Test] public function renderResolvesEntryPoint(array $config, string $expected): void { $nodeFactory = $this->createMock(NodeFactory::class); @@ -234,9 +230,7 @@ final class ElementBrowserTest extends UnitTestCase ]; } - /** - * @test - */ + #[Test] public function renderUsesCustomTitle(): void { $title = 'Custom title'; @@ -265,9 +259,7 @@ final class ElementBrowserTest extends UnitTestCase self::assertSame($title, $result['title']); } - /** - * @test - */ + #[Test] public function renderUsesFallbackTitle(): void { $nodeFactory = $this->createMock(NodeFactory::class); diff --git a/typo3/sysext/backend/Tests/Unit/Form/FieldWizard/TableListTest.php b/typo3/sysext/backend/Tests/Unit/Form/FieldWizard/TableListTest.php index 4b55fa36fcf1c7fd8d5f7ceb90d2dde3e265f05c..db723b6c3f272a4094ef27a29ec9a9750b35010e 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FieldWizard/TableListTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FieldWizard/TableListTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FieldWizard; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FieldWizard\TableList; use TYPO3\CMS\Backend\Form\NodeFactory; use TYPO3\CMS\Core\Imaging\Icon; @@ -28,10 +30,8 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class TableListTest extends UnitTestCase { - /** - * @test - * @dataProvider renderResolvesEntryPointDataProvider - */ + #[DataProvider('renderResolvesEntryPointDataProvider')] + #[Test] public function renderResolvesEntryPoint(array $config, array $expected): void { $GLOBALS['TCA'] = []; diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataCompilerTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataCompilerTest.php index 318c89f0d37e0b96a114d80eb14fd7ce93d2a21c..47e3f6ad9ba797bd5ccd8e845be6d988d12d2b78 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataCompilerTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataCompilerTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Backend\Form\FormDataCompiler; use TYPO3\CMS\Backend\Form\FormDataGroupInterface; @@ -35,9 +36,7 @@ final class FormDataCompilerTest extends UnitTestCase $this->subject = new FormDataCompiler(); } - /** - * @test - */ + #[Test] public function compileThrowsExceptionIfInputContainsKeysNotValidInResult(): void { $input = [ @@ -48,9 +47,7 @@ final class FormDataCompilerTest extends UnitTestCase $this->subject->compile($input, $this->formDataGroupMock); } - /** - * @test - */ + #[Test] public function compileThrowsExceptionAtUnknownCommand(): void { $input = [ @@ -61,9 +58,7 @@ final class FormDataCompilerTest extends UnitTestCase $this->subject->compile($input, $this->formDataGroupMock); } - /** - * @test - */ + #[Test] public function compileThrowsExceptionIfNoTableNameGiven(): void { $input = [ @@ -74,9 +69,7 @@ final class FormDataCompilerTest extends UnitTestCase $this->subject->compile($input, $this->formDataGroupMock); } - /** - * @test - */ + #[Test] public function compileThrowsExceptionIfUidIsNotAnInteger(): void { $input = [ @@ -87,9 +80,7 @@ final class FormDataCompilerTest extends UnitTestCase $this->subject->compile($input, $this->formDataGroupMock); } - /** - * @test - */ + #[Test] public function compileThrowsExceptionIfCommandIsEditAndUidIsNegative(): void { $input = [ @@ -101,9 +92,7 @@ final class FormDataCompilerTest extends UnitTestCase $this->subject->compile($input, $this->formDataGroupMock); } - /** - * @test - */ + #[Test] public function compileReturnsResultArrayWithInputDataSet(): void { $input = [ @@ -119,9 +108,7 @@ final class FormDataCompilerTest extends UnitTestCase self::assertEquals('edit', $result['command']); } - /** - * @test - */ + #[Test] public function compileReturnsResultArrayWithAdditionalDataFormFormDataGroup(): void { $this->formDataGroupMock->method('compile')->with(self::anything())->willReturnCallback(static function (array $arguments): array { @@ -138,9 +125,7 @@ final class FormDataCompilerTest extends UnitTestCase self::assertEquals('newData', $result['databaseRow']); } - /** - * @test - */ + #[Test] public function compileThrowsExceptionIfFormDataGroupDoesNotReturnArray(): void { $this->formDataGroupMock->method('compile')->with(self::anything())->willReturn(null); @@ -154,9 +139,7 @@ final class FormDataCompilerTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function compileThrowsExceptionIfRenderDataIsNotEmpty(): void { $this->formDataGroupMock->method('compile')->with(self::anything())->willReturn([ @@ -172,9 +155,7 @@ final class FormDataCompilerTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function compileThrowsExceptionIfFormDataGroupRemovedKeysFromResultArray(): void { $this->formDataGroupMock->method('compile')->with(self::anything())->willReturnCallback(static function (array $arguments): array { @@ -192,9 +173,7 @@ final class FormDataCompilerTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function compileThrowsExceptionIfFormDataGroupAddedKeysToResultArray(): void { $this->formDataGroupMock->method('compile')->with(self::anything())->willReturnCallback(static function (array $arguments): array { diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataGroup/FlexFormSegmentTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataGroup/FlexFormSegmentTest.php index 7593640cb9cf7f38a24025eb98bfbd7851feebd8..70f0acd002b139f4beac66beadf60cb3fff2afd4 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataGroup/FlexFormSegmentTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataGroup/FlexFormSegmentTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataGroup; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataGroup\FlexFormSegment; use TYPO3\CMS\Backend\Form\FormDataProviderInterface; use TYPO3\CMS\Core\Service\DependencyOrderingService; @@ -33,9 +34,7 @@ final class FlexFormSegmentTest extends UnitTestCase $this->subject = new FlexFormSegment(); } - /** - * @test - */ + #[Test] public function compileReturnsIncomingData(): void { $orderingServiceMock = $this->createMock(DependencyOrderingService::class); @@ -49,9 +48,7 @@ final class FlexFormSegmentTest extends UnitTestCase self::assertEquals($input, $this->subject->compile($input)); } - /** - * @test - */ + #[Test] public function compileReturnsResultChangedByDataProvider(): void { $orderingServiceMock = $this->createMock(DependencyOrderingService::class); @@ -74,9 +71,7 @@ final class FlexFormSegmentTest extends UnitTestCase self::assertEquals(['foo'], $this->subject->compile([])); } - /** - * @test - */ + #[Test] public function compileThrowsExceptionIfDataProviderDoesNotImplementInterface(): void { $orderingServiceMock = $this->createMock(DependencyOrderingService::class); diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataGroup/OnTheFlyTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataGroup/OnTheFlyTest.php index 27a6d04b8e4dcf0bdfb3e5488e8701e1f5148f3d..97bc28cb5527eb3dd5e690ff63077ee112dc8a23 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataGroup/OnTheFlyTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataGroup/OnTheFlyTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataGroup; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataGroup\OnTheFly; use TYPO3\CMS\Backend\Form\FormDataProviderInterface; use TYPO3\CMS\Core\Utility\GeneralUtility; @@ -32,9 +33,7 @@ final class OnTheFlyTest extends UnitTestCase $this->subject = new OnTheFly(); } - /** - * @test - */ + #[Test] public function compileThrowsExceptionWithEmptyOnTheFlyList(): void { $this->expectException(\UnexpectedValueException::class); @@ -42,9 +41,7 @@ final class OnTheFlyTest extends UnitTestCase $this->subject->compile([]); } - /** - * @test - */ + #[Test] public function compileReturnsIncomingData(): void { $formDataProviderMock = $this->createMock(FormDataProviderInterface::class); @@ -62,9 +59,7 @@ final class OnTheFlyTest extends UnitTestCase self::assertEquals($input, $this->subject->compile($input)); } - /** - * @test - */ + #[Test] public function compileReturnsResultChangedByDataProvider(): void { $formDataProviderMock = $this->createMock(FormDataProviderInterface::class); @@ -81,9 +76,7 @@ final class OnTheFlyTest extends UnitTestCase self::assertEquals($providerResult, $this->subject->compile([])); } - /** - * @test - */ + #[Test] public function compileThrowsExceptionIfDataProviderDoesNotImplementInterface(): void { $providerList = [ diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataGroup/OrderedProviderListTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataGroup/OrderedProviderListTest.php index b17db627a68d23f449a10bea749a35bcb598fda5..8fc6614e8c406b3cbc55bf5b430584ad927db1c5 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataGroup/OrderedProviderListTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataGroup/OrderedProviderListTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataGroup; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataGroup\OrderedProviderList; use TYPO3\CMS\Backend\Form\FormDataProviderInterface; use TYPO3\CMS\Core\Service\DependencyOrderingService; @@ -25,9 +26,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class OrderedProviderListTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function compileReturnsIncomingData(): void { $orderingServiceMock = $this->createMock(DependencyOrderingService::class); @@ -41,9 +40,7 @@ final class OrderedProviderListTest extends UnitTestCase self::assertEquals($input, $subject->compile($input)); } - /** - * @test - */ + #[Test] public function compileReturnsResultChangedByDataProvider(): void { $orderingServiceMock = $this->createMock(DependencyOrderingService::class); @@ -66,9 +63,7 @@ final class OrderedProviderListTest extends UnitTestCase self::assertEquals(['foo'], $subject->compile([])); } - /** - * @test - */ + #[Test] public function compileDoesNotCallDisabledDataProvider(): void { $orderingServiceMock = $this->createMock(DependencyOrderingService::class); @@ -85,9 +80,7 @@ final class OrderedProviderListTest extends UnitTestCase self::assertEquals($input, $subject->compile($input)); } - /** - * @test - */ + #[Test] public function compileThrowsExceptionIfImplementationClassDoesNotExist(): void { $orderingServiceMock = $this->createMock(DependencyOrderingService::class); @@ -104,9 +97,7 @@ final class OrderedProviderListTest extends UnitTestCase $subject->compile([]); } - /** - * @test - */ + #[Test] public function compileThrowsExceptionIfDataProviderDoesNotImplementInterface(): void { $orderingServiceMock = $this->createMock(DependencyOrderingService::class); diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataGroup/SiteConfigurationDataGroupTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataGroup/SiteConfigurationDataGroupTest.php index 5e86a791696a858d9d50c4f4eac9a206bc3a0f2f..bc6f5daba3fd3ada57dcee9645dba3ffec1232f3 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataGroup/SiteConfigurationDataGroupTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataGroup/SiteConfigurationDataGroupTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataGroup; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataGroup\SiteConfigurationDataGroup; use TYPO3\CMS\Backend\Form\FormDataProviderInterface; use TYPO3\CMS\Core\Service\DependencyOrderingService; @@ -33,9 +34,7 @@ final class SiteConfigurationDataGroupTest extends UnitTestCase $this->subject = new SiteConfigurationDataGroup(); } - /** - * @test - */ + #[Test] public function compileReturnsIncomingData(): void { $orderingServiceMock = $this->createMock(DependencyOrderingService::class); @@ -49,9 +48,7 @@ final class SiteConfigurationDataGroupTest extends UnitTestCase self::assertEquals($input, $this->subject->compile($input)); } - /** - * @test - */ + #[Test] public function compileReturnsResultChangedByDataProvider(): void { $orderingServiceMock = $this->createMock(DependencyOrderingService::class); @@ -74,9 +71,7 @@ final class SiteConfigurationDataGroupTest extends UnitTestCase self::assertEquals(['foo'], $this->subject->compile([])); } - /** - * @test - */ + #[Test] public function compileThrowsExceptionIfDataProviderDoesNotImplementInterface(): void { $orderingServiceMock = $this->createMock(DependencyOrderingService::class); diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataGroup/TcaDatabaseRecordTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataGroup/TcaDatabaseRecordTest.php index 5fa252d0299af00ed33edfb3de307b1ccd2dcfcc..27afc60e687f909dc4dc1cef5bf85e8e21f66811 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataGroup/TcaDatabaseRecordTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataGroup/TcaDatabaseRecordTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataGroup; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataGroup\TcaDatabaseRecord; use TYPO3\CMS\Backend\Form\FormDataProviderInterface; use TYPO3\CMS\Core\Service\DependencyOrderingService; @@ -33,9 +34,7 @@ final class TcaDatabaseRecordTest extends UnitTestCase $this->subject = new TcaDatabaseRecord(); } - /** - * @test - */ + #[Test] public function compileReturnsIncomingData(): void { $orderingServiceMock = $this->createMock(DependencyOrderingService::class); @@ -49,9 +48,7 @@ final class TcaDatabaseRecordTest extends UnitTestCase self::assertEquals($input, $this->subject->compile($input)); } - /** - * @test - */ + #[Test] public function compileReturnsResultChangedByDataProvider(): void { $orderingServiceMock = $this->createMock(DependencyOrderingService::class); @@ -74,9 +71,7 @@ final class TcaDatabaseRecordTest extends UnitTestCase self::assertEquals(['foo'], $this->subject->compile([])); } - /** - * @test - */ + #[Test] public function compileThrowsExceptionIfDataProviderDoesNotImplementInterface(): void { $orderingServiceMock = $this->createMock(DependencyOrderingService::class); diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataGroup/TcaInputPlaceholderRecordTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataGroup/TcaInputPlaceholderRecordTest.php index c407d482208a0524b853ecdd47af0fa48d1188ab..edb57399975424859511e930cd6561763506c0c9 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataGroup/TcaInputPlaceholderRecordTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataGroup/TcaInputPlaceholderRecordTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataGroup; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataGroup\TcaInputPlaceholderRecord; use TYPO3\CMS\Backend\Form\FormDataProviderInterface; use TYPO3\CMS\Core\Service\DependencyOrderingService; @@ -33,9 +34,7 @@ final class TcaInputPlaceholderRecordTest extends UnitTestCase $this->subject = new TcaInputPlaceholderRecord(); } - /** - * @test - */ + #[Test] public function compileReturnsIncomingData(): void { $orderingServiceMock = $this->createMock(DependencyOrderingService::class); @@ -49,9 +48,7 @@ final class TcaInputPlaceholderRecordTest extends UnitTestCase self::assertEquals($input, $this->subject->compile($input)); } - /** - * @test - */ + #[Test] public function compileReturnsResultChangedByDataProvider(): void { $orderingServiceMock = $this->createMock(DependencyOrderingService::class); @@ -74,9 +71,7 @@ final class TcaInputPlaceholderRecordTest extends UnitTestCase self::assertEquals(['foo'], $this->subject->compile([])); } - /** - * @test - */ + #[Test] public function compileThrowsExceptionIfDataProviderDoesNotImplementInterface(): void { $orderingServiceMock = $this->createMock(DependencyOrderingService::class); diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataGroup/TcaSelectTreeAjaxFieldDataTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataGroup/TcaSelectTreeAjaxFieldDataTest.php index 939985d74bab59bbf5cda1c777302117ccc5969b..2f8174f3a4afa87895960d34abfea9ae32e1bc6e 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataGroup/TcaSelectTreeAjaxFieldDataTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataGroup/TcaSelectTreeAjaxFieldDataTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataGroup; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataGroup\TcaSelectTreeAjaxFieldData; use TYPO3\CMS\Backend\Form\FormDataProviderInterface; use TYPO3\CMS\Core\Service\DependencyOrderingService; @@ -33,9 +34,7 @@ final class TcaSelectTreeAjaxFieldDataTest extends UnitTestCase $this->subject = new TcaSelectTreeAjaxFieldData(); } - /** - * @test - */ + #[Test] public function compileReturnsIncomingData(): void { $orderingServiceMock = $this->createMock(DependencyOrderingService::class); @@ -49,9 +48,7 @@ final class TcaSelectTreeAjaxFieldDataTest extends UnitTestCase self::assertEquals($input, $this->subject->compile($input)); } - /** - * @test - */ + #[Test] public function compileReturnsResultChangedByDataProvider(): void { $orderingServiceMock = $this->createMock(DependencyOrderingService::class); @@ -74,9 +71,7 @@ final class TcaSelectTreeAjaxFieldDataTest extends UnitTestCase self::assertEquals(['foo'], $this->subject->compile([])); } - /** - * @test - */ + #[Test] public function compileThrowsExceptionIfDataProviderDoesNotImplementInterface(): void { $orderingServiceMock = $this->createMock(DependencyOrderingService::class); diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseDefaultLanguagePageRowTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseDefaultLanguagePageRowTest.php index aac23d7ed8a27a8e5777ab4eff8f1e7407922d63..428506dca00e3f7e2321afce20a3ae715c231156 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseDefaultLanguagePageRowTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseDefaultLanguagePageRowTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseDefaultLanguagePageRow; use TYPO3\CMS\Core\Database\Connection; @@ -38,9 +39,7 @@ final class DatabaseDefaultLanguagePageRowTest extends UnitTestCase ->getMock(); } - /** - * @test - */ + #[Test] public function addDataDoesNotApplyToAnyNonPagesTable(): void { $input = [ @@ -56,9 +55,7 @@ final class DatabaseDefaultLanguagePageRowTest extends UnitTestCase self::assertArrayNotHasKey('defaultLanguagePageRow', $result); } - /** - * @test - */ + #[Test] public function addDataDoesApplyToAPagesTableButNoChangeForDefaultLanguage(): void { $input = [ @@ -73,9 +70,7 @@ final class DatabaseDefaultLanguagePageRowTest extends UnitTestCase self::assertSame($input, $result); } - /** - * @test - */ + #[Test] public function addDataDoesApplyToATranslatedPagesTable(): void { $connectionMock = $this->getMockBuilder(Connection::class)->disableOriginalConstructor()->getMock(); diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseEditRowTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseEditRowTest.php index d1a8ec91efd240c1086c3fc707f80aeeabcc34b2..d2005304cf62951d3a5503bdd23e61795501beb2 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseEditRowTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseEditRowTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Backend\Form\Exception\DatabaseRecordException; use TYPO3\CMS\Backend\Form\Exception\DatabaseRecordWorkspaceDeletePlaceholderException; @@ -39,9 +40,7 @@ final class DatabaseEditRowTest extends UnitTestCase ->getMock(); } - /** - * @test - */ + #[Test] public function addDataRetrievesRecordInformationFromDatabase(): void { $input = [ @@ -60,9 +59,7 @@ final class DatabaseEditRowTest extends UnitTestCase self::assertSame($resultRow, $result['databaseRow']); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfRetrievedRowHasNoPid(): void { $input = [ @@ -81,9 +78,7 @@ final class DatabaseEditRowTest extends UnitTestCase $this->subject->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfGivenUidIsNotPositive(): void { $input = [ @@ -98,9 +93,7 @@ final class DatabaseEditRowTest extends UnitTestCase $this->subject->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfDatabaseFetchingReturnsNoRow(): void { $input = [ @@ -116,9 +109,7 @@ final class DatabaseEditRowTest extends UnitTestCase $this->subject->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionDatabaseRecordExceptionWithAdditionalInformationSet(): void { $input = [ @@ -136,9 +127,7 @@ final class DatabaseEditRowTest extends UnitTestCase } } - /** - * @test - */ + #[Test] public function addDataThrowsWorkspaceDeletePlaceholderExceptionWithDeletePlaceholderRecord(): void { $connectionMock = $this->getMockBuilder(Connection::class)->disableOriginalConstructor()->getMock(); @@ -165,9 +154,7 @@ final class DatabaseEditRowTest extends UnitTestCase $this->subject->addData($input); } - /** - * @test - */ + #[Test] public function addDataSkipsDatabaseLookupIfDatabaseRowIsPopulated(): void { $virtualRow = [ diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseEffectivePidTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseEffectivePidTest.php index cbb57c013be8e21f58ef49170453b978344b3ce6..3257e47fdee19b5d600dac225def11e3350ede60 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseEffectivePidTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseEffectivePidTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseEffectivePid; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -30,9 +31,7 @@ final class DatabaseEffectivePidTest extends UnitTestCase $this->subject = new DatabaseEffectivePid(); } - /** - * @test - */ + #[Test] public function addDataSetsUidOfRecordIsPageIsEdited(): void { $input = [ @@ -47,9 +46,7 @@ final class DatabaseEffectivePidTest extends UnitTestCase self::assertSame($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSetsPidOfRecordIfNoPageIsEdited(): void { $input = [ @@ -64,9 +61,7 @@ final class DatabaseEffectivePidTest extends UnitTestCase self::assertSame($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSetsUidOfParentPageRowIfParentPageRowExistsAndCommandIsNew(): void { $input = [ @@ -81,9 +76,7 @@ final class DatabaseEffectivePidTest extends UnitTestCase self::assertSame($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSetsZeroWithMissingParentPageRowAndCommandIsNew(): void { $input = [ diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseLanguageRowsTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseLanguageRowsTest.php index 6c48a09e40772959fb65427eccb80958506cb34b..50273c9b8d73b6110684fe25c0cf99e1126a5e41 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseLanguageRowsTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseLanguageRowsTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Backend\Configuration\TranslationConfigurationProvider; use TYPO3\CMS\Backend\Form\Exception\DatabaseDefaultLanguageException; @@ -39,9 +40,7 @@ final class DatabaseLanguageRowsTest extends UnitTestCase ->getMock(); } - /** - * @test - */ + #[Test] public function addDataReturnsUnchangedResultIfTableProvidesNoTranslations(): void { $input = [ @@ -58,9 +57,7 @@ final class DatabaseLanguageRowsTest extends UnitTestCase self::assertEquals($input, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfDefaultOfLocalizedRecordIsNotFound(): void { $input = [ @@ -87,9 +84,7 @@ final class DatabaseLanguageRowsTest extends UnitTestCase $this->subject->addData($input); } - /** - * @test - */ + #[Test] public function addDataSetsDefaultLanguageRow(): void { $input = [ @@ -123,9 +118,7 @@ final class DatabaseLanguageRowsTest extends UnitTestCase self::assertEquals($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSetsDiffSourceFieldIfGiven(): void { $diffSource = [ @@ -168,9 +161,7 @@ final class DatabaseLanguageRowsTest extends UnitTestCase self::assertEquals($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSetsAdditionalLanguageRowsIfRequestedInUserTypoScript(): void { $input = [ @@ -263,9 +254,7 @@ final class DatabaseLanguageRowsTest extends UnitTestCase self::assertEquals($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSetsDoesNotAddHandledRowAsAdditionalLanguageRows(): void { $input = [ @@ -362,9 +351,7 @@ final class DatabaseLanguageRowsTest extends UnitTestCase self::assertEquals($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSetsSourceLanguageRow(): void { $input = [ diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabasePageLanguageOverlayRowsTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabasePageLanguageOverlayRowsTest.php index 7e3cf8db5998e5dc286562386cc0a930bba7ad59..94d74b0ac63558a2f7a9eb6b171edb9b242bbdeb 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabasePageLanguageOverlayRowsTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabasePageLanguageOverlayRowsTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Backend\Form\FormDataProvider\DatabasePageLanguageOverlayRows; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -33,9 +34,7 @@ final class DatabasePageLanguageOverlayRowsTest extends UnitTestCase ->getMock(); } - /** - * @test - */ + #[Test] public function addDataSetsPageLanguageOverlayRows(): void { $input = [ diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseParentPageRowTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseParentPageRowTest.php index 9ce3abc8a185fa5a9c88a48b8ba45f49b5412823..ac90b45a0994b3750212599e75388fa554af1012 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseParentPageRowTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseParentPageRowTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseParentPageRow; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -33,9 +34,7 @@ final class DatabaseParentPageRowTest extends UnitTestCase ->getMock(); } - /** - * @test - */ + #[Test] public function addDataFetchesParentPageRowOfRecordIfNeighbourGiven(): void { $input = [ @@ -64,9 +63,7 @@ final class DatabaseParentPageRowTest extends UnitTestCase self::assertSame($parentPageRow, $result['parentPageRow']); } - /** - * @test - */ + #[Test] public function addDataSetsNeighborRowIfNegativeUidGiven(): void { $input = [ @@ -99,9 +96,7 @@ final class DatabaseParentPageRowTest extends UnitTestCase self::assertSame($neighborRow, $result['neighborRow']); } - /** - * @test - */ + #[Test] public function addDataSetsParentPageRowToNullIfParentIsRoot(): void { $input = [ @@ -120,9 +115,7 @@ final class DatabaseParentPageRowTest extends UnitTestCase self::assertNull($result['parentPageRow']); } - /** - * @test - */ + #[Test] public function addDataSetsParentPageToGivenPageIdIfCommandIsNew(): void { $input = [ @@ -145,9 +138,7 @@ final class DatabaseParentPageRowTest extends UnitTestCase self::assertSame($parentPageRow, $result['parentPageRow']); } - /** - * @test - */ + #[Test] public function addDataSetsParentPageRowOnParentIfCommandIsEdit(): void { $input = [ @@ -173,9 +164,7 @@ final class DatabaseParentPageRowTest extends UnitTestCase self::assertSame($parentPageRow, $result['parentPageRow']); } - /** - * @test - */ + #[Test] public function addDataSetsParentPageRowOnNullWithNew(): void { $input = [ @@ -192,9 +181,7 @@ final class DatabaseParentPageRowTest extends UnitTestCase self::assertNull($result['parentPageRow']); } - /** - * @test - */ + #[Test] public function addDataSetsParentPageRowOnNullWithZero(): void { $input = [ diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseRecordOverrideValuesTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseRecordOverrideValuesTest.php index 1bcadc573b3cd753f72a9cfe2c42f6a78894036f..5593953355ec3bfa61b9fd626c74f74063e9b598 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseRecordOverrideValuesTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseRecordOverrideValuesTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseRecordOverrideValues; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -30,9 +31,7 @@ final class DatabaseRecordOverrideValuesTest extends UnitTestCase $this->subject = new DatabaseRecordOverrideValues(); } - /** - * @test - */ + #[Test] public function addDataReturnSameDataIfNoOverrideValuesSet(): void { $input = [ @@ -57,9 +56,7 @@ final class DatabaseRecordOverrideValuesTest extends UnitTestCase self::assertSame($input, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSetsDatabaseRowAndTcaType(): void { $input = [ diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseRecordTypeValueTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseRecordTypeValueTest.php index 52512f5420e2ea9d920f46637559c081fd17feac..9ac8a7c1883e94e9a430601d471e3d8f29fa8496 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseRecordTypeValueTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseRecordTypeValueTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseRecordTypeValue; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -33,9 +34,7 @@ final class DatabaseRecordTypeValueTest extends UnitTestCase ->getMock(); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfTcaTypesAreEmpty(): void { $input = [ @@ -51,9 +50,7 @@ final class DatabaseRecordTypeValueTest extends UnitTestCase $this->subject->addData($input); } - /** - * @test - */ + #[Test] public function addDataKeepsExistingTcaRecordTypeValue(): void { $input = [ @@ -68,9 +65,7 @@ final class DatabaseRecordTypeValueTest extends UnitTestCase self::assertSame($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataKeepsExistingTcaRecordTypeValueWithValueZero(): void { $input = [ @@ -85,9 +80,7 @@ final class DatabaseRecordTypeValueTest extends UnitTestCase self::assertSame($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSetsRecordTypeValueToHistoricalOneIfTypeZeroIsNotDefined(): void { $input = [ @@ -103,9 +96,7 @@ final class DatabaseRecordTypeValueTest extends UnitTestCase self::assertSame($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSetsRecordTypeValueToZero(): void { $input = [ @@ -123,9 +114,7 @@ final class DatabaseRecordTypeValueTest extends UnitTestCase self::assertSame($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfTypePointsToANotExistingField(): void { $input = [ @@ -150,9 +139,7 @@ final class DatabaseRecordTypeValueTest extends UnitTestCase $this->subject->addData($input); } - /** - * @test - */ + #[Test] public function addDataSetsRecordTypeValueToValueOfDatabaseField(): void { $input = [ @@ -176,9 +163,7 @@ final class DatabaseRecordTypeValueTest extends UnitTestCase self::assertSame($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSetsRecordTypeValueToZeroIfValueOfDatabaseFieldIsNotDefinedInTca(): void { $input = [ @@ -202,9 +187,7 @@ final class DatabaseRecordTypeValueTest extends UnitTestCase self::assertSame($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSetsRecordTypeValueToZeroIfValueOfDatabaseFieldIsEmptyString(): void { $input = [ @@ -228,9 +211,7 @@ final class DatabaseRecordTypeValueTest extends UnitTestCase self::assertSame($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfValueTypesNotExistsAndNoFallbackExists(): void { $input = [ @@ -255,9 +236,7 @@ final class DatabaseRecordTypeValueTest extends UnitTestCase $this->subject->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionForForeignTypeConfigurationNotAsSelectOrGroup(): void { $input = [ @@ -285,9 +264,7 @@ final class DatabaseRecordTypeValueTest extends UnitTestCase $this->subject->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionForForeignTypeIfPointerConfigurationHasNoTable(): void { $input = [ @@ -319,9 +296,7 @@ final class DatabaseRecordTypeValueTest extends UnitTestCase $this->subject->addData($input); } - /** - * @test - */ + #[Test] public function addDataSetsTypeValueFromForeignTableRecord(): void { $input = [ @@ -363,9 +338,7 @@ final class DatabaseRecordTypeValueTest extends UnitTestCase self::assertSame($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSetsTypeValueFromNestedTcaGroupField(): void { $input = [ diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseRowDateTimeFieldsTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseRowDateTimeFieldsTest.php index 2d82edf168537ced14f15a7525be0d5804b79ca5..5d236652838cc1ac3699aa14da18639a88b1659e 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseRowDateTimeFieldsTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseRowDateTimeFieldsTest.php @@ -17,15 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseRowDateTimeFields; use TYPO3\CMS\Core\Database\Query\QueryHelper; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class DatabaseRowDateTimeFieldsTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function addDataSetsTimestampZeroForDefaultDateField(): void { $input = [ @@ -46,9 +45,7 @@ final class DatabaseRowDateTimeFieldsTest extends UnitTestCase self::assertEquals($expected, (new DatabaseRowDateTimeFields())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSetsTimestampNullForDefaultDateField(): void { $input = [ @@ -78,9 +75,7 @@ final class DatabaseRowDateTimeFieldsTest extends UnitTestCase self::assertSame($expected, $actual['databaseRow']['aField']); } - /** - * @test - */ + #[Test] public function addDataSetsTimestampZeroForDefaultDateTimeField(): void { $input = [ @@ -101,9 +96,7 @@ final class DatabaseRowDateTimeFieldsTest extends UnitTestCase self::assertEquals($expected, (new DatabaseRowDateTimeFields())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSetsTimestampNullForDefaultDateTimeField(): void { $input = [ @@ -135,9 +128,7 @@ final class DatabaseRowDateTimeFieldsTest extends UnitTestCase self::assertSame($expected, $actual['databaseRow']['aField']); } - /** - * @test - */ + #[Test] public function addDataSetsTimestampZeroForDefaultTimeField(): void { $input = [ @@ -158,9 +149,7 @@ final class DatabaseRowDateTimeFieldsTest extends UnitTestCase self::assertEquals($expected, (new DatabaseRowDateTimeFields())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSetsTimestampNullForDefaultTimeField(): void { $input = [ @@ -189,9 +178,7 @@ final class DatabaseRowDateTimeFieldsTest extends UnitTestCase self::assertSame($expected, $actual['databaseRow']['aField']); } - /** - * @test - */ + #[Test] public function addDataConvertsDateStringToTimestamp(): void { $oldTimezone = date_default_timezone_get(); @@ -218,9 +205,7 @@ final class DatabaseRowDateTimeFieldsTest extends UnitTestCase date_default_timezone_set($oldTimezone); } - /** - * @test - */ + #[Test] public function addDataConvertsDateTimeStringToTimestamp(): void { $oldTimezone = date_default_timezone_get(); @@ -247,9 +232,7 @@ final class DatabaseRowDateTimeFieldsTest extends UnitTestCase date_default_timezone_set($oldTimezone); } - /** - * @test - */ + #[Test] public function addDataConvertsTimeStringToTimestamp(): void { $oldTimezone = date_default_timezone_get(); @@ -276,9 +259,7 @@ final class DatabaseRowDateTimeFieldsTest extends UnitTestCase date_default_timezone_set($oldTimezone); } - /** - * @test - */ + #[Test] public function addDataConvertsMidnightTimeStringOfNullableFieldToDefaultValue(): void { $oldTimezone = date_default_timezone_get(); @@ -307,9 +288,7 @@ final class DatabaseRowDateTimeFieldsTest extends UnitTestCase date_default_timezone_set($oldTimezone); } - /** - * @test - */ + #[Test] public function addDataConvertsMidnightTimeStringOfNullableFieldToNull(): void { $oldTimezone = date_default_timezone_get(); @@ -338,9 +317,7 @@ final class DatabaseRowDateTimeFieldsTest extends UnitTestCase date_default_timezone_set($oldTimezone); } - /** - * @test - */ + #[Test] public function addDataAppliesResetValueForEmptyValue(): void { foreach (QueryHelper::getDateTimeTypes() as $dbType) { diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseRowDefaultAsReadonlyTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseRowDefaultAsReadonlyTest.php index 3c42fd54939f73112c9b8120aae59cfb4fef2b49..ef834ce214df5a828053cf975bf835dbce1480ab 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseRowDefaultAsReadonlyTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseRowDefaultAsReadonlyTest.php @@ -17,14 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseRowDefaultAsReadonly; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class DatabaseRowDefaultAsReadonlyTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function addDataReplacesCurrentDatabaseValue(): void { $input = [ @@ -60,10 +60,8 @@ final class DatabaseRowDefaultAsReadonlyTest extends UnitTestCase self::assertEquals($expected, (new DatabaseRowDefaultAsReadonly())->addData($input)); } - /** - * @test - * @dataProvider addDataDoesNotReplaceCurrentDatabaseValueDataProvider - */ + #[DataProvider('addDataDoesNotReplaceCurrentDatabaseValueDataProvider')] + #[Test] public function addDataDoesNotReplaceCurrentDatabaseValue(array $input): void { self::assertEquals( diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseRowDefaultValuesTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseRowDefaultValuesTest.php index 88d8a9c2b4df66152a46b0016866e68e2b44d1f6..38c96071789745f7a8b5f8c25823202e5fb2e0c1 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseRowDefaultValuesTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseRowDefaultValuesTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseRowDefaultValues; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -30,9 +31,7 @@ final class DatabaseRowDefaultValuesTest extends UnitTestCase $this->subject = new DatabaseRowDefaultValues(); } - /** - * @test - */ + #[Test] public function addDataKeepsExistingValue(): void { $input = [ @@ -49,9 +48,7 @@ final class DatabaseRowDefaultValuesTest extends UnitTestCase self::assertSame($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataKeepsExistingNullValueWithEvalNull(): void { $input = [ @@ -72,9 +69,7 @@ final class DatabaseRowDefaultValuesTest extends UnitTestCase self::assertSame($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSetsNullValueWithDefaultNullForNewRecord(): void { $input = [ @@ -95,9 +90,7 @@ final class DatabaseRowDefaultValuesTest extends UnitTestCase self::assertSame($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSetsDefaultValueIfEvalNullIsSet(): void { $input = [ @@ -118,9 +111,7 @@ final class DatabaseRowDefaultValuesTest extends UnitTestCase self::assertSame($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSetsDefaultValueIsSet(): void { $input = [ diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseRowInitializeNewTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseRowInitializeNewTest.php index 5fc3c396f09522d5c00d19386deccdc6605df268..df675a6533ed95b41ebd4ab92fab3f9aed02e8dd 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseRowInitializeNewTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseRowInitializeNewTest.php @@ -17,14 +17,13 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseRowInitializeNew; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class DatabaseRowInitializeNewTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function addDataReturnSameDataIfCommandIsEdit(): void { $input = [ @@ -45,9 +44,7 @@ final class DatabaseRowInitializeNewTest extends UnitTestCase self::assertSame($input, (new DatabaseRowInitializeNew())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfDatabaseRowIsNotArray(): void { $input = [ @@ -60,9 +57,7 @@ final class DatabaseRowInitializeNewTest extends UnitTestCase (new DatabaseRowInitializeNew())->addData($input); } - /** - * @test - */ + #[Test] public function addDataKeepsGivenDefaultsIfCommandIsNew(): void { $input = [ @@ -81,9 +76,7 @@ final class DatabaseRowInitializeNewTest extends UnitTestCase self::assertSame($expected, (new DatabaseRowInitializeNew())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSetsDefaultDataFromUserTsIfColumnIsDefinedInTca(): void { $input = [ @@ -115,9 +108,7 @@ final class DatabaseRowInitializeNewTest extends UnitTestCase self::assertSame($expected, $result['databaseRow']); } - /** - * @test - */ + #[Test] public function addDataDoesNotSetDefaultDataFromUserTsIfColumnIsMissingInTca(): void { $input = [ @@ -146,9 +137,7 @@ final class DatabaseRowInitializeNewTest extends UnitTestCase self::assertSame($expected, $result['databaseRow']); } - /** - * @test - */ + #[Test] public function addDataSetsDefaultDataFromPageTsIfColumnIsDefinedInTca(): void { $input = [ @@ -180,9 +169,7 @@ final class DatabaseRowInitializeNewTest extends UnitTestCase self::assertSame($expected, $result['databaseRow']); } - /** - * @test - */ + #[Test] public function addDataDoesNotSetDefaultDataFromPageTsIfColumnIsMissingInTca(): void { $input = [ @@ -211,9 +198,7 @@ final class DatabaseRowInitializeNewTest extends UnitTestCase self::assertSame($expected, $result['databaseRow']); } - /** - * @test - */ + #[Test] public function addDataSetsDefaultDataOverrulingFromPageTs(): void { $input = [ @@ -252,9 +237,7 @@ final class DatabaseRowInitializeNewTest extends UnitTestCase self::assertSame($expected, $result['databaseRow']); } - /** - * @test - */ + #[Test] public function addDataSetsDefaultFromNeighborRow(): void { $input = [ @@ -284,9 +267,7 @@ final class DatabaseRowInitializeNewTest extends UnitTestCase self::assertSame($expected, $result['databaseRow']); } - /** - * @test - */ + #[Test] public function addDataSetsDefaultDataOverrulingFromNeighborRow(): void { $input = [ @@ -330,9 +311,7 @@ final class DatabaseRowInitializeNewTest extends UnitTestCase self::assertSame($expected, $result['databaseRow']); } - /** - * @test - */ + #[Test] public function addDataSetsDefaultDataFromDefaultValuesIfColumnIsDefinedInTca(): void { $input = [ @@ -362,9 +341,7 @@ final class DatabaseRowInitializeNewTest extends UnitTestCase self::assertSame($expected, $result['databaseRow']); } - /** - * @test - */ + #[Test] public function addDataDoesNotSetDefaultDataFromDefaultValuesIfColumnIsMissingInTca(): void { $input = [ @@ -398,9 +375,7 @@ final class DatabaseRowInitializeNewTest extends UnitTestCase self::assertSame($expected, $result['databaseRow']); } - /** - * @test - */ + #[Test] public function addDataSetsDefaultDataOverrulesOtherDefaults(): void { $input = [ @@ -449,9 +424,7 @@ final class DatabaseRowInitializeNewTest extends UnitTestCase self::assertSame($expected, $result['databaseRow']); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionWithGivenChildChildUidButMissingInlineConfig(): void { $input = [ @@ -467,9 +440,7 @@ final class DatabaseRowInitializeNewTest extends UnitTestCase (new DatabaseRowInitializeNew())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionWithGivenChildChildUidButIsNotInteger(): void { $input = [ @@ -485,9 +456,7 @@ final class DatabaseRowInitializeNewTest extends UnitTestCase (new DatabaseRowInitializeNew())->addData($input); } - /** - * @test - */ + #[Test] public function addDataSetsForeignSelectorFieldToValueOfChildChildUid(): void { $input = [ @@ -517,9 +486,7 @@ final class DatabaseRowInitializeNewTest extends UnitTestCase self::assertSame($expected, (new DatabaseRowInitializeNew())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfForeignSelectorDoesNotPointToGroupOrSelectField(): void { $input = [ @@ -547,9 +514,7 @@ final class DatabaseRowInitializeNewTest extends UnitTestCase (new DatabaseRowInitializeNew())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfInlineParentLanguageIsNoInteger(): void { $input = [ @@ -577,9 +542,7 @@ final class DatabaseRowInitializeNewTest extends UnitTestCase (new DatabaseRowInitializeNew())->addData($input); } - /** - * @test - */ + #[Test] public function addDataSetsSysLanguageUidFromParent(): void { $input = [ @@ -612,9 +575,7 @@ final class DatabaseRowInitializeNewTest extends UnitTestCase self::assertSame($expected, $result); } - /** - * @test - */ + #[Test] public function addDataSetsPidToVanillaUid(): void { $input = [ @@ -632,9 +593,7 @@ final class DatabaseRowInitializeNewTest extends UnitTestCase self::assertSame($expected, $result['databaseRow']); } - /** - * @test - */ + #[Test] public function addDataDoesNotUsePageTsValueForPidIfRecordIsNotInlineChild(): void { $input = [ @@ -658,9 +617,7 @@ final class DatabaseRowInitializeNewTest extends UnitTestCase self::assertSame($expected, (new DatabaseRowInitializeNew())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfPageTsConfigPidValueCanNotBeInterpretedAsInteger(): void { $input = [ @@ -684,9 +641,7 @@ final class DatabaseRowInitializeNewTest extends UnitTestCase (new DatabaseRowInitializeNew())->addData($input); } - /** - * @test - */ + #[Test] public function addDataDoesUsePageTsValueForPidIfRecordIsInlineChild(): void { $input = [ @@ -710,9 +665,7 @@ final class DatabaseRowInitializeNewTest extends UnitTestCase self::assertSame($expected, (new DatabaseRowInitializeNew())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSetsUidOfParentFieldIfRecordIsInlineChild(): void { $input = [ diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseSystemLanguageRowsTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseSystemLanguageRowsTest.php index 05217628bb2cdc89cbec40f0da17f9853518bfa5..efc63a99c700f9fe1a32d8c84af013b7e973b00c 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseSystemLanguageRowsTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseSystemLanguageRowsTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseSystemLanguageRows; use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; use TYPO3\CMS\Core\Http\Uri; @@ -27,9 +28,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class DatabaseSystemLanguageRowsTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfSiteObjectIsNotSet(): void { $this->expectException(\LogicException::class); @@ -37,9 +36,7 @@ final class DatabaseSystemLanguageRowsTest extends UnitTestCase (new DatabaseSystemLanguageRows())->addData([]); } - /** - * @test - */ + #[Test] public function addDataSetsDefaultLanguageAndAllEntries(): void { $languageService = $this->createMock(LanguageService::class); diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseUniqueUidNewRowTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseUniqueUidNewRowTest.php index 905197c15bb5b8a5a4fed875d6df3edaed7f34eb..3b957386d154b7454147d0909f7f691a8a2aec21 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseUniqueUidNewRowTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseUniqueUidNewRowTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseUniqueUidNewRow; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -30,9 +31,7 @@ final class DatabaseUniqueUidNewRowTest extends UnitTestCase $this->subject = new DatabaseUniqueUidNewRow(); } - /** - * @test - */ + #[Test] public function addDataReturnSameDataIfCommandIsEdit(): void { $input = [ @@ -44,9 +43,7 @@ final class DatabaseUniqueUidNewRowTest extends UnitTestCase self::assertSame($input, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataKeepsGivenUidIfAlreadySet(): void { $input = [ @@ -59,9 +56,7 @@ final class DatabaseUniqueUidNewRowTest extends UnitTestCase self::assertEquals($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfUidIsAlreadySetButDoesNotStartWithNewKeyword(): void { $input = [ @@ -75,9 +70,7 @@ final class DatabaseUniqueUidNewRowTest extends UnitTestCase $this->subject->addData($input); } - /** - * @test - */ + #[Test] public function addDataSetsUniqueId(): void { $input = [ diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseUserPermissionCheckTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseUserPermissionCheckTest.php index b6f4ab457422088735f53758e3856150090acaa4..06e8dc35a9a22ff8382059179d97f7a2f166e10f 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseUserPermissionCheckTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/DatabaseUserPermissionCheckTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use Psr\EventDispatcher\EventDispatcherInterface; use TYPO3\CMS\Backend\Form\Event\ModifyEditFormUserAccessEvent; @@ -47,9 +48,7 @@ final class DatabaseUserPermissionCheckTest extends UnitTestCase $GLOBALS['BE_USER']->user['uid'] = 42; } - /** - * @test - */ + #[Test] public function addDataSetsUserPermissionsOnPageForAdminUser(): void { $this->beUserMock->method('isAdmin')->willReturn(true); @@ -59,9 +58,7 @@ final class DatabaseUserPermissionCheckTest extends UnitTestCase self::assertSame(Permission::ALL, $result['userPermissionOnPage']); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfUserHasNoTablesModifyPermissionForGivenTable(): void { $input = [ @@ -76,9 +73,7 @@ final class DatabaseUserPermissionCheckTest extends UnitTestCase (new DatabaseUserPermissionCheck())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfUserHasNoContentEditPermissionsOnPage(): void { $input = [ @@ -104,9 +99,7 @@ final class DatabaseUserPermissionCheckTest extends UnitTestCase (new DatabaseUserPermissionCheck())->addData($input); } - /** - * @test - */ + #[Test] public function addDataAddsUserPermissionsOnPageForContentIfUserHasCorrespondingPermissions(): void { $input = [ @@ -131,9 +124,7 @@ final class DatabaseUserPermissionCheckTest extends UnitTestCase self::assertSame(Permission::CONTENT_EDIT, $result['userPermissionOnPage']); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfCommandIsEditTableIsPagesAndUserHasNoPagePermissions(): void { $input = [ @@ -158,9 +149,7 @@ final class DatabaseUserPermissionCheckTest extends UnitTestCase (new DatabaseUserPermissionCheck())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfCommandIsEditTableIsPagesAndUserHasNoDoktypePermissions(): void { $input = [ @@ -201,9 +190,7 @@ final class DatabaseUserPermissionCheckTest extends UnitTestCase (new DatabaseUserPermissionCheck())->addData($input); } - /** - * @test - */ + #[Test] public function addDataAddsUserPermissionsOnPageIfTableIsPagesAndUserHasPagePermissions(): void { $input = [ @@ -243,9 +230,7 @@ final class DatabaseUserPermissionCheckTest extends UnitTestCase self::assertSame(Permission::PAGE_EDIT, $result['userPermissionOnPage']); } - /** - * @test - */ + #[Test] public function addDataSetsPermissionsToAllIfRootLevelRestrictionForTableIsIgnoredForContentEditRecord(): void { $input = [ @@ -270,9 +255,7 @@ final class DatabaseUserPermissionCheckTest extends UnitTestCase self::assertSame(Permission::ALL, $result['userPermissionOnPage']); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfRootNodeShouldBeEditedWithoutPermissions(): void { $input = [ @@ -297,9 +280,7 @@ final class DatabaseUserPermissionCheckTest extends UnitTestCase (new DatabaseUserPermissionCheck())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfRecordEditAccessInternalsReturnsFalse(): void { $input = [ @@ -326,9 +307,7 @@ final class DatabaseUserPermissionCheckTest extends UnitTestCase (new DatabaseUserPermissionCheck())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionForNewContentRecordWithoutPermissions(): void { $input = [ @@ -354,9 +333,7 @@ final class DatabaseUserPermissionCheckTest extends UnitTestCase (new DatabaseUserPermissionCheck())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionForNewPageWithoutPermissions(): void { $input = [ @@ -384,9 +361,7 @@ final class DatabaseUserPermissionCheckTest extends UnitTestCase (new DatabaseUserPermissionCheck())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfHookDeniesAccess(): void { $input = [ @@ -418,9 +393,7 @@ final class DatabaseUserPermissionCheckTest extends UnitTestCase (new DatabaseUserPermissionCheck())->addData($input); } - /** - * @test - */ + #[Test] public function addDataSetsUserPermissionsOnPageForNewPageIfPageNewIsDeniedAndHookAllowsAccess(): void { $input = [ @@ -451,9 +424,7 @@ final class DatabaseUserPermissionCheckTest extends UnitTestCase self::assertSame(Permission::CONTENT_EDIT, $result['userPermissionOnPage']); } - /** - * @test - */ + #[Test] public function addDataSetsUserPermissionsOnPageForNewPage(): void { $input = [ @@ -478,9 +449,7 @@ final class DatabaseUserPermissionCheckTest extends UnitTestCase self::assertSame(Permission::PAGE_NEW, $result['userPermissionOnPage']); } - /** - * @test - */ + #[Test] public function addDataSetsUserPermissionsOnPageForNewContentRecord(): void { $input = [ @@ -505,9 +474,7 @@ final class DatabaseUserPermissionCheckTest extends UnitTestCase self::assertSame(Permission::CONTENT_EDIT, $result['userPermissionOnPage']); } - /** - * @test - */ + #[Test] public function addDataSetsPermissionsToAllIfRootLevelRestrictionForTableIsIgnoredForNewContentRecord(): void { $input = [ @@ -529,9 +496,7 @@ final class DatabaseUserPermissionCheckTest extends UnitTestCase self::assertSame(Permission::ALL, $result['userPermissionOnPage']); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionForNewRecordsOnRootLevelWithoutPermissions(): void { $input = [ diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/EvaluateDisplayConditionsTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/EvaluateDisplayConditionsTest.php index c8d39a891fa5edcb2376cf58827f62061ef27338..23eef29d5b9106f144fcf89e98666a510f7009c7 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/EvaluateDisplayConditionsTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/EvaluateDisplayConditionsTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataProvider\EvaluateDisplayConditions; use TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider\Fixtures\EvaluateDisplayConditionsTestClass; use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; @@ -25,9 +27,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class EvaluateDisplayConditionsTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfMultipleConditionsAreNotCombinedWithAndOrOr(): void { $input = [ @@ -50,9 +50,7 @@ final class EvaluateDisplayConditionsTest extends UnitTestCase (new EvaluateDisplayConditions())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIAConditionHasNoStringAsKey(): void { $input = [ @@ -72,9 +70,7 @@ final class EvaluateDisplayConditionsTest extends UnitTestCase (new EvaluateDisplayConditions())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfConditionIsNotStringOrArray(): void { $input = [ @@ -92,9 +88,7 @@ final class EvaluateDisplayConditionsTest extends UnitTestCase (new EvaluateDisplayConditions())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfConditionTypeIsUnknown(): void { $input = [ @@ -112,9 +106,7 @@ final class EvaluateDisplayConditionsTest extends UnitTestCase (new EvaluateDisplayConditions())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfFieldConditionHasNoFieldName(): void { $input = [ @@ -132,9 +124,7 @@ final class EvaluateDisplayConditionsTest extends UnitTestCase (new EvaluateDisplayConditions())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfFieldConditionHasNoOperator(): void { $input = [ @@ -152,9 +142,7 @@ final class EvaluateDisplayConditionsTest extends UnitTestCase (new EvaluateDisplayConditions())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfFieldConditionHasInvalidOperator(): void { $input = [ @@ -172,9 +160,7 @@ final class EvaluateDisplayConditionsTest extends UnitTestCase (new EvaluateDisplayConditions())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfFieldConditionHasNoOperand(): void { $input = [ @@ -192,9 +178,7 @@ final class EvaluateDisplayConditionsTest extends UnitTestCase (new EvaluateDisplayConditions())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfFieldConditionReqHasInvalidOperand(): void { $input = [ @@ -212,9 +196,7 @@ final class EvaluateDisplayConditionsTest extends UnitTestCase (new EvaluateDisplayConditions())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfFieldConditionNumberComparisonHasInvalidOperand(): void { $input = [ @@ -232,9 +214,7 @@ final class EvaluateDisplayConditionsTest extends UnitTestCase (new EvaluateDisplayConditions())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfFieldConditionRangeComparisonHasInvalidOperand(): void { $input = [ @@ -252,9 +232,7 @@ final class EvaluateDisplayConditionsTest extends UnitTestCase (new EvaluateDisplayConditions())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfFieldConditionRangeComparisonHasInvalidMaxOperand(): void { $input = [ @@ -272,9 +250,7 @@ final class EvaluateDisplayConditionsTest extends UnitTestCase (new EvaluateDisplayConditions())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfRecordConditionHasNoNewKeyword(): void { $input = [ @@ -292,9 +268,7 @@ final class EvaluateDisplayConditionsTest extends UnitTestCase (new EvaluateDisplayConditions())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfRecordConditionHasInvalidNewKeyword(): void { $input = [ @@ -312,9 +286,7 @@ final class EvaluateDisplayConditionsTest extends UnitTestCase (new EvaluateDisplayConditions())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfRecordConditionHasNoOperand(): void { $input = [ @@ -332,9 +304,7 @@ final class EvaluateDisplayConditionsTest extends UnitTestCase (new EvaluateDisplayConditions())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfRecordConditionHasInvalidOperand(): void { $input = [ @@ -352,9 +322,7 @@ final class EvaluateDisplayConditionsTest extends UnitTestCase (new EvaluateDisplayConditions())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfRecordConditionHasNoUidInDatabaseRow(): void { $input = [ @@ -372,9 +340,7 @@ final class EvaluateDisplayConditionsTest extends UnitTestCase (new EvaluateDisplayConditions())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfVersionConditionHasNoIsKeyword(): void { $input = [ @@ -392,9 +358,7 @@ final class EvaluateDisplayConditionsTest extends UnitTestCase (new EvaluateDisplayConditions())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfVersionConditionHasInvalidIsKeyword(): void { $input = [ @@ -412,9 +376,7 @@ final class EvaluateDisplayConditionsTest extends UnitTestCase (new EvaluateDisplayConditions())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfVersionConditionHasNoOperand(): void { $input = [ @@ -432,9 +394,7 @@ final class EvaluateDisplayConditionsTest extends UnitTestCase (new EvaluateDisplayConditions())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfVersionConditionHasInvalidOperand(): void { $input = [ @@ -452,9 +412,7 @@ final class EvaluateDisplayConditionsTest extends UnitTestCase (new EvaluateDisplayConditions())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfVersionConditionHasNoUidInDatabaseRow(): void { $input = [ @@ -472,9 +430,7 @@ final class EvaluateDisplayConditionsTest extends UnitTestCase (new EvaluateDisplayConditions())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfUserConditionHasNoUserfuncSpecified(): void { $input = [ @@ -492,9 +448,7 @@ final class EvaluateDisplayConditionsTest extends UnitTestCase (new EvaluateDisplayConditions())->addData($input); } - /** - * @test - */ + #[Test] public function addDataEvaluatesUserCondition(): void { $this->expectException(\RuntimeException::class); @@ -512,9 +466,7 @@ final class EvaluateDisplayConditionsTest extends UnitTestCase (new EvaluateDisplayConditions())->addData($input); } - /** - * @test - */ + #[Test] public function addDataPassesFlexContextToUserCondition(): void { $input = [ @@ -548,9 +500,7 @@ final class EvaluateDisplayConditionsTest extends UnitTestCase self::assertSame($expected, (new EvaluateDisplayConditions())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfFlexSheetNameAndFieldNameCombinationsOverlap(): void { $input = [ @@ -588,9 +538,7 @@ final class EvaluateDisplayConditionsTest extends UnitTestCase (new EvaluateDisplayConditions())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfFlexSheetConditionReferencesFieldFromSameSheet(): void { $input = [ @@ -622,9 +570,7 @@ final class EvaluateDisplayConditionsTest extends UnitTestCase (new EvaluateDisplayConditions())->addData($input); } - /** - * @test - */ + #[Test] public function addDataTrowsExceptionIfFlexFieldSheetConditionReferencesNotExistingFieldValue(): void { $input = [ @@ -654,9 +600,7 @@ final class EvaluateDisplayConditionsTest extends UnitTestCase (new EvaluateDisplayConditions())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfFlexFieldFieldConditionReferencesNotExistingFieldValue(): void { $input = [ @@ -690,9 +634,7 @@ final class EvaluateDisplayConditionsTest extends UnitTestCase (new EvaluateDisplayConditions())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfFlexFieldReferencingFlexFieldIsNotFoundInFieldValue(): void { $input = [ @@ -725,9 +667,7 @@ final class EvaluateDisplayConditionsTest extends UnitTestCase (new EvaluateDisplayConditions())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfFlexSectionContainerFoundNoReferencedFieldValue(): void { $input = [ @@ -3500,10 +3440,8 @@ final class EvaluateDisplayConditionsTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider addDataRemovesTcaReferencingOtherFieldsInDisplayConditionDataProvider - */ + #[DataProvider('addDataRemovesTcaReferencingOtherFieldsInDisplayConditionDataProvider')] + #[Test] public function addDataRemovesTcaReferencingOtherFieldsInDisplayCondition(string $processedTcaFieldToBeRemovedPath, array $databaseRow, array $processedTca): void { $input = [ @@ -3764,9 +3702,9 @@ final class EvaluateDisplayConditionsTest extends UnitTestCase /** * @param string $condition * @param string $expectedResult - * @dataProvider conditionStringDataProvider - * @test */ + #[DataProvider('conditionStringDataProvider')] + #[Test] public function matchConditionStrings($condition, array $record, $expectedResult): void { $input = [ @@ -3798,9 +3736,9 @@ final class EvaluateDisplayConditionsTest extends UnitTestCase /** * @param string $condition * @param string $expectedResult - * @dataProvider conditionStringDataProvider - * @test */ + #[DataProvider('conditionStringDataProvider')] + #[Test] public function matchConditionStringsWithRecordTestFieldBeingArray($condition, array $record, $expectedResult): void { $input = [ @@ -3837,9 +3775,7 @@ final class EvaluateDisplayConditionsTest extends UnitTestCase self::assertSame($expected, (new EvaluateDisplayConditions())->addData($input)); } - /** - * @test - */ + #[Test] public function matchHideForNonAdminsReturnsTrueIfBackendUserIsAdmin(): void { $input = [ @@ -3866,9 +3802,7 @@ final class EvaluateDisplayConditionsTest extends UnitTestCase self::assertSame($expected, (new EvaluateDisplayConditions())->addData($input)); } - /** - * @test - */ + #[Test] public function matchHideForNonAdminsReturnsFalseIfBackendUserIsNotAdmin(): void { $input = [ diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/InitializeProcessedTcaTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/InitializeProcessedTcaTest.php index c5b2ab98fa0d2001037ffbb5507b27467f4e1fba..f0cb2a364c40f95cf5c744502adece316b8bc414 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/InitializeProcessedTcaTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/InitializeProcessedTcaTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataProvider\InitializeProcessedTca; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -30,9 +31,7 @@ final class InitializeProcessedTcaTest extends UnitTestCase $this->subject = new InitializeProcessedTca(); } - /** - * @test - */ + #[Test] public function addDataSetsTableTcaFromGlobalsInResult(): void { $input = [ @@ -46,9 +45,7 @@ final class InitializeProcessedTcaTest extends UnitTestCase self::assertEquals($expected, $result['processedTca']); } - /** - * @test - */ + #[Test] public function addDataKeepsGivenProcessedTca(): void { $input = [ @@ -63,9 +60,7 @@ final class InitializeProcessedTcaTest extends UnitTestCase self::assertEquals($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfGlobalTableTcaIsNotSet(): void { $input = [ @@ -78,9 +73,7 @@ final class InitializeProcessedTcaTest extends UnitTestCase $this->subject->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfGlobalTableTcaIsNotAnArray(): void { $input = [ diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/InlineOverrideChildTcaTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/InlineOverrideChildTcaTest.php index 7f00b8c75fe1c5f0820b23678a1035948a07b9e5..a7b0c1ec1cff225981b76d885fd24fa2c769a387 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/InlineOverrideChildTcaTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/InlineOverrideChildTcaTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataProvider\InlineOverrideChildTca; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -30,9 +31,7 @@ final class InlineOverrideChildTcaTest extends UnitTestCase $this->subject = new InlineOverrideChildTca(); } - /** - * @test - */ + #[Test] public function addDataOverrulesShowitemByGivenOverrideChildTca(): void { $input = [ @@ -63,9 +62,7 @@ final class InlineOverrideChildTcaTest extends UnitTestCase self::assertSame($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataAddsTypeShowitemByGivenOverrideChildTca(): void { $input = [ @@ -100,9 +97,7 @@ final class InlineOverrideChildTcaTest extends UnitTestCase self::assertSame($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataMergesForeignSelectorFieldTcaOverride(): void { $input = [ @@ -157,9 +152,7 @@ final class InlineOverrideChildTcaTest extends UnitTestCase self::assertSame($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSetsDefaultValueForChildRecordColumn(): void { $input = [ @@ -189,9 +182,7 @@ final class InlineOverrideChildTcaTest extends UnitTestCase self::assertSame($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionForRestrictedField(): void { $input = [ diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/PageTsConfigMergedTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/PageTsConfigMergedTest.php index 8456244ab9c95d675175e558b68ced48f2cf40e1..0c648c911f3555b287e21daeb4e0fd5d3b74c625 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/PageTsConfigMergedTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/PageTsConfigMergedTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataProvider\PageTsConfigMerged; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -30,9 +31,7 @@ final class PageTsConfigMergedTest extends UnitTestCase $this->subject = new PageTsConfigMerged(); } - /** - * @test - */ + #[Test] public function addDataSetsMergedTsConfigToTsConfig(): void { $input = [ @@ -47,9 +46,7 @@ final class PageTsConfigMergedTest extends UnitTestCase self::assertSame($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataKeepsTableSpecificConfigurationWithoutType(): void { $input = [ @@ -70,9 +67,7 @@ final class PageTsConfigMergedTest extends UnitTestCase self::assertSame($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataMergesTypeSpecificConfiguration(): void { $input = [ @@ -105,9 +100,7 @@ final class PageTsConfigMergedTest extends UnitTestCase self::assertSame($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataTypeSpecificConfigurationOverwritesMainConfiguration(): void { $input = [ diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/SiteDatabaseEditRowTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/SiteDatabaseEditRowTest.php index e3f3448b59428a3253a029ef8a0720f9ecf9c8ca..6eb6ea55d9fb8a6fe22a84aa3ceb2c75f3e4d6fc 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/SiteDatabaseEditRowTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/SiteDatabaseEditRowTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataProvider\SiteDatabaseEditRow; use TYPO3\CMS\Core\Configuration\SiteConfiguration; use TYPO3\CMS\Core\Core\ApplicationContext; @@ -45,9 +46,7 @@ final class SiteDatabaseEditRowTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function addDataDoesNotChangeResultIfCommandIsNotEdit(): void { $input = [ @@ -58,9 +57,7 @@ final class SiteDatabaseEditRowTest extends UnitTestCase self::assertSame($input, (new SiteDatabaseEditRow($siteConfigurationMock))->addData($input)); } - /** - * @test - */ + #[Test] public function addDataDoesNotChangeResultIfDatabaseRowIsNotEmpty(): void { $input = [ @@ -73,9 +70,7 @@ final class SiteDatabaseEditRowTest extends UnitTestCase self::assertSame($input, (new SiteDatabaseEditRow($siteConfigurationMock))->addData($input)); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfTableNameIsNotExpected(): void { $input = [ @@ -90,9 +85,7 @@ final class SiteDatabaseEditRowTest extends UnitTestCase (new SiteDatabaseEditRow($siteConfigurationMock))->addData($input); } - /** - * @test - */ + #[Test] public function addDataSetsDataForSysSite(): void { $input = [ @@ -130,9 +123,7 @@ final class SiteDatabaseEditRowTest extends UnitTestCase self::assertEquals($expected, (new SiteDatabaseEditRow($siteConfiguration))->addData($input)); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionWithInvalidErrorHandling(): void { $input = [ @@ -158,9 +149,7 @@ final class SiteDatabaseEditRowTest extends UnitTestCase (new SiteDatabaseEditRow($siteConfiguration))->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionWithInvalidLanguage(): void { $input = [ @@ -186,9 +175,7 @@ final class SiteDatabaseEditRowTest extends UnitTestCase (new SiteDatabaseEditRow($siteConfiguration))->addData($input); } - /** - * @test - */ + #[Test] public function addDataAddLanguageRow(): void { $input = [ diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/SiteResolvingTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/SiteResolvingTest.php index 6655c5dcd26aa4f5afff9f19f6b53db1eb1b0708..81636726d55c44388ccb66acfc002aac751e9cac 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/SiteResolvingTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/SiteResolvingTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataProvider\SiteResolving; use TYPO3\CMS\Core\Site\Entity\Site; use TYPO3\CMS\Core\Site\SiteFinder; @@ -26,9 +27,7 @@ final class SiteResolvingTest extends UnitTestCase { protected bool $resetSingletonInstances = true; - /** - * @test - */ + #[Test] public function addDataAddsSiteObjectOfDefaultLanguageRow(): void { $siteFinderMock = $this->createMock(SiteFinder::class); @@ -47,9 +46,7 @@ final class SiteResolvingTest extends UnitTestCase self::assertSame($expected, (new SiteResolving($siteFinderMock))->addData($input)); } - /** - * @test - */ + #[Test] public function addDataAddsSiteObjectOfEffectivePid(): void { $siteFinderMock = $this->createMock(SiteFinder::class); diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaCheckboxItemsTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaCheckboxItemsTest.php index d705dee1c7bbb3c9c42afced3f666dbba0e1cfa7..77b7ae54cf998f91755861d84f5f9c7ee3bc44e1 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaCheckboxItemsTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaCheckboxItemsTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataProvider\TcaCheckboxItems; use TYPO3\CMS\Core\Localization\LanguageService; use TYPO3\CMS\Core\Messaging\FlashMessage; @@ -377,10 +379,8 @@ final class TcaCheckboxItemsTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider checkboxConfigurationDataProvider - */ + #[DataProvider('checkboxConfigurationDataProvider')] + #[Test] public function addDataKeepExistingItems(array $input, array $expectedResult): void { $languageService = $this->createMock(LanguageService::class); @@ -390,9 +390,7 @@ final class TcaCheckboxItemsTest extends UnitTestCase self::assertSame($expectedResult, (new TcaCheckboxItems())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfItemsAreNoArray(): void { $input = [ @@ -420,9 +418,7 @@ final class TcaCheckboxItemsTest extends UnitTestCase (new TcaCheckboxItems())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfItemLabelIsNotSet(): void { $input = [ @@ -452,9 +448,7 @@ final class TcaCheckboxItemsTest extends UnitTestCase (new TcaCheckboxItems())->addData($input); } - /** - * @test - */ + #[Test] public function addDataTranslatesItemLabels(): void { $input = [ @@ -487,9 +481,7 @@ final class TcaCheckboxItemsTest extends UnitTestCase self::assertSame($expected, (new TcaCheckboxItems())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataCallsItemsProcFunc(): void { $input = [ @@ -531,9 +523,7 @@ final class TcaCheckboxItemsTest extends UnitTestCase self::assertSame('foo', $items[0]['label']); } - /** - * @test - */ + #[Test] public function addDataItemsProcFuncReceivesParameters(): void { $input = [ @@ -619,9 +609,7 @@ final class TcaCheckboxItemsTest extends UnitTestCase (new TcaCheckboxItems())->addData($input); } - /** - * @test - */ + #[Test] public function addDataItemsProcFuncEnqueuesFlashMessageOnException(): void { $input = [ @@ -685,9 +673,7 @@ final class TcaCheckboxItemsTest extends UnitTestCase (new TcaCheckboxItems())->addData($input); } - /** - * @test - */ + #[Test] public function addDataTranslatesItemLabelsFromPageTsConfig(): void { $input = [ diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaColumnsOverridesTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaColumnsOverridesTest.php index 61ac2d5133bd49d8790c104ad56e721c2776c056..bc553a99c22a8111260617d7aa1fe504ffe8e8e9 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaColumnsOverridesTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaColumnsOverridesTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataProvider\TcaColumnsOverrides; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -30,9 +32,7 @@ final class TcaColumnsOverridesTest extends UnitTestCase $this->subject = new TcaColumnsOverrides(); } - /** - * @test - */ + #[Test] public function addDataRemovesGivenColumnsOverrides(): void { $input = [ @@ -56,9 +56,7 @@ final class TcaColumnsOverridesTest extends UnitTestCase self::assertEquals($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataMergesColumnsOverridesIntoColumns(): void { $input = [ @@ -92,9 +90,7 @@ final class TcaColumnsOverridesTest extends UnitTestCase self::assertEquals($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataMergesColumnsOverridesDefaultValueIntoDatabaseRow(): void { $input = [ @@ -172,10 +168,8 @@ final class TcaColumnsOverridesTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider addDataRespectsTSconfigDefaultValuesForNewRecordsDataProvider - */ + #[DataProvider('addDataRespectsTSconfigDefaultValuesForNewRecordsDataProvider')] + #[Test] public function addDataRespectsTSconfigDefaultValuesForNewRecords(array $result): void { $input = array_replace_recursive([ diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaColumnsProcessCommonTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaColumnsProcessCommonTest.php index 033fa6eb049358e5c33dba26a8a76dc209fb6b52..62e16bb44920ab6ded641cb68326559be06f82a3 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaColumnsProcessCommonTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaColumnsProcessCommonTest.php @@ -17,14 +17,13 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataProvider\TcaColumnsProcessCommon; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class TcaColumnsProcessCommonTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function addDataRegistersOrigUidColumn(): void { $input = [ @@ -42,9 +41,7 @@ final class TcaColumnsProcessCommonTest extends UnitTestCase self::assertSame($expected, (new TcaColumnsProcessCommon())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataRegistersRecordTypeColumn(): void { $input = [ @@ -62,9 +59,7 @@ final class TcaColumnsProcessCommonTest extends UnitTestCase self::assertSame($expected, (new TcaColumnsProcessCommon())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataRegistersRecordTypeRelationColumn(): void { $input = [ @@ -82,9 +77,7 @@ final class TcaColumnsProcessCommonTest extends UnitTestCase self::assertSame($expected, (new TcaColumnsProcessCommon())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataRegistersLanguageFieldColumn(): void { $input = [ @@ -102,9 +95,7 @@ final class TcaColumnsProcessCommonTest extends UnitTestCase self::assertSame($expected, (new TcaColumnsProcessCommon())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataRegistersTransOrigPointerColumn(): void { $input = [ @@ -122,9 +113,7 @@ final class TcaColumnsProcessCommonTest extends UnitTestCase self::assertSame($expected, (new TcaColumnsProcessCommon())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataRegistersTransOrigDiffSourceColumn(): void { $input = [ @@ -142,9 +131,7 @@ final class TcaColumnsProcessCommonTest extends UnitTestCase self::assertSame($expected, (new TcaColumnsProcessCommon())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataRegistersSingleSubtypesAddlistFields(): void { $input = [ @@ -171,9 +158,7 @@ final class TcaColumnsProcessCommonTest extends UnitTestCase self::assertSame($expected, (new TcaColumnsProcessCommon())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataRegistersMultipleSubtypesAddlistFields(): void { $input = [ diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaColumnsProcessFieldDescriptionsTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaColumnsProcessFieldDescriptionsTest.php index 43b2461b787753b75e23fc5994fea9c6feae5e8e..8e0bd97b7aab437c3564eb021944a280800212ad 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaColumnsProcessFieldDescriptionsTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaColumnsProcessFieldDescriptionsTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataProvider\TcaColumnsProcessFieldDescriptions; use TYPO3\CMS\Core\Cache\Frontend\FrontendInterface; use TYPO3\CMS\Core\Localization\LanguageService; @@ -34,9 +35,7 @@ final class TcaColumnsProcessFieldDescriptionsTest extends UnitTestCase $this->subject = new TcaColumnsProcessFieldDescriptions(); } - /** - * @test - */ + #[Test] public function addDataKeepsDescriptionAsIsIfNoOverrideIsGiven(): void { $input = [ @@ -60,9 +59,7 @@ final class TcaColumnsProcessFieldDescriptionsTest extends UnitTestCase self::assertSame($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataAddsDescriptionToExistingField(): void { $input = [ @@ -93,9 +90,7 @@ final class TcaColumnsProcessFieldDescriptionsTest extends UnitTestCase self::assertSame($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSetsDescriptionFromPageTsConfig(): void { $input = [ @@ -128,9 +123,7 @@ final class TcaColumnsProcessFieldDescriptionsTest extends UnitTestCase self::assertSame($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSetsDescriptionFromPageTsConfigForSpecificLanguage(): void { $input = [ diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaColumnsProcessFieldLabelsTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaColumnsProcessFieldLabelsTest.php index 4660411e7a44107dbbf1386c825f738d1511ab82..32ba99f683d08c24388d9d047167ae0b1c7ecf0e 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaColumnsProcessFieldLabelsTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaColumnsProcessFieldLabelsTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataProvider\TcaColumnsProcessFieldLabels; use TYPO3\CMS\Core\Cache\Frontend\FrontendInterface; use TYPO3\CMS\Core\Localization\LanguageService; @@ -26,9 +27,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class TcaColumnsProcessFieldLabelsTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function addDataKeepsLabelAsIsIfNoOverrideIsGiven(): void { $input = [ @@ -53,9 +52,7 @@ final class TcaColumnsProcessFieldLabelsTest extends UnitTestCase self::assertSame($expected, (new TcaColumnsProcessFieldLabels())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSetsLabelFromShowitem(): void { $input = [ @@ -85,9 +82,7 @@ final class TcaColumnsProcessFieldLabelsTest extends UnitTestCase self::assertSame($expected, (new TcaColumnsProcessFieldLabels())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSetsLabelFromPalettesShowitem(): void { $input = [ @@ -123,9 +118,7 @@ final class TcaColumnsProcessFieldLabelsTest extends UnitTestCase self::assertSame($expected, (new TcaColumnsProcessFieldLabels())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSetsLabelFromPageTsConfig(): void { $input = [ @@ -159,9 +152,7 @@ final class TcaColumnsProcessFieldLabelsTest extends UnitTestCase self::assertSame($expected, (new TcaColumnsProcessFieldLabels())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSetsLabelFromPageTsConfigForSpecificLanguage(): void { $input = [ diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaColumnsProcessPlaceholdersTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaColumnsProcessPlaceholdersTest.php index 2e4f4204fe27996dbfb3ef49569d0680da030dff..f1813131b48e15bc4302007fc5b9c437ae0cc574 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaColumnsProcessPlaceholdersTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaColumnsProcessPlaceholdersTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataProvider\TcaColumnsProcessPlaceholders; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -30,9 +31,7 @@ final class TcaColumnsProcessPlaceholdersTest extends UnitTestCase $this->subject = new TcaColumnsProcessPlaceholders(); } - /** - * @test - */ + #[Test] public function addDataRegistersPlaceholderColumns(): void { $input = [ @@ -54,9 +53,7 @@ final class TcaColumnsProcessPlaceholdersTest extends UnitTestCase self::assertSame($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataRegistersFirstPlaceholderColumn(): void { $input = [ @@ -78,9 +75,7 @@ final class TcaColumnsProcessPlaceholdersTest extends UnitTestCase self::assertSame($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataRegistersAlternativeLabelColumn(): void { $input = [ diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaColumnsProcessRecordTitleTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaColumnsProcessRecordTitleTest.php index 40eb5a0525f9dc2f48cfcf2528b71afe8b83835f..c571b51438d2f613222d280c2e558f9f182d7ab2 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaColumnsProcessRecordTitleTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaColumnsProcessRecordTitleTest.php @@ -17,14 +17,13 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataProvider\TcaColumnsProcessRecordTitle; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class TcaColumnsProcessRecordTitleTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function addDataRegistersLabelColumn(): void { $input = [ @@ -43,9 +42,7 @@ final class TcaColumnsProcessRecordTitleTest extends UnitTestCase self::assertSame($expected, (new TcaColumnsProcessRecordTitle())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataRegistersAlternativeLabelColumn(): void { $input = [ @@ -65,9 +62,7 @@ final class TcaColumnsProcessRecordTitleTest extends UnitTestCase self::assertSame($expected, (new TcaColumnsProcessRecordTitle())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataRegistersForeignLabelInInlineContext(): void { $input = [ @@ -83,9 +78,7 @@ final class TcaColumnsProcessRecordTitleTest extends UnitTestCase self::assertSame($expected, (new TcaColumnsProcessRecordTitle())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataRegistersSymmetricLabelInInlineContext(): void { $input = [ diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaColumnsProcessShowitemTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaColumnsProcessShowitemTest.php index bd31436596678ccb59563a79c52ba5c84001f834..84d075d2de405c07c72758301d5fbfc4db7447a4 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaColumnsProcessShowitemTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaColumnsProcessShowitemTest.php @@ -17,14 +17,13 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataProvider\TcaColumnsProcessShowitem; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class TcaColumnsProcessShowitemTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfTypesHasNoShowitem(): void { $input = [ @@ -46,9 +45,7 @@ final class TcaColumnsProcessShowitemTest extends UnitTestCase (new TcaColumnsProcessShowitem())->addData($input); } - /** - * @test - */ + #[Test] public function addDataRegistersColumnsFieldReferencedInShowitems(): void { $input = [ @@ -83,9 +80,7 @@ final class TcaColumnsProcessShowitemTest extends UnitTestCase self::assertSame($expected, (new TcaColumnsProcessShowitem())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataKeepsColumnsFieldReferencedInPalette(): void { $input = [ @@ -125,9 +120,7 @@ final class TcaColumnsProcessShowitemTest extends UnitTestCase self::assertSame($expected, (new TcaColumnsProcessShowitem())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSkipsColumnsNotReferencedInShowitemOrPalette(): void { $input = [ @@ -171,9 +164,7 @@ final class TcaColumnsProcessShowitemTest extends UnitTestCase self::assertSame($expected, (new TcaColumnsProcessShowitem())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSkipsColumnsForCollapsedInlineChild(): void { $input = [ @@ -208,9 +199,7 @@ final class TcaColumnsProcessShowitemTest extends UnitTestCase self::assertSame($expected, (new TcaColumnsProcessShowitem())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSkipsColumnsForCollapsedAllInlineChild(): void { $input = [ @@ -252,9 +241,7 @@ final class TcaColumnsProcessShowitemTest extends UnitTestCase self::assertSame($expected, (new TcaColumnsProcessShowitem())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataAddsColumnsForExpandedInlineChild(): void { $input = [ diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaColumnsRemoveUnusedTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaColumnsRemoveUnusedTest.php index f710a89de00fae3056db06122ea2a665b2cca347..319aa2efa33791eb4a08af9ae2356956875b6f92 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaColumnsRemoveUnusedTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaColumnsRemoveUnusedTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataProvider\TcaColumnsRemoveUnused; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -30,9 +31,7 @@ final class TcaColumnsRemoveUnusedTest extends UnitTestCase $this->subject = new TcaColumnsRemoveUnused(); } - /** - * @test - */ + #[Test] public function addDataKeepsColumnsToProcess(): void { $input = [ diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaFlexPrepareTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaFlexPrepareTest.php index ae473dab3623ea98db90576fba219ef2ad940c34..179de1a6dbe46e8da2090ba910abdcf8b0ef1604 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaFlexPrepareTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaFlexPrepareTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use Psr\EventDispatcher\EventDispatcherInterface; use TYPO3\CMS\Backend\Form\FormDataProvider\TcaFlexPrepare; use TYPO3\CMS\Core\Cache\CacheManager; @@ -48,9 +49,7 @@ final class TcaFlexPrepareTest extends UnitTestCase parent::tearDown(); } - /** - * @test - */ + #[Test] public function addDataKeepsExistingDataStructure(): void { $input = [ @@ -95,9 +94,7 @@ final class TcaFlexPrepareTest extends UnitTestCase self::assertEquals($expected, (new TcaFlexPrepare())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSetsParsedDataStructureArray(): void { $input = [ @@ -164,9 +161,7 @@ final class TcaFlexPrepareTest extends UnitTestCase self::assertEquals($expected, (new TcaFlexPrepare())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSetsParsedDataStructureArrayWithSheets(): void { $input = [ @@ -239,9 +234,7 @@ final class TcaFlexPrepareTest extends UnitTestCase self::assertEquals($expected, (new TcaFlexPrepare())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataInitializesDatabaseRowValueIfNoDataStringIsGiven(): void { $input = [ @@ -283,9 +276,7 @@ final class TcaFlexPrepareTest extends UnitTestCase self::assertEquals($expected, (new TcaFlexPrepare())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSetsParsedDataStructureArrayRecursive(): void { $input = [ @@ -425,9 +416,8 @@ final class TcaFlexPrepareTest extends UnitTestCase * Test of the data provider when called for a section with already * resolved flex form, e.g. in an ajax request (tcaSelectTreeAjaxFieldData), * which got "reduced to the relevant element only". - * - * @test */ + #[Test] public function addDataMigratesResolvedFlexformTca(): void { $columnConfig = [ diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaFlexProcessTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaFlexProcessTest.php index 29da367cd447ac74cdf108aa23e9a0e80f88e5ef..3deb7121dfad1f12e9a4ea985758e6878bb186a1 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaFlexProcessTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaFlexProcessTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Backend\Form\FormDataGroup\FlexFormSegment; use TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseRowDefaultValues; @@ -45,9 +46,7 @@ final class TcaFlexProcessTest extends UnitTestCase $GLOBALS['TYPO3_CONF_VARS']['SYS']['formEngine']['formDataGroup']['flexFormSegment'] = []; } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionWithMissingDataStructureIdentifier(): void { $input = [ @@ -71,9 +70,7 @@ final class TcaFlexProcessTest extends UnitTestCase (new TcaFlexProcess())->addData($input); } - /** - * @test - */ + #[Test] public function addDataRemovesSheetIfDisabledByPageTsConfig(): void { $input = [ @@ -136,9 +133,7 @@ final class TcaFlexProcessTest extends UnitTestCase self::assertEquals($expected, (new TcaFlexProcess())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSetsSheetTitleFromPageTsConfig(): void { $input = [ @@ -219,9 +214,7 @@ final class TcaFlexProcessTest extends UnitTestCase self::assertEquals($expected, (new TcaFlexProcess())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSetsSheetDescriptionFromPageTsConfig(): void { $input = [ @@ -302,9 +295,7 @@ final class TcaFlexProcessTest extends UnitTestCase self::assertEquals($expected, (new TcaFlexProcess())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSetsSheetShortDescriptionFromPageTsConfig(): void { $input = [ @@ -385,9 +376,7 @@ final class TcaFlexProcessTest extends UnitTestCase self::assertEquals($expected, (new TcaFlexProcess())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSetsSheetShortDescriptionForSingleSheetFromPageTsConfig(): void { $input = [ @@ -468,9 +457,7 @@ final class TcaFlexProcessTest extends UnitTestCase self::assertEquals($expected, (new TcaFlexProcess())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataRemovesExcludeFieldFromDataStructure(): void { $input = [ @@ -535,9 +522,7 @@ final class TcaFlexProcessTest extends UnitTestCase self::assertEquals($expected, (new TcaFlexProcess())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataKeepsExcludeFieldInDataStructureWithUserAccess(): void { $input = [ @@ -610,9 +595,7 @@ final class TcaFlexProcessTest extends UnitTestCase self::assertEquals($expected, (new TcaFlexProcess())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataKeepsExcludeFieldInDataStructureForAdminUser(): void { $input = [ @@ -685,9 +668,7 @@ final class TcaFlexProcessTest extends UnitTestCase self::assertEquals($expected, (new TcaFlexProcess())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataRemovesPageTsDisabledFieldFromDataStructure(): void { $input = [ @@ -762,9 +743,7 @@ final class TcaFlexProcessTest extends UnitTestCase self::assertEquals($expected, (new TcaFlexProcess())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataHandlesPageTsConfigSettingsOfSingleFlexField(): void { $input = [ @@ -871,9 +850,7 @@ final class TcaFlexProcessTest extends UnitTestCase self::assertEquals($expected, (new TcaFlexProcess())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSetsDefaultValueFromFlexTcaForField(): void { $input = [ @@ -937,9 +914,7 @@ final class TcaFlexProcessTest extends UnitTestCase self::assertEquals($expected, (new TcaFlexProcess())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionForDataStructureTypeArrayWithoutSection(): void { $input = [ @@ -987,9 +962,7 @@ final class TcaFlexProcessTest extends UnitTestCase (new TcaFlexProcess())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionForDataStructureSectionWithoutTypeArray(): void { $input = [ @@ -1037,9 +1010,7 @@ final class TcaFlexProcessTest extends UnitTestCase (new TcaFlexProcess())->addData($input); } - /** - * @test - */ + #[Test] public function addDataSetsValuesAndStructureForSectionContainerElements(): void { $input = [ @@ -1147,9 +1118,7 @@ final class TcaFlexProcessTest extends UnitTestCase self::assertEquals($expected, (new TcaFlexProcess())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionForInlineElementsNestedInSectionContainers(): void { $input = [ @@ -1208,9 +1177,7 @@ final class TcaFlexProcessTest extends UnitTestCase (new TcaFlexProcess())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionForNestedSectionContainers(): void { $input = [ @@ -1269,9 +1236,7 @@ final class TcaFlexProcessTest extends UnitTestCase (new TcaFlexProcess())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionForSelectElementsInSectionContainers(): void { $input = [ @@ -1330,9 +1295,7 @@ final class TcaFlexProcessTest extends UnitTestCase (new TcaFlexProcess())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionForGroupElementsInSectionContainers(): void { $input = [ @@ -1391,9 +1354,7 @@ final class TcaFlexProcessTest extends UnitTestCase (new TcaFlexProcess())->addData($input); } - /** - * @test - */ + #[Test] public function addDataCallsFlexFormSegmentGroupForFieldAndAddsFlexParentDatabaseRow(): void { $input = [ @@ -1450,9 +1411,7 @@ final class TcaFlexProcessTest extends UnitTestCase (new TcaFlexProcess())->addData($input); } - /** - * @test - */ + #[Test] public function addDataCallsFlexFormSegmentGroupForDummyContainerAndAddsFlexParentDatabaseRow(): void { $input = [ diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaFolderTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaFolderTest.php index 7355602997cf1899a0a958f93f410a501e14380f..75a66b781d94b83f3c94dddd3d3da86d73e55b4d 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaFolderTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaFolderTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataProvider\TcaFolder; use TYPO3\CMS\Core\Resource\Folder; use TYPO3\CMS\Core\Resource\ResourceFactory; @@ -27,9 +28,7 @@ final class TcaFolderTest extends UnitTestCase { protected bool $resetSingletonInstances = true; - /** - * @test - */ + #[Test] public function addDataReturnsFieldUnchangedIfFieldIsNotTypeFolder(): void { $input = [ @@ -50,9 +49,7 @@ final class TcaFolderTest extends UnitTestCase self::assertSame($expected, (new TcaFolder())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSetsFolderData(): void { $input = [ diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaGroupTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaGroupTest.php index ace9e3d0ae61c81f8e9dfe214313c519e4aa02c7..c35324e159f2182bca6d994abdcf9453359cc924 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaGroupTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaGroupTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Clipboard\Clipboard; use TYPO3\CMS\Backend\Form\FormDataProvider\TcaGroup; use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; @@ -28,9 +29,7 @@ final class TcaGroupTest extends UnitTestCase { protected bool $resetSingletonInstances = true; - /** - * @test - */ + #[Test] public function addDataReturnsFieldUnchangedIfFieldIsNotTypeGroup(): void { $input = [ @@ -51,9 +50,7 @@ final class TcaGroupTest extends UnitTestCase self::assertSame($expected, (new TcaGroup())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSetsDatabaseData(): void { $aFieldConfig = [ diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaInlineConfigurationTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaInlineConfigurationTest.php index f8dfcfdc4f0e8cc851f43f007fd1a453536bac9a..1f06151a63235390189668cb9e59d2dac1f3ddde 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaInlineConfigurationTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaInlineConfigurationTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataProvider\TcaInlineConfiguration; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -45,9 +46,7 @@ final class TcaInlineConfigurationTest extends UnitTestCase ], ]; - /** - * @test - */ + #[Test] public function addDataThrowsExceptionForInlineFieldWithoutForeignTableConfig(): void { $input = [ @@ -68,9 +67,7 @@ final class TcaInlineConfigurationTest extends UnitTestCase (new TcaInlineConfiguration())->addData($input); } - /** - * @test - */ + #[Test] public function addDataSetsDefaults(): void { $input = [ @@ -90,9 +87,7 @@ final class TcaInlineConfigurationTest extends UnitTestCase self::assertEquals($expected, (new TcaInlineConfiguration())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataKeepsGivenMinitems(): void { $input = [ @@ -114,9 +109,7 @@ final class TcaInlineConfigurationTest extends UnitTestCase self::assertEquals($expected, (new TcaInlineConfiguration())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataForcesMinitemsPositive(): void { $input = [ @@ -138,9 +131,7 @@ final class TcaInlineConfigurationTest extends UnitTestCase self::assertEquals($expected, (new TcaInlineConfiguration())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataKeepsGivenMaxitems(): void { $input = [ @@ -162,9 +153,7 @@ final class TcaInlineConfigurationTest extends UnitTestCase self::assertEquals($expected, (new TcaInlineConfiguration())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataForcesMaxitemsPositive(): void { $input = [ @@ -186,9 +175,7 @@ final class TcaInlineConfigurationTest extends UnitTestCase self::assertEquals($expected, (new TcaInlineConfiguration())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataMergesWithGivenAppearanceSettings(): void { $input = [ @@ -216,9 +203,7 @@ final class TcaInlineConfigurationTest extends UnitTestCase self::assertEquals($expected, (new TcaInlineConfiguration())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataForcesLevelLinksWithForeignSelector(): void { $input = [ @@ -261,9 +246,7 @@ final class TcaInlineConfigurationTest extends UnitTestCase self::assertEquals($expected, (new TcaInlineConfiguration())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataKeepsLevelLinksPositionWithForeignSelectorAndUseCombination(): void { $input = [ @@ -305,9 +288,7 @@ final class TcaInlineConfigurationTest extends UnitTestCase self::assertEquals($expected, (new TcaInlineConfiguration())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataKeepsShowPossibleLocalizationRecordsButForcesBooleanTrue(): void { $input = [ @@ -331,9 +312,7 @@ final class TcaInlineConfigurationTest extends UnitTestCase self::assertEquals($expected, (new TcaInlineConfiguration())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataKeepsShowPossibleLocalizationRecordsButForcesBooleanFalse(): void { $input = [ @@ -357,9 +336,7 @@ final class TcaInlineConfigurationTest extends UnitTestCase self::assertEquals($expected, (new TcaInlineConfiguration())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfForeignSelectorAndForeignUniquePointToDifferentFields(): void { $input = [ @@ -382,9 +359,7 @@ final class TcaInlineConfigurationTest extends UnitTestCase (new TcaInlineConfiguration())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfForeignSelectorPointsToANotExistingField(): void { $input = [ @@ -406,9 +381,7 @@ final class TcaInlineConfigurationTest extends UnitTestCase (new TcaInlineConfiguration())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfForeignUniquePointsToANotExistingField(): void { $input = [ @@ -430,9 +403,7 @@ final class TcaInlineConfigurationTest extends UnitTestCase (new TcaInlineConfiguration())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfForeignUniqueTargetIsNotTypeSelectOrGroup(): void { $input = [ @@ -457,9 +428,7 @@ final class TcaInlineConfigurationTest extends UnitTestCase (new TcaInlineConfiguration())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfForeignUniqueSelectDoesNotDefineForeignTable(): void { $input = [ @@ -484,9 +453,7 @@ final class TcaInlineConfigurationTest extends UnitTestCase (new TcaInlineConfiguration())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfForeignUniqueGroupDoesNotDefineForeignTable(): void { $input = [ @@ -511,9 +478,7 @@ final class TcaInlineConfigurationTest extends UnitTestCase (new TcaInlineConfiguration())->addData($input); } - /** - * @test - */ + #[Test] public function addDataAddsSelectorOrUniqueConfigurationForForeignUnique(): void { $input = [ @@ -549,9 +514,7 @@ final class TcaInlineConfigurationTest extends UnitTestCase self::assertEquals($expected, (new TcaInlineConfiguration())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataMergesForeignSelectorFieldTcaOverride(): void { $input = [ diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaInlineExpandCollapseStateTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaInlineExpandCollapseStateTest.php index 54d1ca9c3c1601ae9ec36420acdd48cabb8cd7e7..ddea16c479303a07bf823ec2bbb6a854de6d5b36 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaInlineExpandCollapseStateTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaInlineExpandCollapseStateTest.php @@ -17,15 +17,15 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataProvider\TcaInlineExpandCollapseState; use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class TcaInlineExpandCollapseStateTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function addDataAddsInlineStatusForTableUid(): void { $input = [ @@ -60,9 +60,7 @@ final class TcaInlineExpandCollapseStateTest extends UnitTestCase self::assertSame($expected, (new TcaInlineExpandCollapseState())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataAddsInlineStatusForSecondLevelChild(): void { $input = [ @@ -317,10 +315,8 @@ final class TcaInlineExpandCollapseStateTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider addDataAddsCorrectIsInlineChildExpandedDataProvider - */ + #[DataProvider('addDataAddsCorrectIsInlineChildExpandedDataProvider')] + #[Test] public function addDataAddsCorrectIsInlineChildExpanded(array $input, bool $expectedIsInlineChildExpanded): void { $GLOBALS['BE_USER'] = $this->createMock(BackendUserAuthentication::class); diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaInlineIsOnSymmetricSideTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaInlineIsOnSymmetricSideTest.php index a3ea9144d895b7cd47bed37d09d2936103e0c3a8..909321b40a5031e90bcdd920a196b08e3a2114b8 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaInlineIsOnSymmetricSideTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaInlineIsOnSymmetricSideTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataProvider\TcaInlineIsOnSymmetricSide; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -33,9 +34,7 @@ final class TcaInlineIsOnSymmetricSideTest extends UnitTestCase $this->subject = new TcaInlineIsOnSymmetricSide(); } - /** - * @test - */ + #[Test] public function addDataSetsIsOnSymmetricSideToTrue(): void { $input = [ @@ -56,9 +55,7 @@ final class TcaInlineIsOnSymmetricSideTest extends UnitTestCase self::assertEquals($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataSetsIsOnSymmetricSideToTrueWhenSymmetricFieldArrayIsDetailed() { $input = [ diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaInlineTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaInlineTest.php index 5ae46ce5bf252716b3f5e66035d1be2f1a552657..38feca91cbe148fa5b932146f5c8d0ac8ca9dfb3 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaInlineTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaInlineTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Backend\Form\FormDataProvider\TcaInline; use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; @@ -33,9 +34,7 @@ final class TcaInlineTest extends UnitTestCase $GLOBALS['BE_USER'] = $this->beUserMock; } - /** - * @test - */ + #[Test] public function addDataWithoutModifyRightsButWithInlineTypeWillNotParseChildren(): void { $input = [ @@ -66,9 +65,7 @@ final class TcaInlineTest extends UnitTestCase self::assertEquals($expected, (new TcaInline())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataWithUserRightsButWithoutInlineTypeWillNotParseChildren(): void { $input = [ @@ -98,9 +95,7 @@ final class TcaInlineTest extends UnitTestCase self::assertEquals($expected, (new TcaInline())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataWithInlineTypeAndModifyRightsWillAddChildren(): void { $input = [ diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaInputPlaceholdersTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaInputPlaceholdersTest.php index d692b70baf568410c77850075cac5f980e3a4935..e349cf45930108daba79d945690127289a1c90c1 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaInputPlaceholdersTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaInputPlaceholdersTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataCompiler; use TYPO3\CMS\Backend\Form\FormDataProvider\TcaInputPlaceholders; use TYPO3\CMS\Core\Http\ServerRequest; @@ -34,9 +35,7 @@ final class TcaInputPlaceholdersTest extends UnitTestCase $GLOBALS['LANG'] = $languageService; } - /** - * @test - */ + #[Test] public function addDataRemovesEmptyPlaceholderOption(): void { $input = [ @@ -60,9 +59,7 @@ final class TcaInputPlaceholdersTest extends UnitTestCase self::assertSame($expected, (new TcaInputPlaceholders())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataReturnsUnmodifiedSimpleStringPlaceholder(): void { $input = [ @@ -85,9 +82,7 @@ final class TcaInputPlaceholdersTest extends UnitTestCase self::assertSame($expected, (new TcaInputPlaceholders())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataReturnsValueFromDatabaseRowAsPlaceholder(): void { $input = [ @@ -113,9 +108,7 @@ final class TcaInputPlaceholdersTest extends UnitTestCase self::assertSame($expected, (new TcaInputPlaceholders())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataReturnsValueFromSelectTypeRelation(): void { $request = new ServerRequest(); @@ -179,9 +172,7 @@ final class TcaInputPlaceholdersTest extends UnitTestCase self::assertSame($expected, (new TcaInputPlaceholders())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataReturnsNoPlaceholderForNewSelectTypeRelation(): void { $input = [ @@ -214,9 +205,7 @@ final class TcaInputPlaceholdersTest extends UnitTestCase self::assertSame($expected, (new TcaInputPlaceholders())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataReturnsValueFromGroupTypeRelation(): void { $request = new ServerRequest(); @@ -289,9 +278,7 @@ final class TcaInputPlaceholdersTest extends UnitTestCase self::assertSame($expected, (new TcaInputPlaceholders())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataReturnsValueFromInlineTypeRelation(): void { $request = new ServerRequest(); @@ -357,9 +344,7 @@ final class TcaInputPlaceholdersTest extends UnitTestCase self::assertSame($expected, (new TcaInputPlaceholders())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataReturnsValueFromRelationsRecursively(): void { $request = new ServerRequest(); @@ -464,9 +449,7 @@ final class TcaInputPlaceholdersTest extends UnitTestCase self::assertSame($expected, (new TcaInputPlaceholders())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataCallsLanguageServiceForLocalizedPlaceholders(): void { $labelString = 'LLL:EXT:some_ext/Resources/Private/Language/locallang.xlf:my_placeholder'; diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaJsonTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaJsonTest.php index 936c46285cab96216863d9aa23e1f447f85f78ef..4f632553bcfa8320927e2241dd5114b0a6fc189e 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaJsonTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaJsonTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataProvider\TcaJson; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -230,10 +232,8 @@ final class TcaJsonTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider resultArrayDataProvider - */ + #[DataProvider('resultArrayDataProvider')] + #[Test] public function addDataDoesHandleJsonRecords(array $input, array $expected): void { self::assertSame($expected, (new TcaJson())->addData($input)); diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaLanguageTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaLanguageTest.php index 8c45ef8bbccda185d223b90e283a3487610df073..34c9d1682d45874a71d3b652732f0838d83eed14 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaLanguageTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaLanguageTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataProvider\TcaLanguage; use TYPO3\CMS\Core\Localization\LanguageService; use TYPO3\CMS\Core\Site\Entity\NullSite; @@ -42,18 +44,14 @@ final class TcaLanguageTest extends UnitTestCase parent::tearDown(); } - /** - * @test - */ + #[Test] public function addDataIgnoresEmptyOrWrongTcaType(): void { $input = $this->getDefaultResultArray(['config' => ['type' => 'none']]); self::assertEquals($input, (new TcaLanguage())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataRespectsCustomRenderType(): void { $input = $this->getDefaultResultArray(['config' => ['renderType' => 'customRenderType']]); @@ -64,9 +62,7 @@ final class TcaLanguageTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfAnItemIsNotAnArray(): void { $input = $this->getDefaultResultArray(['config' => ['items' => ['foo']]]); @@ -77,9 +73,7 @@ final class TcaLanguageTest extends UnitTestCase (new TcaLanguage())->addData($input); } - /** - * @test - */ + #[Test] public function addDataAddsAllSiteLanguages(): void { $input = $this->getDefaultResultArray([], $this->getDefaultSystemLanguages()); @@ -99,9 +93,7 @@ final class TcaLanguageTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function addDataOmitsLanguageAllForPages(): void { $input = $this->getDefaultResultArray([], $this->getDefaultSystemLanguages(), [], ['tableName' => 'pages']); @@ -119,9 +111,7 @@ final class TcaLanguageTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function addDataOmitsLanguageAllIfNotAllowed(): void { $systemLanguages = $this->getDefaultSystemLanguages(); @@ -143,9 +133,7 @@ final class TcaLanguageTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function addDataAddsUserDefinedItems(): void { $input = $this->getDefaultResultArray( @@ -178,9 +166,7 @@ final class TcaLanguageTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function addDataAddsUserDefinedItemsOnEmptySystemLanguages(): void { $input = $this->getDefaultResultArray( @@ -207,9 +193,7 @@ final class TcaLanguageTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function addDataRemovesAllItemsByEmptyKeepItems(): void { $input = $this->getDefaultResultArray( @@ -232,9 +216,7 @@ final class TcaLanguageTest extends UnitTestCase self::assertEmpty((new TcaLanguage())->addData($input)['processedTca']['columns']['aField']['config']['items']); } - /** - * @test - */ + #[Test] public function addDataRespectsKeepItems(): void { $input = $this->getDefaultResultArray( @@ -265,9 +247,7 @@ final class TcaLanguageTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function addDataRespectsAddItems(): void { $input = $this->getDefaultResultArray( @@ -303,9 +283,7 @@ final class TcaLanguageTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function addDataRespectsRemoveItems(): void { $input = $this->getDefaultResultArray( @@ -336,9 +314,7 @@ final class TcaLanguageTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function addDataAddsInvalidDatabaseValue(): void { $input = $this->getDefaultResultArray([], $this->getDefaultSystemLanguages(), ['aField' => 5], ['tableName' => 'pages']); @@ -356,9 +332,7 @@ final class TcaLanguageTest extends UnitTestCase (new TcaLanguage())->addData($input)['processedTca']['columns']['aField']['config']['items'] ); } - /** - * @test - */ + #[Test] public function addDataRepsetcsConfigurationOnAddingInvalidDatabaseValue(): void { $input = $this->getDefaultResultArray( @@ -424,9 +398,7 @@ final class TcaLanguageTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function addDataRespectsAltLabels(): void { $input = $this->getDefaultResultArray( @@ -464,9 +436,7 @@ final class TcaLanguageTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function addDataRespectsAltIcons(): void { $input = $this->getDefaultResultArray( @@ -504,9 +474,7 @@ final class TcaLanguageTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function addDataRemovesLastItemIfDivider(): void { $input = $this->getDefaultResultArray( @@ -539,10 +507,8 @@ final class TcaLanguageTest extends UnitTestCase ); } - /** - * @test - * @dataProvider addDataAddsAllSiteLanguagesDataProvider - */ + #[DataProvider('addDataAddsAllSiteLanguagesDataProvider')] + #[Test] public function addDataAddsAllSiteLanguagesFromAllSites(array $config): void { $siteFinder = $this->createMock(SiteFinder::class); diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaRadioItemsTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaRadioItemsTest.php index 1106e44327bfc52cf9f9cade0db26b4068fc02b6..11010347b64dde72b8aa656d46b9d5eef33e0019 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaRadioItemsTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaRadioItemsTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataProvider\TcaRadioItems; use TYPO3\CMS\Core\Localization\LanguageService; use TYPO3\CMS\Core\Messaging\FlashMessage; @@ -37,9 +38,7 @@ final class TcaRadioItemsTest extends UnitTestCase parent::tearDown(); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfRadioItemsNotDefined(): void { $input = [ @@ -64,9 +63,7 @@ final class TcaRadioItemsTest extends UnitTestCase (new TcaRadioItems())->addData($input); } - /** - * @test - */ + #[Test] public function addDataKeepExistingItems(): void { $input = [ @@ -95,9 +92,7 @@ final class TcaRadioItemsTest extends UnitTestCase self::assertSame($expected, (new TcaRadioItems())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfItemsAreNoArray(): void { $input = [ @@ -125,9 +120,7 @@ final class TcaRadioItemsTest extends UnitTestCase (new TcaRadioItems())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfItemLabelIsNotSet(): void { $input = [ @@ -157,9 +150,7 @@ final class TcaRadioItemsTest extends UnitTestCase (new TcaRadioItems())->addData($input); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionIfItemValueIsNotSet(): void { $input = [ @@ -189,9 +180,7 @@ final class TcaRadioItemsTest extends UnitTestCase (new TcaRadioItems())->addData($input); } - /** - * @test - */ + #[Test] public function addDataTranslatesItemLabels(): void { $input = [ @@ -225,9 +214,7 @@ final class TcaRadioItemsTest extends UnitTestCase (new TcaRadioItems())->addData($input); } - /** - * @test - */ + #[Test] public function addDataCallsItemsProcFunc(): void { $input = [ @@ -270,9 +257,7 @@ final class TcaRadioItemsTest extends UnitTestCase self::assertSame('bar', $items[0]['value']); } - /** - * @test - */ + #[Test] public function addDataItemsProcFuncReceivesParameters(): void { $input = [ @@ -353,9 +338,7 @@ final class TcaRadioItemsTest extends UnitTestCase (new TcaRadioItems())->addData($input); } - /** - * @test - */ + #[Test] public function addDataItemsProcFuncEnqueuesFlashMessageOnException(): void { $input = [ @@ -419,9 +402,7 @@ final class TcaRadioItemsTest extends UnitTestCase (new TcaRadioItems())->addData($input); } - /** - * @test - */ + #[Test] public function addDataTranslatesItemLabelsFromPageTsConfig(): void { $input = [ diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaRecordTitleTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaRecordTitleTest.php index fef5e97decdfa66cc349f4265973317ad543f43a..f2ceb48aeb8dcbb28d15423a347ffe970f974407 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaRecordTitleTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaRecordTitleTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataProvider\TcaRecordTitle; use TYPO3\CMS\Core\Localization\LanguageService; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -38,9 +40,7 @@ final class TcaRecordTitleTest extends UnitTestCase parent::tearDown(); } - /** - * @test - */ + #[Test] public function addDataThrowsExceptionWithMissingLabel(): void { $input = [ @@ -55,9 +55,7 @@ final class TcaRecordTitleTest extends UnitTestCase (new TcaRecordTitle())->addData($input); } - /** - * @test - */ + #[Test] public function addDataReturnsRecordTitleForLabelUserFunction(): void { $input = [ @@ -81,9 +79,7 @@ final class TcaRecordTitleTest extends UnitTestCase self::assertSame($expected, (new TcaRecordTitle())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataReturnsRecordTitleForFormattedLabelUserFunction(): void { $input = [ @@ -113,9 +109,7 @@ final class TcaRecordTitleTest extends UnitTestCase self::assertSame($expected, (new TcaRecordTitle())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataReturnsRecordTitleForInlineChildWithForeignLabel(): void { $input = [ @@ -149,9 +143,7 @@ final class TcaRecordTitleTest extends UnitTestCase self::assertSame($expected, (new TcaRecordTitle())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataOverridesRecordTitleWithFormattedLabelUserFuncForInlineChildWithForeignLabel(): void { $input = [ @@ -186,9 +178,7 @@ final class TcaRecordTitleTest extends UnitTestCase self::assertSame($expected, (new TcaRecordTitle())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataReturnsRecordTitleForInlineChildWithSymmetricLabel(): void { $input = [ @@ -219,9 +209,7 @@ final class TcaRecordTitleTest extends UnitTestCase self::assertSame($expected, (new TcaRecordTitle())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataReturnsRecordTitleForUid(): void { $input = [ @@ -350,10 +338,8 @@ final class TcaRecordTitleTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider addDataReturnsRecordTitleForDatetimeTypeDataProvider - */ + #[DataProvider('addDataReturnsRecordTitleForDatetimeTypeDataProvider')] + #[Test] public function addDataReturnsRecordTitleForDatetimeType(array $fieldConfig, string $fieldValue, string $expectedTitle): void { $input = [ @@ -386,9 +372,7 @@ final class TcaRecordTitleTest extends UnitTestCase self::assertSame($expected, (new TcaRecordTitle())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataReturnsRecordTitleWithAlternativeLabel(): void { $input = [ @@ -424,9 +408,7 @@ final class TcaRecordTitleTest extends UnitTestCase self::assertSame($expected, (new TcaRecordTitle())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataReturnsRecordTitleWithMultipleAlternativeLabels(): void { $input = [ @@ -468,9 +450,7 @@ final class TcaRecordTitleTest extends UnitTestCase self::assertSame($expected, (new TcaRecordTitle())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataReturnsRecordTitleWithForcedAlternativeLabel(): void { $input = [ @@ -507,9 +487,7 @@ final class TcaRecordTitleTest extends UnitTestCase self::assertSame($expected, (new TcaRecordTitle())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataReturnsRecordTitleWithMultipleForcedAlternativeLabels(): void { $input = [ @@ -552,9 +530,7 @@ final class TcaRecordTitleTest extends UnitTestCase self::assertSame($expected, (new TcaRecordTitle())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataReturnsRecordTitleIgnoresEmptyAlternativeLabels(): void { $input = [ @@ -597,9 +573,7 @@ final class TcaRecordTitleTest extends UnitTestCase self::assertSame($expected, (new TcaRecordTitle())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataReturnsRecordTitleForRadioType(): void { $input = [ @@ -633,9 +607,7 @@ final class TcaRecordTitleTest extends UnitTestCase self::assertSame($expected, (new TcaRecordTitle())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataReturnsRecordTitleForInlineType(): void { $input = [ @@ -744,10 +716,8 @@ final class TcaRecordTitleTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider addDataReturnsRecordTitleForGroupTypeDataProvider - */ + #[DataProvider('addDataReturnsRecordTitleForGroupTypeDataProvider')] + #[Test] public function addDataReturnsRecordTitleForGroupType(array $fieldConfig, array $fieldValue, string $expectedTitle): void { $input = [ @@ -783,9 +753,7 @@ final class TcaRecordTitleTest extends UnitTestCase self::assertSame($expected, (new TcaRecordTitle())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataReturnsRecordTitleForGroupTypeDb(): void { $input = [ @@ -826,9 +794,7 @@ final class TcaRecordTitleTest extends UnitTestCase self::assertSame($expected, (new TcaRecordTitle())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataReturnsRecordTitleForSingleCheckboxType(): void { $input = [ @@ -860,9 +826,7 @@ final class TcaRecordTitleTest extends UnitTestCase self::assertSame($expected, (new TcaRecordTitle())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataReturnsRecordTitleForArrayCheckboxType(): void { $input = [ @@ -899,9 +863,7 @@ final class TcaRecordTitleTest extends UnitTestCase self::assertSame($expected, (new TcaRecordTitle())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataReturnsEmptyRecordTitleForFlexType(): void { $input = [ @@ -957,9 +919,7 @@ final class TcaRecordTitleTest extends UnitTestCase self::assertSame($expected, (new TcaRecordTitle())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataReturnsRecordTitleForSelectType(): void { $input = [ @@ -995,9 +955,7 @@ final class TcaRecordTitleTest extends UnitTestCase self::assertSame($expected, (new TcaRecordTitle())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataReturnsStrippedAndTrimmedValueForTextType(): void { $input = [ diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaSlugTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaSlugTest.php index b17b691d1b497bc6b78ebc69cbfb288ea0e82345..71fde9e60fd4d5e95cfe28ee2d5744782e2b032b 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaSlugTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaSlugTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataProvider\TcaSlug; use TYPO3\CMS\Core\Site\Entity\Site; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -349,10 +351,8 @@ final class TcaSlugTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider resultArrayDataProvider - */ + #[DataProvider('resultArrayDataProvider')] + #[Test] public function getSlugPrefixForDefinedLanguagesAndUserFunc(array $input, array $expected): void { self::assertEquals($expected, $this->subject->addData($input)); diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaTextTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaTextTest.php index 9846565ee1451130216d949708bff0c1d0d867d1..f261dabb51ab30efa881783536d653935f8e3d3c 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaTextTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaTextTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataProvider\TcaText; use TYPO3\CMS\Core\Configuration\Richtext; use TYPO3\CMS\Core\Html\RteHtmlParser; @@ -25,9 +26,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class TcaTextTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function addDataSetsRichtextConfigurationAndTransformsContent(): void { $input = [ @@ -100,9 +99,7 @@ final class TcaTextTest extends UnitTestCase self::assertSame($expected, (new TcaText())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataDoesNotTransformsContentWhenRichtextIsNotSet(): void { $input = [ @@ -128,9 +125,7 @@ final class TcaTextTest extends UnitTestCase self::assertSame($expected, (new TcaText())->addData($input)); } - /** - * @test - */ + #[Test] public function addDataDoesNotTransformsContentWhenRichtextIsDisabledInConfiguration(): void { $input = [ diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaTypesShowitemTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaTypesShowitemTest.php index 49246cf19368ed9bbaafb2ff8c162373378675ca..7785200518708bc03ec942a753cd035f561eaa0a 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaTypesShowitemTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaTypesShowitemTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataProvider\TcaTypesShowitem; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -30,9 +31,7 @@ final class TcaTypesShowitemTest extends UnitTestCase $this->subject = new TcaTypesShowitem(); } - /** - * @test - */ + #[Test] public function addDataRemovesTypeRelatedFields(): void { $input = [ @@ -58,9 +57,7 @@ final class TcaTypesShowitemTest extends UnitTestCase self::assertSame($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataInsertsMatchingSubtypeAddListAfterSubtypeValueField(): void { $input = [ @@ -96,9 +93,7 @@ final class TcaTypesShowitemTest extends UnitTestCase self::assertSame($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataInsertsMatchingSubtypeAddListAfterPaletteWithSubtypeValueField(): void { $input = [ @@ -144,9 +139,7 @@ final class TcaTypesShowitemTest extends UnitTestCase self::assertSame($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataRemovesMatchingSubtypeExcludeListItems(): void { $input = [ @@ -182,9 +175,7 @@ final class TcaTypesShowitemTest extends UnitTestCase self::assertSame($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataRemovesMatchingSubtypeExcludeListItemsFromPalettes(): void { $input = [ @@ -230,9 +221,7 @@ final class TcaTypesShowitemTest extends UnitTestCase self::assertSame($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataRemovesMatchingBitmaskExcludeListItems(): void { $input = [ @@ -269,9 +258,7 @@ final class TcaTypesShowitemTest extends UnitTestCase self::assertSame($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataRemovesMatchingBitmaskExcludeListItemsFromPalettes(): void { $input = [ diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaUuidTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaUuidTest.php index ba29b921b70959536fcfc23be9571081ea65c647..9339bfdf959ebca7de54edeea87750833c5073d6 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaUuidTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaUuidTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use Symfony\Component\Uid\Uuid; use TYPO3\CMS\Backend\Form\FormDataProvider\TcaUuid; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -84,9 +85,7 @@ final class TcaUuidTest extends UnitTestCase ]; } - /** - * @test - */ + #[Test] public function addDataDoesOnlyHandleTypeUuid(): void { $input = [ @@ -109,9 +108,7 @@ final class TcaUuidTest extends UnitTestCase self::assertSame('', (new TcaUuid())->addData($input)['databaseRow']['aField']); } - /** - * @test - */ + #[Test] public function addDataDoesNotHandleFieldsWithValidUuidValue(): void { $input = [ @@ -134,9 +131,7 @@ final class TcaUuidTest extends UnitTestCase self::assertSame('b3190536-1431-453e-afbb-25b8c5022513', (new TcaUuid())->addData($input)['databaseRow']['aField']); } - /** - * @test - */ + #[Test] public function addDataCreatesValidUuidValueForInvalidUuid(): void { $input = [ @@ -160,9 +155,7 @@ final class TcaUuidTest extends UnitTestCase self::assertTrue(Uuid::isValid((new TcaUuid())->addData($input)['databaseRow']['aField'])); } - /** - * @test - */ + #[Test] public function addDataCreatesValidUuidValueForEmptyField(): void { $input = [ @@ -186,9 +179,7 @@ final class TcaUuidTest extends UnitTestCase self::assertTrue(Uuid::isValid((new TcaUuid())->addData($input)['databaseRow']['aField'])); } - /** - * @test - */ + #[Test] public function addDataCreatesValidUuidValueWithDefinedVersion(): void { $input = [ diff --git a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/UserTsConfigTest.php b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/UserTsConfigTest.php index 13ce205ed0c5f51a772b3acbd395b75b6312715b..d613ed2b050a581db26d117c998757bb09f39aed 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/UserTsConfigTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/UserTsConfigTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\FormDataProvider\UserTsConfig; use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -31,9 +32,7 @@ final class UserTsConfigTest extends UnitTestCase $this->subject = new UserTsConfig(); } - /** - * @test - */ + #[Test] public function addDataSetsUserTypoScriptInResult(): void { $expected = ['foo']; diff --git a/typo3/sysext/backend/Tests/Unit/Form/InlineStackProcessorTest.php b/typo3/sysext/backend/Tests/Unit/Form/InlineStackProcessorTest.php index 1cde3476a094a7898abbbfcd0722659f8030d05b..611f3745d7ddf589db96e4368c9e0c766224b2a7 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/InlineStackProcessorTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/InlineStackProcessorTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\InlineStackProcessor; use TYPO3\CMS\Core\Cache\CacheManager; use TYPO3\CMS\Core\Cache\Frontend\FrontendInterface; @@ -257,10 +259,8 @@ final class InlineStackProcessorTest extends UnitTestCase ]; } - /** - * @dataProvider structureStringIsParsedDataProvider - * @test - */ + #[DataProvider('structureStringIsParsedDataProvider')] + #[Test] public function initializeByParsingDomObjectIdStringParsesStructureString(string $string, array $expectedInlineStructure, array $_): void { $subject = $this->getAccessibleMock(InlineStackProcessor::class, null); @@ -269,10 +269,8 @@ final class InlineStackProcessorTest extends UnitTestCase self::assertEquals($expectedInlineStructure, $structure); } - /** - * @dataProvider structureStringIsParsedDataProvider - * @test - */ + #[DataProvider('structureStringIsParsedDataProvider')] + #[Test] public function getCurrentStructureFormPrefixReturnsExpectedStringAfterInitializationByStructureString(string $string, array $_, array $expectedFormName): void { $subject = new InlineStackProcessor(); @@ -280,10 +278,8 @@ final class InlineStackProcessorTest extends UnitTestCase self::assertEquals($expectedFormName['form'], $subject->getCurrentStructureFormPrefix()); } - /** - * @dataProvider structureStringIsParsedDataProvider - * @test - */ + #[DataProvider('structureStringIsParsedDataProvider')] + #[Test] public function getCurrentStructureDomObjectIdPrefixReturnsExpectedStringAfterInitializationByStructureString(string $string, array $_, array $expectedFormName): void { $subject = new InlineStackProcessor(); diff --git a/typo3/sysext/backend/Tests/Unit/Form/NodeExpansion/FieldControlTest.php b/typo3/sysext/backend/Tests/Unit/Form/NodeExpansion/FieldControlTest.php index 55eb6ab1f95beeab00cdf7e03c14de34774a2e63..29d3030339ad5245f8397995cf9625042a494bdd 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/NodeExpansion/FieldControlTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/NodeExpansion/FieldControlTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form\NodeExpansion; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\AbstractNode; use TYPO3\CMS\Backend\Form\NodeExpansion\FieldControl; use TYPO3\CMS\Backend\Form\NodeFactory; @@ -29,9 +30,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class FieldControlTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function renderMergesResultOfSingleControls(): void { $iconFactoryMock = $this->createMock(IconFactory::class); diff --git a/typo3/sysext/backend/Tests/Unit/Form/NodeFactoryTest.php b/typo3/sysext/backend/Tests/Unit/Form/NodeFactoryTest.php index eb1089eddf301ce911efbd158d75f0d97c021a84..6f045182904a807b69bbe7e765879b90adc4e225 100644 --- a/typo3/sysext/backend/Tests/Unit/Form/NodeFactoryTest.php +++ b/typo3/sysext/backend/Tests/Unit/Form/NodeFactoryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Form; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Form\Element\SelectSingleElement; use TYPO3\CMS\Backend\Form\Element\SelectTreeElement; use TYPO3\CMS\Backend\Form\Element\UnknownElement; @@ -31,9 +32,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class NodeFactoryTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function constructThrowsExceptionIfOverrideMissesNodeNameKey(): void { $this->expectException(Exception::class); @@ -47,9 +46,7 @@ final class NodeFactoryTest extends UnitTestCase new NodeFactory(); } - /** - * @test - */ + #[Test] public function constructThrowsExceptionIfOverrideMissesPriorityKey(): void { $this->expectException(Exception::class); @@ -63,9 +60,7 @@ final class NodeFactoryTest extends UnitTestCase new NodeFactory(); } - /** - * @test - */ + #[Test] public function constructThrowsExceptionIfOverrideMissesClassKey(): void { $this->expectException(Exception::class); @@ -79,9 +74,7 @@ final class NodeFactoryTest extends UnitTestCase new NodeFactory(); } - /** - * @test - */ + #[Test] public function constructThrowsExceptionIfOverridePriorityIsLowerThanZero(): void { $this->expectException(Exception::class); @@ -95,9 +88,7 @@ final class NodeFactoryTest extends UnitTestCase ]; new NodeFactory(); } - /** - * @test - */ + #[Test] public function constructThrowsExceptionIfOverridePriorityIsHigherThanHundred(): void { $this->expectException(Exception::class); @@ -112,9 +103,7 @@ final class NodeFactoryTest extends UnitTestCase new NodeFactory(); } - /** - * @test - */ + #[Test] public function constructorThrowsExceptionIfOverrideTwoNodesWithSamePriorityAndSameNodeNameAreRegistered(): void { $this->expectException(Exception::class); @@ -134,9 +123,7 @@ final class NodeFactoryTest extends UnitTestCase new NodeFactory(); } - /** - * @test - */ + #[Test] public function constructThrowsExceptionIfResolverMissesNodeNameKey(): void { $this->expectException(Exception::class); @@ -150,9 +137,7 @@ final class NodeFactoryTest extends UnitTestCase new NodeFactory(); } - /** - * @test - */ + #[Test] public function constructThrowsExceptionIfResolverMissesPriorityKey(): void { $this->expectException(Exception::class); @@ -166,9 +151,7 @@ final class NodeFactoryTest extends UnitTestCase new NodeFactory(); } - /** - * @test - */ + #[Test] public function constructThrowsExceptionIfResolverMissesClassKey(): void { $this->expectException(Exception::class); @@ -182,9 +165,7 @@ final class NodeFactoryTest extends UnitTestCase new NodeFactory(); } - /** - * @test - */ + #[Test] public function constructThrowsExceptionIfResolverPriorityIsLowerThanZero(): void { $this->expectException(Exception::class); @@ -198,9 +179,7 @@ final class NodeFactoryTest extends UnitTestCase ]; new NodeFactory(); } - /** - * @test - */ + #[Test] public function constructThrowsExceptionIfResolverPriorityIsHigherThanHundred(): void { $this->expectException(Exception::class); @@ -215,9 +194,7 @@ final class NodeFactoryTest extends UnitTestCase new NodeFactory(); } - /** - * @test - */ + #[Test] public function constructorThrowsExceptionIfResolverTwoNodesWithSamePriorityAndSameNodeNameAreRegistered(): void { $this->expectException(Exception::class); @@ -237,9 +214,7 @@ final class NodeFactoryTest extends UnitTestCase new NodeFactory(); } - /** - * @test - */ + #[Test] public function constructorThrowsNoExceptionIfResolverWithSamePriorityButDifferentNodeNameAreRegistered(): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['formEngine']['nodeResolver'] = [ @@ -257,9 +232,7 @@ final class NodeFactoryTest extends UnitTestCase new NodeFactory(); } - /** - * @test - */ + #[Test] public function createThrowsExceptionIfRenderTypeIsNotGiven(): void { $this->expectException(Exception::class); @@ -268,9 +241,7 @@ final class NodeFactoryTest extends UnitTestCase $subject->create([]); } - /** - * @test - */ + #[Test] public function createReturnsInstanceOfUnknownElementIfTypeIsNotRegistered(): void { $unknownElementMock = $this->createMock(UnknownElement::class); @@ -279,9 +250,7 @@ final class NodeFactoryTest extends UnitTestCase self::assertSame($unknownElementMock, $subject->create(['renderType' => 'foo'])); } - /** - * @test - */ + #[Test] public function createReturnsInstanceOfSelectTreeElementIfNeeded(): void { $data = [ @@ -294,9 +263,7 @@ final class NodeFactoryTest extends UnitTestCase self::assertSame($selectTreeElementMock, $subject->create($data)); } - /** - * @test - */ + #[Test] public function createReturnsInstanceOfSelectSingleElementIfNeeded(): void { $data = [ @@ -314,9 +281,7 @@ final class NodeFactoryTest extends UnitTestCase self::assertSame($selectSingleElementMock, $subject->create($data)); } - /** - * @test - */ + #[Test] public function createInstantiatesNewRegisteredElement(): void { $data = ['renderType' => 'foo']; @@ -332,9 +297,7 @@ final class NodeFactoryTest extends UnitTestCase self::assertInstanceOf(FooElement::class, ($subject->create($data))); } - /** - * @test - */ + #[Test] public function createInstantiatesElementRegisteredWithHigherPriorityWithOneGivenOrder(): void { $data = ['renderType' => 'foo']; @@ -354,9 +317,7 @@ final class NodeFactoryTest extends UnitTestCase self::assertInstanceOf(BarElement::class, ($subject->create($data))); } - /** - * @test - */ + #[Test] public function createInstantiatesElementRegisteredWithHigherPriorityWithOtherGivenOrder(): void { $data = ['renderType' => 'foo']; @@ -376,9 +337,7 @@ final class NodeFactoryTest extends UnitTestCase self::assertInstanceOf(FooElement::class, ($subject->create($data))); } - /** - * @test - */ + #[Test] public function createInstantiatesResolverWithHighestPriorityFirstWithOneGivenOrder(): void { $data = ['renderType' => 'foo']; @@ -406,9 +365,7 @@ final class NodeFactoryTest extends UnitTestCase self::assertInstanceOf(BarElement::class, ($subject->create($data))); } - /** - * @test - */ + #[Test] public function createInstantiatesResolverWithHighestPriorityFirstWithOtherGivenOrder(): void { $data = ['renderType' => 'foo']; @@ -436,9 +393,7 @@ final class NodeFactoryTest extends UnitTestCase self::assertInstanceOf(BarElement::class, ($subject->create($data))); } - /** - * @test - */ + #[Test] public function createInstantiatesNodeClassReturnedByResolver(): void { $data = ['renderType' => 'foo']; diff --git a/typo3/sysext/backend/Tests/Unit/Http/RouteDispatcherTest.php b/typo3/sysext/backend/Tests/Unit/Http/RouteDispatcherTest.php index 46e085ba73dab0c48b877c5e03e147bf8ab5cf15..460169442aecfdbd8771d1b0fce77984ab899acc 100644 --- a/typo3/sysext/backend/Tests/Unit/Http/RouteDispatcherTest.php +++ b/typo3/sysext/backend/Tests/Unit/Http/RouteDispatcherTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Http; +use PHPUnit\Framework\Attributes\Test; use Psr\Container\ContainerInterface; use Psr\Http\Message\ServerRequestInterface; use TYPO3\CMS\Backend\Http\RouteDispatcher; @@ -41,9 +42,7 @@ final class RouteDispatcherTest extends UnitTestCase parent::tearDown(); } - /** - * @test - */ + #[Test] public function dispatchThrowsExceptionIfTargetIsNotCallable(): void { $formProtectionMock = $this->createMock(AbstractFormProtection::class); @@ -66,9 +65,7 @@ final class RouteDispatcherTest extends UnitTestCase $subject->dispatch($request); } - /** - * @test - */ + #[Test] public function dispatchCallsTargetIfTargetIsArray(): void { $formProtectionMock = $this->createMock(AbstractFormProtection::class); @@ -95,9 +92,7 @@ final class RouteDispatcherTest extends UnitTestCase $subject->dispatch($request); } - /** - * @test - */ + #[Test] public function dispatchCallsTargetIfTargetIsClosure(): void { $formProtectionMock = $this->createMock(AbstractFormProtection::class); @@ -123,9 +118,7 @@ final class RouteDispatcherTest extends UnitTestCase $subject->dispatch($request); } - /** - * @test - */ + #[Test] public function dispatchCallsTargetIfTargetIsClassImplementingInvoke(): void { $formProtectionMock = $this->createMock(AbstractFormProtection::class); @@ -149,9 +142,7 @@ final class RouteDispatcherTest extends UnitTestCase $subject->dispatch($request); } - /** - * @test - */ + #[Test] public function dispatchCallsTargetIfTargetIsInContainer(): void { $formProtectionMock = $this->createMock(AbstractFormProtection::class); @@ -176,9 +167,7 @@ final class RouteDispatcherTest extends UnitTestCase $subject->dispatch($request); } - /** - * @test - */ + #[Test] public function dispatchThrowsExceptionIfTargetWithClassNameOnlyDoesNotImplementInvoke(): void { $formProtectionMock = $this->createMock(AbstractFormProtection::class); @@ -202,9 +191,7 @@ final class RouteDispatcherTest extends UnitTestCase $subject->dispatch($request); } - /** - * @test - */ + #[Test] public function dispatchCallsClassMethodCombinationGivenAsString(): void { $formProtectionMock = $this->createMock(AbstractFormProtection::class); @@ -228,9 +215,7 @@ final class RouteDispatcherTest extends UnitTestCase $subject->dispatch($request); } - /** - * @test - */ + #[Test] public function dispatchCallsStaticClassMethodCombinationGivenAsString(): void { $formProtectionMock = $this->createMock(AbstractFormProtection::class); diff --git a/typo3/sysext/backend/Tests/Unit/LoginProvider/LoginProviderResolverTest.php b/typo3/sysext/backend/Tests/Unit/LoginProvider/LoginProviderResolverTest.php index a19f4d941de9709f5f0f41770db98c387e6d9904..4c4bb646f557a5f7235c8944ffd50f7b888d495a 100644 --- a/typo3/sysext/backend/Tests/Unit/LoginProvider/LoginProviderResolverTest.php +++ b/typo3/sysext/backend/Tests/Unit/LoginProvider/LoginProviderResolverTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\LoginProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\LoginProvider\LoginProviderResolver; use TYPO3\CMS\Backend\LoginProvider\UsernamePasswordLoginProvider; use TYPO3\CMS\Core\Http\ServerRequest; @@ -31,9 +32,7 @@ final class LoginProviderResolverTest extends UnitTestCase unset($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['backend']['loginProviders']); } - /** - * @test - */ + #[Test] public function validateAndSortLoginProvidersDetectsMissingProviderConfiguration(): void { $this->expectException(\RuntimeException::class); @@ -41,9 +40,7 @@ final class LoginProviderResolverTest extends UnitTestCase new LoginProviderResolver(); } - /** - * @test - */ + #[Test] public function validateAndSortLoginProvidersDetectsNonArrayProviderConfiguration(): void { $this->expectException(\RuntimeException::class); @@ -52,9 +49,7 @@ final class LoginProviderResolverTest extends UnitTestCase new LoginProviderResolver(); } - /** - * @test - */ + #[Test] public function validateAndSortLoginProvidersDetectsIfNoProviderIsRegistered(): void { $this->expectException(\RuntimeException::class); @@ -63,9 +58,7 @@ final class LoginProviderResolverTest extends UnitTestCase new LoginProviderResolver(); } - /** - * @test - */ + #[Test] public function validateAndSortLoginProvidersDetectsMissingConfigurationForProvider(): void { $this->expectException(\RuntimeException::class); @@ -76,9 +69,7 @@ final class LoginProviderResolverTest extends UnitTestCase new LoginProviderResolver(); } - /** - * @test - */ + #[Test] public function validateAndSortLoginProvidersDetectsWrongProvider(): void { $this->expectException(\RuntimeException::class); @@ -91,9 +82,7 @@ final class LoginProviderResolverTest extends UnitTestCase new LoginProviderResolver(); } - /** - * @test - */ + #[Test] public function validateAndSortLoginProvidersDetectsMissingLabel(): void { $this->expectException(\RuntimeException::class); @@ -108,9 +97,7 @@ final class LoginProviderResolverTest extends UnitTestCase new LoginProviderResolver(); } - /** - * @test - */ + #[Test] public function validateAndSortLoginProvidersDetectsMissingIconClass(): void { $this->expectException(\RuntimeException::class); @@ -125,9 +112,7 @@ final class LoginProviderResolverTest extends UnitTestCase new LoginProviderResolver(); } - /** - * @test - */ + #[Test] public function validateAndSortLoginProvidersDetectsMissingSorting(): void { $this->expectException(\RuntimeException::class); @@ -142,9 +127,7 @@ final class LoginProviderResolverTest extends UnitTestCase new LoginProviderResolver(); } - /** - * @test - */ + #[Test] public function loginProviderResolverRespectsConstructorArgument(): void { $loginProviders = [ @@ -165,9 +148,7 @@ final class LoginProviderResolverTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function hasLoginProviderTest(): void { $subject = (new LoginProviderResolver($this->getDefaultLoginProviders())); @@ -177,9 +158,7 @@ final class LoginProviderResolverTest extends UnitTestCase self::assertTrue($subject->hasLoginProvider('987654321')); } - /** - * @test - */ + #[Test] public function getLoginProviderConfigurationByIdentifierTest(): void { $subject = (new LoginProviderResolver($this->getDefaultLoginProviders())); @@ -191,9 +170,7 @@ final class LoginProviderResolverTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function getLoginProvidersTest(): void { $resolvedLoginProviders = (new LoginProviderResolver($this->getDefaultLoginProviders()))->getLoginProviders(); @@ -203,18 +180,14 @@ final class LoginProviderResolverTest extends UnitTestCase self::assertEquals('bar', array_shift($resolvedLoginProviders)['label']); } - /** - * @test - */ + #[Test] public function getPrimaryLoginProviderIdentifierTest(): void { $subject = (new LoginProviderResolver($this->getDefaultLoginProviders())); self::assertEquals('987654321', $subject->getPrimaryLoginProviderIdentifier()); } - /** - * @test - */ + #[Test] public function resolveLoginProviderIdentifierFromRequestTest(): void { $subject = (new LoginProviderResolver($this->getDefaultLoginProviders())); diff --git a/typo3/sysext/backend/Tests/Unit/Module/ModuleFactoryTest.php b/typo3/sysext/backend/Tests/Unit/Module/ModuleFactoryTest.php index c0e78f874163e8c89d638e9ea2a34a1b2f47175b..c2913f7f281114c2d64dccbfd3db68a31fc64673 100644 --- a/typo3/sysext/backend/Tests/Unit/Module/ModuleFactoryTest.php +++ b/typo3/sysext/backend/Tests/Unit/Module/ModuleFactoryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Module; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Module\ModuleFactory; use TYPO3\CMS\Core\EventDispatcher\NoopEventDispatcher; use TYPO3\CMS\Core\Imaging\IconRegistry; @@ -35,9 +36,7 @@ final class ModuleFactoryTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function adaptAliasMappingFromModuleConfigurationMapsAliasesProperly(): void { $moduleConfiguration = [ diff --git a/typo3/sysext/backend/Tests/Unit/Module/ModuleRegistryTest.php b/typo3/sysext/backend/Tests/Unit/Module/ModuleRegistryTest.php index 41cefd4ef77f5517b0441a762c2f8644a29b9f60..f258834a56ff4e4653b80a929dddca711c89d19f 100644 --- a/typo3/sysext/backend/Tests/Unit/Module/ModuleRegistryTest.php +++ b/typo3/sysext/backend/Tests/Unit/Module/ModuleRegistryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Module; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Module\ModuleFactory; use TYPO3\CMS\Backend\Module\ModuleInterface; use TYPO3\CMS\Backend\Module\ModuleRegistry; @@ -38,9 +39,7 @@ final class ModuleRegistryTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function throwsExceptionOnDuplicateModuleIdentifier(): void { $this->expectException(\LogicException::class); @@ -52,9 +51,7 @@ final class ModuleRegistryTest extends UnitTestCase ]); } - /** - * @test - */ + #[Test] public function throwsExceptionOnNonExistingModuleIdentifier(): void { $this->expectException(\InvalidArgumentException::class); @@ -63,9 +60,7 @@ final class ModuleRegistryTest extends UnitTestCase (new ModuleRegistry([]))->getModule('a_module'); } - /** - * @test - */ + #[Test] public function accessRegisteredModulesWork(): void { $aModule = $this->createModule('a_module', ['aliases' => ['a_old_module']]); @@ -82,9 +77,7 @@ final class ModuleRegistryTest extends UnitTestCase self::assertEquals(['a_old_module' => 'a_module'], $registry->getModuleAliases()); } - /** - * @test - */ + #[Test] public function moduleAliasOverwriteStrategy(): void { $aModule = $this->createModule('a_module', ['aliases' => ['duplicate_alias']]); @@ -96,9 +89,7 @@ final class ModuleRegistryTest extends UnitTestCase self::assertEquals(['duplicate_alias' => 'b_module'], $registry->getModuleAliases()); } - /** - * @test - */ + #[Test] public function addModuleAppliesSortingAndHierarchy(): void { $modules = $random = [ @@ -183,9 +174,7 @@ final class ModuleRegistryTest extends UnitTestCase self::assertEquals('b', $registry->getModule('b_a_d_c')->getParentModule()->getParentModule()->getParentIdentifier()); } - /** - * @test - */ + #[Test] public function keepsInputOrderWithoutPositionDefinition(): void { self::assertEquals( @@ -200,9 +189,7 @@ final class ModuleRegistryTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function firstModuleDeclaringTopWillBeOnTop(): void { self::assertEquals( @@ -218,9 +205,7 @@ final class ModuleRegistryTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function subModulesAndDependencyChainOverruleFirstLevelDependencies(): void { self::assertEquals( @@ -238,9 +223,7 @@ final class ModuleRegistryTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function dependencyChainsAreRespected(): void { self::assertEquals( diff --git a/typo3/sysext/backend/Tests/Unit/Preview/StandardPreviewRendererResolverTest.php b/typo3/sysext/backend/Tests/Unit/Preview/StandardPreviewRendererResolverTest.php index 94772a4c392a454f02de780de15ecc23d6ca1819..287708448a9464b7960cf6a6e701e391796a2fc2 100644 --- a/typo3/sysext/backend/Tests/Unit/Preview/StandardPreviewRendererResolverTest.php +++ b/typo3/sysext/backend/Tests/Unit/Preview/StandardPreviewRendererResolverTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Preview; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Preview\PreviewRendererInterface; use TYPO3\CMS\Backend\Preview\StandardContentPreviewRenderer; use TYPO3\CMS\Backend\Preview\StandardPreviewRendererResolver; @@ -52,9 +53,7 @@ final class StandardPreviewRendererResolverTest extends UnitTestCase parent::tearDown(); } - /** - * @test - */ + #[Test] public function resolveStandardContentPreviewRenderer(): void { $table = 'tt_content'; @@ -68,9 +67,7 @@ final class StandardPreviewRendererResolverTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function resolveCustomContentPreviewRenderer(): void { $customPreviewRenderer = $this->getMockBuilder(PreviewRendererInterface::class)->getMock(); @@ -88,9 +85,7 @@ final class StandardPreviewRendererResolverTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function resolveStandardContentPreviewRendererWithCustomPreviewRendererDefined(): void { $customPreviewRenderer = $this->getMockBuilder(PreviewRendererInterface::class)->getMock(); @@ -108,9 +103,7 @@ final class StandardPreviewRendererResolverTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function resolveStandardContentPreviewRendererWithGeneralPreviewRendererDefinedForAllSubTypes(): void { $customPreviewRenderer = $this->getMockBuilder(PreviewRendererInterface::class)->getMock(); @@ -128,9 +121,7 @@ final class StandardPreviewRendererResolverTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function getExceptionWithNoPreviewRendererDefined(): void { $GLOBALS['TCA']['pages']['ctrl'] = []; diff --git a/typo3/sysext/backend/Tests/Unit/Routing/PreviewUriBuilderTest.php b/typo3/sysext/backend/Tests/Unit/Routing/PreviewUriBuilderTest.php index 37c003bffc51893d30124daff4177cfab999706a..5340e641d8d3db1ed2263a253426e76c2fa3039e 100644 --- a/typo3/sysext/backend/Tests/Unit/Routing/PreviewUriBuilderTest.php +++ b/typo3/sysext/backend/Tests/Unit/Routing/PreviewUriBuilderTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Routing; +use PHPUnit\Framework\Attributes\Test; use Psr\EventDispatcher\EventDispatcherInterface; use TYPO3\CMS\Backend\Routing\Event\BeforePagePreviewUriGeneratedEvent; use TYPO3\CMS\Backend\Routing\PreviewUriBuilder; @@ -28,9 +29,7 @@ final class PreviewUriBuilderTest extends UnitTestCase { protected bool $resetSingletonInstances = true; - /** - * @test - */ + #[Test] public function attributesContainAlternativeUri(): void { $eventDispatcher = new class () implements EventDispatcherInterface { diff --git a/typo3/sysext/backend/Tests/Unit/Routing/UriBuilderTest.php b/typo3/sysext/backend/Tests/Unit/Routing/UriBuilderTest.php index b459f926a61896750381924c7d0f52e2814fb074..172793addffd60e3b542545cc25f09370dc22f4f 100644 --- a/typo3/sysext/backend/Tests/Unit/Routing/UriBuilderTest.php +++ b/typo3/sysext/backend/Tests/Unit/Routing/UriBuilderTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Routing; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Routing\Exception\RouteNotFoundException; use TYPO3\CMS\Backend\Routing\Route; use TYPO3\CMS\Backend\Routing\Router; @@ -72,10 +74,8 @@ final class UriBuilderTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider validRoutesAreBuiltDataProvider - */ + #[DataProvider('validRoutesAreBuiltDataProvider')] + #[Test] public function validRoutesAreBuilt( array $routes, string $routeName, @@ -98,9 +98,7 @@ final class UriBuilderTest extends UnitTestCase self::assertEquals($expectation, $uri->__toString()); } - /** - * @test - */ + #[Test] public function nonExistingRouteThrowsException(): void { $formProtectionFactory = $this->createMock(FormProtectionFactory::class); diff --git a/typo3/sysext/backend/Tests/Unit/Search/LiveSearch/SearchDemand/MutableSearchDemandTest.php b/typo3/sysext/backend/Tests/Unit/Search/LiveSearch/SearchDemand/MutableSearchDemandTest.php index ed4a9dab1e3ec0ed3deefedb7a1390b6bcfce886..6e2b87f47ac0efd9ea422af24b6022ff4221f1e1 100644 --- a/typo3/sysext/backend/Tests/Unit/Search/LiveSearch/SearchDemand/MutableSearchDemandTest.php +++ b/typo3/sysext/backend/Tests/Unit/Search/LiveSearch/SearchDemand/MutableSearchDemandTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Search\LiveSearch\SearchDemand; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\TestCase; use TYPO3\CMS\Backend\Search\LiveSearch\DatabaseRecordProvider; use TYPO3\CMS\Backend\Search\LiveSearch\SearchDemand\DemandProperty; @@ -26,9 +27,7 @@ use TYPO3\CMS\Core\Http\ServerRequest; final class MutableSearchDemandTest extends TestCase { - /** - * @test - */ + #[Test] public function setPropertyWorksAsExpected(): void { $query = 'foo'; @@ -39,9 +38,7 @@ final class MutableSearchDemandTest extends TestCase self::assertSame($query, $mutableSearchDemand->getProperty(DemandPropertyName::query)->getValue()); } - /** - * @test - */ + #[Test] public function consecutiveSetPropertyCallWithSameNameWorksAsExpected(): void { $limit = 42; @@ -54,9 +51,7 @@ final class MutableSearchDemandTest extends TestCase self::assertSame($limit, $mutableSearchDemand->getProperty(DemandPropertyName::limit)->getValue()); } - /** - * @test - */ + #[Test] public function freezeSetsSameDemandProperties(): void { $mutableSearchDemand = new MutableSearchDemand([ @@ -67,9 +62,7 @@ final class MutableSearchDemandTest extends TestCase self::assertSame($mutableSearchDemand->getProperties(), $searchDemand->getProperties()); } - /** - * @test - */ + #[Test] public function fromRequestCreatesExpectedDemand(): void { $query = 'Karl Ranseier'; diff --git a/typo3/sysext/backend/Tests/Unit/Search/LiveSearch/SearchDemand/SearchDemandTest.php b/typo3/sysext/backend/Tests/Unit/Search/LiveSearch/SearchDemand/SearchDemandTest.php index 61efa1b2b53546fc35d803ac3bbff8d950637b2e..98818622f3acf9ce2a1b34c4cb166cf179d8454e 100644 --- a/typo3/sysext/backend/Tests/Unit/Search/LiveSearch/SearchDemand/SearchDemandTest.php +++ b/typo3/sysext/backend/Tests/Unit/Search/LiveSearch/SearchDemand/SearchDemandTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Search\LiveSearch\SearchDemand; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\TestCase; use TYPO3\CMS\Backend\Search\LiveSearch\DatabaseRecordProvider; use TYPO3\CMS\Backend\Search\LiveSearch\SearchDemand\DemandProperty; @@ -26,9 +27,7 @@ use TYPO3\CMS\Core\Http\ServerRequest; final class SearchDemandTest extends TestCase { - /** - * @test - */ + #[Test] public function getPropertyReturnsValueAsExpected(): void { $query = 'foo'; @@ -43,9 +42,7 @@ final class SearchDemandTest extends TestCase self::assertSame($limit, $searchDemand->getProperty(DemandPropertyName::limit)->getValue()); } - /** - * @test - */ + #[Test] public function fromRequestCreatesExpectedDemand(): void { $query = 'Karl Ranseier'; diff --git a/typo3/sysext/backend/Tests/Unit/Security/EmailLoginNotificationTest.php b/typo3/sysext/backend/Tests/Unit/Security/EmailLoginNotificationTest.php index 7054358e5d6976be10270d3ccb15cdce6f8b747b..0814523b5f8d5def5194a1bdf3929dd5b4baf084 100644 --- a/typo3/sysext/backend/Tests/Unit/Security/EmailLoginNotificationTest.php +++ b/typo3/sysext/backend/Tests/Unit/Security/EmailLoginNotificationTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Security; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Backend\Security\EmailLoginNotification; use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; @@ -28,9 +29,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class EmailLoginNotificationTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function emailAtLoginSendsAnEmailIfUserHasValidEmailAndOptin(): void { $_SERVER['HTTP_HOST'] = 'localhost'; @@ -52,9 +51,7 @@ final class EmailLoginNotificationTest extends UnitTestCase $subject->emailAtLogin(new AfterUserLoggedInEvent($backendUser)); } - /** - * @test - */ + #[Test] public function emailAtLoginDoesNotSendAnEmailIfUserHasNoOptin(): void { $_SERVER['HTTP_HOST'] = 'localhost'; @@ -76,9 +73,7 @@ final class EmailLoginNotificationTest extends UnitTestCase // no additional assertion here, as the test would fail due to missing mail mocking if it actually tried to send an email } - /** - * @test - */ + #[Test] public function emailAtLoginDoesNotSendAnEmailIfUserHasInvalidEmail(): void { $_SERVER['HTTP_HOST'] = 'localhost'; @@ -100,9 +95,7 @@ final class EmailLoginNotificationTest extends UnitTestCase // no additional assertion here, as the test would fail due to missing mail mocking if it actually tried to send an email } - /** - * @test - */ + #[Test] public function emailAtLoginSendsEmailToCustomEmailIfAdminWarningIsEnabled(): void { $_SERVER['HTTP_HOST'] = 'localhost'; @@ -126,9 +119,7 @@ final class EmailLoginNotificationTest extends UnitTestCase $subject->emailAtLogin(new AfterUserLoggedInEvent($backendUser)); } - /** - * @test - */ + #[Test] public function emailAtLoginSendsEmailToCustomEmailIfRegularWarningIsEnabled(): void { $_SERVER['HTTP_HOST'] = 'localhost'; @@ -152,9 +143,7 @@ final class EmailLoginNotificationTest extends UnitTestCase $subject->emailAtLogin(new AfterUserLoggedInEvent($backendUser)); } - /** - * @test - */ + #[Test] public function emailAtLoginSendsEmailToCustomEmailIfRegularWarningIsEnabledAndNoAdminIsLoggingIn(): void { $_SERVER['HTTP_HOST'] = 'localhost'; @@ -178,9 +167,7 @@ final class EmailLoginNotificationTest extends UnitTestCase $subject->emailAtLogin(new AfterUserLoggedInEvent($backendUser)); } - /** - * @test - */ + #[Test] public function emailAtLoginSendsNoEmailIfAdminWarningIsEnabledAndNoAdminIsLoggingIn(): void { $_SERVER['HTTP_HOST'] = 'localhost'; diff --git a/typo3/sysext/backend/Tests/Unit/Template/Components/Button/FullyRenderedButtonTest.php b/typo3/sysext/backend/Tests/Unit/Template/Components/Button/FullyRenderedButtonTest.php index 083425cd33e78e533c8d5345b75c0d08566fb74e..54d416c4cff91f87085f4c4163e7ea7a150e8c3d 100644 --- a/typo3/sysext/backend/Tests/Unit/Template/Components/Button/FullyRenderedButtonTest.php +++ b/typo3/sysext/backend/Tests/Unit/Template/Components/Button/FullyRenderedButtonTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Template\Components\Button; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Template\Components\Buttons\FullyRenderedButton; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -24,9 +25,8 @@ final class FullyRenderedButtonTest extends UnitTestCase { /** * Try to validate an empty button - * - * @test */ + #[Test] public function isButtonValidBlankCallExpectFalse(): void { $button = new FullyRenderedButton(); @@ -36,9 +36,8 @@ final class FullyRenderedButtonTest extends UnitTestCase /** * Tests a valid HTML Button - * - * @test */ + #[Test] public function isButtonValidHtmlSourceGivenExpectTrue(): void { $button = new FullyRenderedButton(); diff --git a/typo3/sysext/backend/Tests/Unit/Template/Components/Button/InputButtonTest.php b/typo3/sysext/backend/Tests/Unit/Template/Components/Button/InputButtonTest.php index 668e9e61b91ea987648befd2d37e76d4718c41b3..273975482401c55c1f9a46b5f8f237ec15ccf9c5 100644 --- a/typo3/sysext/backend/Tests/Unit/Template/Components/Button/InputButtonTest.php +++ b/typo3/sysext/backend/Tests/Unit/Template/Components/Button/InputButtonTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Template\Components\Button; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Template\Components\Buttons\InputButton; use TYPO3\CMS\Core\Imaging\Icon; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -25,9 +26,8 @@ final class InputButtonTest extends UnitTestCase { /** * Try to validate an empty button - * - * @test */ + #[Test] public function isButtonValidBlankCallExpectFalse(): void { $button = new InputButton(); @@ -37,9 +37,8 @@ final class InputButtonTest extends UnitTestCase /** * Omit the Icon - * - * @test */ + #[Test] public function isButtonValidOmittedIconExpectFalse(): void { $button = new InputButton(); @@ -50,9 +49,8 @@ final class InputButtonTest extends UnitTestCase /** * Omit the title - * - * @test */ + #[Test] public function isButtonValidOmittedTitleExpectFalse(): void { $button = new InputButton(); @@ -64,9 +62,8 @@ final class InputButtonTest extends UnitTestCase /** * Omit the name - * - * @test */ + #[Test] public function isButtonValidOmittedNameExpectFalse(): void { $button = new InputButton(); @@ -78,9 +75,8 @@ final class InputButtonTest extends UnitTestCase /** * Omit the Value - * - * @test */ + #[Test] public function isButtonValidOmittedValueExpectFalse(): void { $button = new InputButton(); @@ -92,9 +88,8 @@ final class InputButtonTest extends UnitTestCase /** * Set a 100% valid button - * - * @test */ + #[Test] public function isButtonValidAllValuesSetExpectTrue(): void { $button = new InputButton(); diff --git a/typo3/sysext/backend/Tests/Unit/Template/Components/Button/LinkButtonTest.php b/typo3/sysext/backend/Tests/Unit/Template/Components/Button/LinkButtonTest.php index d7acf18d2dc31e1740aded41e514ff0b84e4a33b..9c47b821419c550a3ded673ef434fc5cb69467e2 100644 --- a/typo3/sysext/backend/Tests/Unit/Template/Components/Button/LinkButtonTest.php +++ b/typo3/sysext/backend/Tests/Unit/Template/Components/Button/LinkButtonTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Template\Components\Button; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Template\Components\Buttons\LinkButton; use TYPO3\CMS\Core\Imaging\Icon; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -25,9 +26,8 @@ final class LinkButtonTest extends UnitTestCase { /** * Try validating an empty button - * - * @test */ + #[Test] public function isButtonValidBlankCallExpectFalse(): void { $button = new LinkButton(); @@ -37,9 +37,8 @@ final class LinkButtonTest extends UnitTestCase /** * Omit the Icon - * - * @test */ + #[Test] public function isButtonValidOmittedIconExpectFalse(): void { $button = new LinkButton(); @@ -50,9 +49,8 @@ final class LinkButtonTest extends UnitTestCase /** * Omit the title - * - * @test */ + #[Test] public function isButtonValidOmittedTitleExpectFalse(): void { $button = new LinkButton(); @@ -64,9 +62,8 @@ final class LinkButtonTest extends UnitTestCase /** * Omit Href - * - * @test */ + #[Test] public function isButtonValidOmittedHrefExpectFalse(): void { $button = new LinkButton(); @@ -78,9 +75,8 @@ final class LinkButtonTest extends UnitTestCase /** * Send a valid button - * - * @test */ + #[Test] public function isButtonValidAllValuesSetExpectTrue(): void { $button = new LinkButton(); diff --git a/typo3/sysext/backend/Tests/Unit/Template/Components/Button/SplitButtonTest.php b/typo3/sysext/backend/Tests/Unit/Template/Components/Button/SplitButtonTest.php index 673abbc364e2e67114f03f3046dcc9be7d695274..838f35e0c3ddab33c500faedcbde1839d46d5523 100644 --- a/typo3/sysext/backend/Tests/Unit/Template/Components/Button/SplitButtonTest.php +++ b/typo3/sysext/backend/Tests/Unit/Template/Components/Button/SplitButtonTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Template\Components\Button; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Template\Components\Buttons\LinkButton; use TYPO3\CMS\Backend\Template\Components\Buttons\SplitButton; use TYPO3\CMS\Core\Imaging\Icon; @@ -29,9 +30,8 @@ final class SplitButtonTest extends UnitTestCase { /** * Try to validate an empty button - * - * @test */ + #[Test] public function isButtonValidBlankCallExpectFalse(): void { $button = new SplitButton(); @@ -41,9 +41,8 @@ final class SplitButtonTest extends UnitTestCase /** * Try adding an invalid button to a splitButton - * - * @test */ + #[Test] public function isButtonValidInvalidButtonGivenExpectFalse(): void { $this->expectException(\InvalidArgumentException::class); @@ -59,9 +58,8 @@ final class SplitButtonTest extends UnitTestCase /** * Try to add multiple primary actions - * - * @test */ + #[Test] public function isButtonValidBrokenSetupMultiplePrimaryActionsGivenExpectFalse(): void { $this->expectException(\InvalidArgumentException::class); @@ -83,9 +81,8 @@ final class SplitButtonTest extends UnitTestCase /** * Try to add an invalid button as second parameter - * - * @test */ + #[Test] public function isButtonValidBrokenSetupInvalidButtonAsSecondParametersGivenExpectFalse(): void { $this->expectException(\InvalidArgumentException::class); @@ -107,9 +104,8 @@ final class SplitButtonTest extends UnitTestCase /** * Send in a valid button - * - * @test */ + #[Test] public function isButtonValidValidSetupExpectTrue(): void { $button = new SplitButton(); diff --git a/typo3/sysext/backend/Tests/Unit/Template/Components/Menu/MenuItemTest.php b/typo3/sysext/backend/Tests/Unit/Template/Components/Menu/MenuItemTest.php index 0d62314f5e9846183efe9fa8d38382b85b583819..f14aec2804e9069e403bebe21b81dd61126210b8 100644 --- a/typo3/sysext/backend/Tests/Unit/Template/Components/Menu/MenuItemTest.php +++ b/typo3/sysext/backend/Tests/Unit/Template/Components/Menu/MenuItemTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Template\Components\Menu; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Template\Components\Menu\MenuItem; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -24,9 +25,8 @@ final class MenuItemTest extends UnitTestCase { /** * Try a blank menu Item - * - * @test */ + #[Test] public function isMenuItemValidBlankCallExpectFalse(): void { $menuItem = new MenuItem(); @@ -36,9 +36,8 @@ final class MenuItemTest extends UnitTestCase /** * Try omitting the title and a Href - * - * @test */ + #[Test] public function isMenuItemValidOmittedHrefAndRouteExpectFalse(): void { $menuItem = new MenuItem(); @@ -49,9 +48,8 @@ final class MenuItemTest extends UnitTestCase /** * Try omitting the title - * - * @test */ + #[Test] public function isMenuItemValidOmittedTitleExpectFalse(): void { $menuItem = new MenuItem(); @@ -62,9 +60,8 @@ final class MenuItemTest extends UnitTestCase /** * Set a valid title and href - * - * @test */ + #[Test] public function isMenuItemValidSetValidHrefAndTitleExpectTrue(): void { $menuItem = new MenuItem(); diff --git a/typo3/sysext/backend/Tests/Unit/Template/Components/MenuTest.php b/typo3/sysext/backend/Tests/Unit/Template/Components/MenuTest.php index f4a9c715181bb9a78cb752347335897c9bfed97c..cf3ecae643c7f1be9588419c6d70d8339d612fe8 100644 --- a/typo3/sysext/backend/Tests/Unit/Template/Components/MenuTest.php +++ b/typo3/sysext/backend/Tests/Unit/Template/Components/MenuTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Template\Components; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Template\Components\Menu\Menu; use TYPO3\CMS\Backend\Template\Components\MenuRegistry; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -25,9 +26,8 @@ final class MenuTest extends UnitTestCase { /** * Try setting an empty menu - * - * @test */ + #[Test] public function isMenuValidBlankCallExpectFalse(): void { $menu = new Menu(); @@ -37,9 +37,8 @@ final class MenuTest extends UnitTestCase /** * Set a valid menu - * - * @test */ + #[Test] public function isMenuValidValidMenuWithDefaultsExpectTrue(): void { $menu = new Menu(); @@ -50,9 +49,8 @@ final class MenuTest extends UnitTestCase /** * Set a valid menu - * - * @test */ + #[Test] public function makeMenuAllGoodExpectTrue(): void { $menuRegistry = new MenuRegistry(); @@ -65,9 +63,8 @@ final class MenuTest extends UnitTestCase /** * Tests if empty menus get removed from the stack - * - * @test */ + #[Test] public function getMenusRemovedEmptyMenusExpectsEquals(): void { $menuRegistry = new MenuRegistry(); diff --git a/typo3/sysext/backend/Tests/Unit/Tree/SortedTreeNodeCollectionTest.php b/typo3/sysext/backend/Tests/Unit/Tree/SortedTreeNodeCollectionTest.php index 657fa840c50d4e3f23babe3a44537c0dde2248d4..0ff147237e7b316667e43895e2c2c5207516054c 100644 --- a/typo3/sysext/backend/Tests/Unit/Tree/SortedTreeNodeCollectionTest.php +++ b/typo3/sysext/backend/Tests/Unit/Tree/SortedTreeNodeCollectionTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Tree; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Tree\SortedTreeNodeCollection; use TYPO3\CMS\Backend\Tree\TreeNode; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -48,9 +49,7 @@ final class SortedTreeNodeCollectionTest extends UnitTestCase return $nodeCollection; } - /** - * @test - */ + #[Test] public function appendsSorted(): void { $nodeCollection = $this->createTestCollection(); @@ -62,9 +61,7 @@ final class SortedTreeNodeCollectionTest extends UnitTestCase self::assertSame($expected, $ids); } - /** - * @test - */ + #[Test] public function collectionContainsNode(): void { $nodeCollection = $this->createTestCollection(); @@ -72,9 +69,7 @@ final class SortedTreeNodeCollectionTest extends UnitTestCase self::assertTrue($nodeCollection->contains($node)); } - /** - * @test - */ + #[Test] public function searchDataWithBinarySearch(): void { $nodeCollection = $this->createTestCollection(); diff --git a/typo3/sysext/backend/Tests/Unit/Tree/TreeNodeCollectionTest.php b/typo3/sysext/backend/Tests/Unit/Tree/TreeNodeCollectionTest.php index a288e95a769724464b6dad1d7049ded58c87061c..16373372d5ded08acd8e3c7805ae1271d2a12786 100644 --- a/typo3/sysext/backend/Tests/Unit/Tree/TreeNodeCollectionTest.php +++ b/typo3/sysext/backend/Tests/Unit/Tree/TreeNodeCollectionTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Tree; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Tree\TreeNode; use TYPO3\CMS\Backend\Tree\TreeNodeCollection; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -26,9 +27,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; */ final class TreeNodeCollectionTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function sortNodes(): void { $nodeCollection = new TreeNodeCollection([ diff --git a/typo3/sysext/backend/Tests/Unit/Tree/TreeNodeTest.php b/typo3/sysext/backend/Tests/Unit/Tree/TreeNodeTest.php index 2fe971f0bfec58c2cd7c37ae4ab5e42446f1c20f..fff181e29c54b2f444e9cee2a5b5193ca3ec7e8d 100644 --- a/typo3/sysext/backend/Tests/Unit/Tree/TreeNodeTest.php +++ b/typo3/sysext/backend/Tests/Unit/Tree/TreeNodeTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Tree; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Tree\TreeNode; use TYPO3\CMS\Backend\Tree\TreeNodeCollection; use TYPO3\CMS\Backend\Tree\TreeRepresentationNode; @@ -24,9 +25,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class TreeNodeTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function serializeFixture(): void { $expected = trim(file_get_contents(__DIR__ . '/Fixtures/serialized.txt')); @@ -57,9 +56,7 @@ final class TreeNodeTest extends UnitTestCase self::assertSame($expected, $serializedString); } - /** - * @test - */ + #[Test] public function deserializeFixture(): void { $source = trim(file_get_contents(__DIR__ . '/Fixtures/serialized.txt')); @@ -68,9 +65,7 @@ final class TreeNodeTest extends UnitTestCase self::assertSame($source, $serializedString); } - /** - * @test - */ + #[Test] public function compareNodes(): void { $node = new TreeNode(['id' => '15']); diff --git a/typo3/sysext/backend/Tests/Unit/Utility/BackendUtilityTest.php b/typo3/sysext/backend/Tests/Unit/Utility/BackendUtilityTest.php index 7f95a6b86d1ae07f8b1969084851386156506b43..8f3a8376d3252644556e2bb5b5bf11c8060ba10d 100644 --- a/typo3/sysext/backend/Tests/Unit/Utility/BackendUtilityTest.php +++ b/typo3/sysext/backend/Tests/Unit/Utility/BackendUtilityTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\Utility; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Tests\Unit\Utility\Fixtures\LabelFromItemListMergedReturnsCorrectFieldsFixture; use TYPO3\CMS\Backend\Utility\BackendUtility; use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; @@ -115,10 +117,8 @@ final class BackendUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider calcAgeDataProvider - */ + #[DataProvider('calcAgeDataProvider')] + #[Test] public function calcAgeReturnsExpectedValues(int $seconds, string $expectedLabel): void { self::assertSame($expectedLabel, BackendUtility::calcAge($seconds)); @@ -128,9 +128,9 @@ final class BackendUtilityTest extends UnitTestCase // Tests concerning getProcessedValue /////////////////////////////////////// /** - * @test * @see https://forge.typo3.org/issues/20994 */ + #[Test] public function getProcessedValueForZeroStringIsZero(): void { $GLOBALS['TCA'] = [ @@ -150,9 +150,7 @@ final class BackendUtilityTest extends UnitTestCase self::assertEquals('0', BackendUtility::getProcessedValue('tt_content', 'header', '0')); } - /** - * @test - */ + #[Test] public function getProcessedValueForGroup(): void { $GLOBALS['TCA'] = [ @@ -172,9 +170,7 @@ final class BackendUtilityTest extends UnitTestCase self::assertSame('testLabel', BackendUtility::getProcessedValue('tt_content', 'multimedia', '1,2')); } - /** - * @test - */ + #[Test] public function getProcessedValueForFlexNull(): void { $GLOBALS['TCA'] = [ @@ -194,9 +190,7 @@ final class BackendUtilityTest extends UnitTestCase self::assertSame('', BackendUtility::getProcessedValue('tt_content', 'pi_flexform', null)); } - /** - * @test - */ + #[Test] public function getProcessedValueForDatetimeDbTypeDateNull(): void { $GLOBALS['TCA'] = [ @@ -218,9 +212,7 @@ final class BackendUtilityTest extends UnitTestCase self::assertSame('', BackendUtility::getProcessedValue('tt_content', 'header', null)); } - /** - * @test - */ + #[Test] public function getProcessedValueForDatetimeDbTypeDatetime(): void { $GLOBALS['TCA'] = [ @@ -243,9 +235,7 @@ final class BackendUtilityTest extends UnitTestCase self::assertSame($expected, BackendUtility::getProcessedValue('tt_content', 'header', $value)); } - /** - * @test - */ + #[Test] public function getProcessedValueForDatetimeDbTypeDatetimeNull(): void { $GLOBALS['TCA'] = [ @@ -266,9 +256,7 @@ final class BackendUtilityTest extends UnitTestCase self::assertSame('', BackendUtility::getProcessedValue('tt_content', 'header', null)); } - /** - * @test - */ + #[Test] public function getProcessedValueForDatetimeDbTypeDate(): void { $GLOBALS['TCA'] = [ @@ -293,9 +281,7 @@ final class BackendUtilityTest extends UnitTestCase self::assertSame($expected, BackendUtility::getProcessedValue('tt_content', 'header', $value)); } - /** - * @test - */ + #[Test] public function getProcessedValueForFlex(): void { $GLOBALS['TCA'] = [ @@ -338,9 +324,7 @@ final class BackendUtilityTest extends UnitTestCase </T3FlexForms>')); } - /** - * @test - */ + #[Test] public function getProcessedValueForGroupWithOneAllowedTable(): void { $GLOBALS['TCA'] = [ @@ -402,9 +386,7 @@ final class BackendUtilityTest extends UnitTestCase self::assertSame('Page 1, Page 2', BackendUtility::getProcessedValue('tt_content', 'pages', '1,2')); } - /** - * @test - */ + #[Test] public function getProcessedValueForGroupWithMultipleAllowedTables(): void { $GLOBALS['TCA'] = [ @@ -472,9 +454,7 @@ final class BackendUtilityTest extends UnitTestCase self::assertSame('Page 1, Configuration 2', BackendUtility::getProcessedValue('index_config', 'indexcfgs', 'pages_1,index_config_2')); } - /** - * @test - */ + #[Test] public function getProcessedValueForSelectWithMMRelation(): void { $relationHandlerMock = $this->getMockBuilder(RelationHandler::class)->getMock(); @@ -561,9 +541,7 @@ final class BackendUtilityTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function getProcessedValueDisplaysAgeForDateInputFieldsIfSettingAbsent(): void { $languageServiceMock = $this->createMock(LanguageService::class); @@ -610,11 +588,10 @@ final class BackendUtilityTest extends UnitTestCase } /** - * @test - * @dataProvider inputTypeDateDisplayOptions - * * @param bool|int $input */ + #[DataProvider('inputTypeDateDisplayOptions')] + #[Test] public function getProcessedValueHandlesAgeDisplayCorrectly($input, string $expected): void { $languageServiceMock = $this->createMock(LanguageService::class); @@ -640,9 +617,7 @@ final class BackendUtilityTest extends UnitTestCase self::assertSame($expected, BackendUtility::getProcessedValue('tt_content', 'date', mktime(0, 0, 0, 8, 28, 2015))); } - /** - * @test - */ + #[Test] public function getProcessedValueForCheckWithSingleItem(): void { $GLOBALS['TCA'] = [ @@ -672,9 +647,7 @@ final class BackendUtilityTest extends UnitTestCase self::assertSame('Yes', BackendUtility::getProcessedValue('tt_content', 'hide', 1)); } - /** - * @test - */ + #[Test] public function getProcessedValueForCheckWithSingleItemInvertStateDisplay(): void { $GLOBALS['TCA'] = [ @@ -800,10 +773,8 @@ final class BackendUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider getCommonSelectFieldsReturnsCorrectFieldsDataProvider - */ + #[DataProvider('getCommonSelectFieldsReturnsCorrectFieldsDataProvider')] + #[Test] public function getCommonSelectFieldsReturnsCorrectFields( string $table, string $prefix, @@ -903,10 +874,8 @@ final class BackendUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider getLabelFromItemlistReturnsCorrectFieldsDataProvider - */ + #[DataProvider('getLabelFromItemlistReturnsCorrectFieldsDataProvider')] + #[Test] public function getLabelFromItemlistReturnsCorrectFields( string $table, string $col, @@ -978,10 +947,8 @@ final class BackendUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider getLabelFromItemListMergedReturnsCorrectFieldsDataProvider - */ + #[DataProvider('getLabelFromItemListMergedReturnsCorrectFieldsDataProvider')] + #[Test] public function getLabelFromItemListMergedReturnsCorrectFields( int $pageId, string $table, @@ -1064,10 +1031,8 @@ final class BackendUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider getLabelsFromItemsListDataProvider - */ + #[DataProvider('getLabelsFromItemsListDataProvider')] + #[Test] public function getLabelsFromItemsListReturnsCorrectValue( string $table, string $col, @@ -1097,9 +1062,7 @@ final class BackendUtilityTest extends UnitTestCase GeneralUtility::purgeInstances(); } - /** - * @test - */ + #[Test] public function getProcessedValueReturnsLabelsForExistingValuesSolely(): void { $table = 'foobar'; @@ -1126,9 +1089,7 @@ final class BackendUtilityTest extends UnitTestCase self::assertEquals('aFooLabel, aBarLabel', $label); } - /** - * @test - */ + #[Test] public function getProcessedValueReturnsPlainValueIfItemIsNotFound(): void { $table = 'foobar'; @@ -1154,9 +1115,7 @@ final class BackendUtilityTest extends UnitTestCase self::assertEquals('invalidKey', $label); } - /** - * @test - */ + #[Test] public function dateTimeAgeReturnsCorrectValues(): void { $languageServiceMock = $this->createMock(LanguageService::class); @@ -1168,9 +1127,7 @@ final class BackendUtilityTest extends UnitTestCase self::assertSame('24-03-16 (-1 day)', BackendUtility::dateTimeAge($GLOBALS['EXEC_TIME'] + 86400, 1, 'date')); } - /** - * @test - */ + #[Test] public function purgeComputedPropertyNamesRemovesPropertiesStartingWithUnderscore(): void { $propertyNames = [ @@ -1182,9 +1139,7 @@ final class BackendUtilityTest extends UnitTestCase self::assertSame(['uid', 'pid'], $computedPropertyNames); } - /** - * @test - */ + #[Test] public function purgeComputedPropertiesFromRecordRemovesPropertiesStartingWithUnderscore(): void { $record = [ @@ -1222,19 +1177,15 @@ final class BackendUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider splitTableUidDataProvider - */ + #[DataProvider('splitTableUidDataProvider')] + #[Test] public function splitTableUid($input, $expected): void { $result = BackendUtility::splitTable_Uid($input); self::assertSame($expected, $result); } - /** - * @test - */ + #[Test] public function returnNullForMissingTcaConfigInResolveFileReferences(): void { $tableName = 'table_a'; @@ -1243,10 +1194,8 @@ final class BackendUtilityTest extends UnitTestCase self::assertNull(BackendUtility::resolveFileReferences($tableName, $fieldName, [])); } - /** - * @test - * @dataProvider unfitResolveFileReferencesTableConfig - */ + #[DataProvider('unfitResolveFileReferencesTableConfig')] + #[Test] public function returnNullForUnfitTableConfigInResolveFileReferences(array $config): void { $tableName = 'table_a'; @@ -1291,9 +1240,7 @@ final class BackendUtilityTest extends UnitTestCase ]; } - /** - * @test - */ + #[Test] public function workspaceOLDoesNotChangeValuesForNoBeUserAvailable(): void { $GLOBALS['BE_USER'] = null; @@ -1307,9 +1254,7 @@ final class BackendUtilityTest extends UnitTestCase self::assertSame($reference, $row); } - /** - * @test - */ + #[Test] public function resolveFileReferencesReturnsEmptyResultForNoReferencesAvailable(): void { $tableName = 'table_a'; @@ -1338,9 +1283,7 @@ final class BackendUtilityTest extends UnitTestCase self::assertEmpty(BackendUtility::resolveFileReferences($tableName, $fieldName, $elementData)); } - /** - * @test - */ + #[Test] public function wsMapIdReturnsLiveIdIfNoBeUserIsAvailable(): void { $GLOBALS['BE_USER'] = null; @@ -1349,18 +1292,14 @@ final class BackendUtilityTest extends UnitTestCase self::assertSame(42, BackendUtility::wsMapId($tableName, $uid)); } - /** - * @test - */ + #[Test] public function getAllowedFieldsForTableReturnsEmptyArrayOnBrokenTca(): void { $GLOBALS['BE_USER'] = new BackendUserAuthentication(); self::assertEmpty(BackendUtility::getAllowedFieldsForTable('myTable', false)); } - /** - * @test - */ + #[Test] public function getAllowedFieldsForTableReturnsUniqueList(): void { $GLOBALS['BE_USER'] = new BackendUserAuthentication(); diff --git a/typo3/sysext/backend/Tests/Unit/View/BackendLayout/BackendLayoutCollectionTest.php b/typo3/sysext/backend/Tests/Unit/View/BackendLayout/BackendLayoutCollectionTest.php index 87df4f2c09319cb60a44c2e6617551fbbf389d43..b4c0b6b76bdedf2e67090c94572c0ad17e3cdca1 100644 --- a/typo3/sysext/backend/Tests/Unit/View/BackendLayout/BackendLayoutCollectionTest.php +++ b/typo3/sysext/backend/Tests/Unit/View/BackendLayout/BackendLayoutCollectionTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\View\BackendLayout; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\View\BackendLayout\BackendLayout; use TYPO3\CMS\Backend\View\BackendLayout\BackendLayoutCollection; use TYPO3\CMS\Core\Utility\StringUtility; @@ -27,9 +28,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; */ final class BackendLayoutCollectionTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function invalidIdentifierIsRecognizedOnCreation(): void { $this->expectException(\UnexpectedValueException::class); @@ -38,9 +37,7 @@ final class BackendLayoutCollectionTest extends UnitTestCase new BackendLayoutCollection($identifier); } - /** - * @test - */ + #[Test] public function objectIsCreated(): void { $identifier = StringUtility::getUniqueId('identifier'); @@ -49,9 +46,7 @@ final class BackendLayoutCollectionTest extends UnitTestCase self::assertEquals($identifier, $backendLayoutCollection->getIdentifier()); } - /** - * @test - */ + #[Test] public function invalidBackendLayoutIsRecognizedOnAdding(): void { $this->expectException(\UnexpectedValueException::class); @@ -68,9 +63,7 @@ final class BackendLayoutCollectionTest extends UnitTestCase $backendLayoutCollection->add($backendLayoutMock); } - /** - * @test - */ + #[Test] public function duplicateBackendLayoutIsRecognizedOnAdding(): void { $this->expectException(\LogicException::class); @@ -93,9 +86,7 @@ final class BackendLayoutCollectionTest extends UnitTestCase $backendLayoutCollection->add($secondBackendLayoutMock); } - /** - * @test - */ + #[Test] public function backendLayoutCanBeFetched(): void { $identifier = StringUtility::getUniqueId('identifier'); diff --git a/typo3/sysext/backend/Tests/Unit/View/BackendLayout/BackendLayoutTest.php b/typo3/sysext/backend/Tests/Unit/View/BackendLayout/BackendLayoutTest.php index 2ba7ae58f9315fcac06b637e7ffc0c0964d76ad3..49dcc2fef925f4d9128e064fc15848a59e31df22 100644 --- a/typo3/sysext/backend/Tests/Unit/View/BackendLayout/BackendLayoutTest.php +++ b/typo3/sysext/backend/Tests/Unit/View/BackendLayout/BackendLayoutTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\View\BackendLayout; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\View\BackendLayout\BackendLayout; use TYPO3\CMS\Backend\View\BackendLayoutView; use TYPO3\CMS\Core\Utility\GeneralUtility; @@ -30,9 +31,7 @@ final class BackendLayoutTest extends UnitTestCase { protected bool $resetSingletonInstances = true; - /** - * @test - */ + #[Test] public function invalidIdentifierIsRecognizedOnCreation(): void { $this->expectException(\UnexpectedValueException::class); @@ -43,9 +42,7 @@ final class BackendLayoutTest extends UnitTestCase new BackendLayout($identifier, $title, $configuration); } - /** - * @test - */ + #[Test] public function objectIsCreated(): void { $backendLayoutView = $this->createMock(BackendLayoutView::class); diff --git a/typo3/sysext/backend/Tests/Unit/View/BackendLayout/DataProviderCollectionTest.php b/typo3/sysext/backend/Tests/Unit/View/BackendLayout/DataProviderCollectionTest.php index d8b067fa2bedb24ba58721f466ea794c98b453bc..c743c026b55c1c06faf1916c5d039ab524b4d6e5 100644 --- a/typo3/sysext/backend/Tests/Unit/View/BackendLayout/DataProviderCollectionTest.php +++ b/typo3/sysext/backend/Tests/Unit/View/BackendLayout/DataProviderCollectionTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\View\BackendLayout; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\View\BackendLayout\BackendLayout; use TYPO3\CMS\Backend\View\BackendLayout\DataProviderCollection; use TYPO3\CMS\Backend\View\BackendLayout\DefaultDataProvider; @@ -39,9 +40,7 @@ final class DataProviderCollectionTest extends UnitTestCase $this->dataProviderCollection = new DataProviderCollection(); } - /** - * @test - */ + #[Test] public function invalidIdentifierIsRecognizedOnAdding(): void { $this->expectException(\UnexpectedValueException::class); @@ -52,9 +51,7 @@ final class DataProviderCollectionTest extends UnitTestCase $this->dataProviderCollection->add($identifier, get_class($dataProviderMock)); } - /** - * @test - */ + #[Test] public function invalidInterfaceIsRecognizedOnAdding(): void { $this->expectException(\LogicException::class); @@ -65,9 +62,7 @@ final class DataProviderCollectionTest extends UnitTestCase $this->dataProviderCollection->add($identifier, get_class($dataProviderMock)); } - /** - * @test - */ + #[Test] public function defaultBackendLayoutIsFound(): void { $backendLayoutIdentifier = StringUtility::getUniqueId('identifier'); @@ -90,9 +85,7 @@ final class DataProviderCollectionTest extends UnitTestCase self::assertEquals($backendLayoutIdentifier, $providedBackendLayout->getIdentifier()); } - /** - * @test - */ + #[Test] public function providedBackendLayoutIsFound(): void { $dataProviderIdentifier = StringUtility::getUniqueId('custom'); diff --git a/typo3/sysext/backend/Tests/Unit/View/BackendLayoutViewTest.php b/typo3/sysext/backend/Tests/Unit/View/BackendLayoutViewTest.php index ab89e11408f123a55e670cdc687ccf0aef68e131..5e56d0c919c1308bf97c02731d37140badea0088 100644 --- a/typo3/sysext/backend/Tests/Unit/View/BackendLayoutViewTest.php +++ b/typo3/sysext/backend/Tests/Unit/View/BackendLayoutViewTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\Unit\View; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Backend\View\BackendLayoutView; use TYPO3\TestingFramework\Core\AccessibleObjectInterface; @@ -43,9 +45,9 @@ final class BackendLayoutViewTest extends UnitTestCase /** * @param bool|string $expected - * @test - * @dataProvider selectedCombinedIdentifierIsDeterminedDataProvider */ + #[DataProvider('selectedCombinedIdentifierIsDeterminedDataProvider')] + #[Test] public function selectedCombinedIdentifierIsDetermined($expected, array $page, array $rootLine): void { $pageId = $page['uid']; diff --git a/typo3/sysext/backend/Tests/UnitDeprecated/Form/FormDataProvider/TcaFlexPrepareTest.php b/typo3/sysext/backend/Tests/UnitDeprecated/Form/FormDataProvider/TcaFlexPrepareTest.php index b33bcfc493acb63dfa39bd5af1114249a22b2a98..76f9f6ab71c3d43353a1400730d98a9e5fe5c644 100644 --- a/typo3/sysext/backend/Tests/UnitDeprecated/Form/FormDataProvider/TcaFlexPrepareTest.php +++ b/typo3/sysext/backend/Tests/UnitDeprecated/Form/FormDataProvider/TcaFlexPrepareTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Backend\Tests\UnitDeprecated\Form\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use Psr\EventDispatcher\EventDispatcherInterface; use TYPO3\CMS\Backend\Form\FormDataProvider\TcaFlexPrepare; use TYPO3\CMS\Core\Cache\CacheManager; @@ -51,9 +52,7 @@ final class TcaFlexPrepareTest extends UnitTestCase parent::tearDown(); } - /** - * @test - */ + #[Test] public function addDataMigratesFlexformTca(): void { $input = [ @@ -125,9 +124,7 @@ final class TcaFlexPrepareTest extends UnitTestCase self::assertEquals($expected, $this->subject->addData($input)); } - /** - * @test - */ + #[Test] public function addDataMigratesFlexformTcaInContainer(): void { $input = [ diff --git a/typo3/sysext/belog/Tests/Unit/Domain/Model/ConstraintTest.php b/typo3/sysext/belog/Tests/Unit/Domain/Model/ConstraintTest.php index 9e991b15d5fdb443dae11dbef2366a1f289e1387..d23f205e46892e3d42419d25ec1ee7d1f99e67e4 100644 --- a/typo3/sysext/belog/Tests/Unit/Domain/Model/ConstraintTest.php +++ b/typo3/sysext/belog/Tests/Unit/Domain/Model/ConstraintTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Belog\Tests\Unit\Domain\Model; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Belog\Domain\Model\Constraint; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -30,9 +31,7 @@ final class ConstraintTest extends UnitTestCase $this->subject = new Constraint(); } - /** - * @test - */ + #[Test] public function setManualDateStartForDateTimeSetsManualDateStart(): void { $date = new \DateTime(); @@ -40,18 +39,14 @@ final class ConstraintTest extends UnitTestCase self::assertEquals($date, $this->subject->getManualDateStart()); } - /** - * @test - */ + #[Test] public function setManualDateStartForNoArgumentSetsManualDateStart(): void { $this->subject->setManualDateStart(); self::assertNull($this->subject->getManualDateStart()); } - /** - * @test - */ + #[Test] public function setManualDateStopForDateTimeSetsManualDateStop(): void { $date = new \DateTime(); @@ -59,9 +54,7 @@ final class ConstraintTest extends UnitTestCase self::assertEquals($date, $this->subject->getManualDateStop()); } - /** - * @test - */ + #[Test] public function setManualDateStopForNoArgumentSetsManualDateStop(): void { $this->subject->setManualDateStop(); diff --git a/typo3/sysext/belog/Tests/Unit/Domain/Model/LogEntryTest.php b/typo3/sysext/belog/Tests/Unit/Domain/Model/LogEntryTest.php index e167a32c796c5252b4706b6680bae9b556e0740b..0a5ba4c5c7f7e3f6293ab4a99deb34992ac86b9c 100644 --- a/typo3/sysext/belog/Tests/Unit/Domain/Model/LogEntryTest.php +++ b/typo3/sysext/belog/Tests/Unit/Domain/Model/LogEntryTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Belog\Tests\Unit\Domain\Model; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Belog\Domain\Model\LogEntry; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -30,35 +32,27 @@ final class LogEntryTest extends UnitTestCase $this->subject = new LogEntry(); } - /** - * @test - */ + #[Test] public function getLogDataInitiallyReturnsEmptyArray(): void { self::assertSame([], $this->subject->getLogData()); } - /** - * @test - */ + #[Test] public function getLogDataForEmptyStringLogDataReturnsEmptyArray(): void { $this->subject->setLogData(''); self::assertSame([], $this->subject->getLogData()); } - /** - * @test - */ + #[Test] public function getLogDataForGarbageStringLogDataReturnsEmptyArray(): void { $this->subject->setLogData('foo bar'); self::assertSame([], $this->subject->getLogData()); } - /** - * @test - */ + #[Test] public function getLogDataForSerializedArrayReturnsThatArray(): void { $logData = ['foo', 'bar']; @@ -66,9 +60,7 @@ final class LogEntryTest extends UnitTestCase self::assertSame($logData, $this->subject->getLogData()); } - /** - * @test - */ + #[Test] public function getLogDataForSerializedObjectReturnsEmptyArray(): void { $this->subject->setLogData(serialize(new \stdClass())); @@ -97,10 +89,8 @@ final class LogEntryTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider getErrorIconReturnsCorrespondingClassDataProvider - */ + #[DataProvider('getErrorIconReturnsCorrespondingClassDataProvider')] + #[Test] public function getErrorIconReturnsCorrespondingClass(int $error, string $expectedClass): void { $this->subject->setError($error); diff --git a/typo3/sysext/belog/Tests/Unit/Domain/Repository/LogEntryRepositoryTest.php b/typo3/sysext/belog/Tests/Unit/Domain/Repository/LogEntryRepositoryTest.php index 13b1a7ddce46e407ac7c2d55824df241ef2bc3c3..93af3669838b308e29e1728655509d28095aac2d 100644 --- a/typo3/sysext/belog/Tests/Unit/Domain/Repository/LogEntryRepositoryTest.php +++ b/typo3/sysext/belog/Tests/Unit/Domain/Repository/LogEntryRepositoryTest.php @@ -17,15 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Belog\Tests\Unit\Domain\Repository; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Belog\Domain\Repository\LogEntryRepository; use TYPO3\CMS\Extbase\Persistence\Generic\QuerySettingsInterface; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class LogEntryRepositoryTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function initializeObjectSetsRespectStoragePidToFalse(): void { $querySettings = $this->getMockBuilder(QuerySettingsInterface::class)->getMock(); diff --git a/typo3/sysext/beuser/Tests/Unit/Domain/Model/BackendUserTest.php b/typo3/sysext/beuser/Tests/Unit/Domain/Model/BackendUserTest.php index 7ae486856c37f38cae13ac758102fb4b06018c92..4e221f7741a1403f8efab4cd9aefe6405adf5505 100644 --- a/typo3/sysext/beuser/Tests/Unit/Domain/Model/BackendUserTest.php +++ b/typo3/sysext/beuser/Tests/Unit/Domain/Model/BackendUserTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Beuser\Tests\Unit\Domain\Model; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Beuser\Domain\Model\BackendUser; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -30,25 +31,19 @@ final class BackendUserTest extends UnitTestCase $this->subject = new BackendUser(); } - /** - * @test - */ + #[Test] public function getUidReturnsInitialValueForInt(): void { self::assertNull($this->subject->getUid(), 'Not uid set after initialization.'); } - /** - * @test - */ + #[Test] public function getUserNameReturnsInitialValueForString(): void { self::assertSame($this->subject->getUserName(), '', 'Username not empty'); } - /** - * @test - */ + #[Test] public function setUserNameForStringSetsUserName(): void { $newUserName = 'DonJuan'; @@ -56,17 +51,13 @@ final class BackendUserTest extends UnitTestCase self::assertSame($this->subject->getUserName(), $newUserName); } - /** - * @test - */ + #[Test] public function getRealNameReturnInitialValueForString(): void { self::assertSame($this->subject->getRealName(), '', 'Real name not empty'); } - /** - * @test - */ + #[Test] public function setRealNameForStringSetsName(): void { $realName = 'Conceived at T3CON2018'; @@ -74,26 +65,20 @@ final class BackendUserTest extends UnitTestCase self::assertSame($this->subject->getRealName(), $realName); } - /** - * @test - */ + #[Test] public function getAdminReturnInitialValueForBoolean(): void { self::assertFalse($this->subject->getIsAdministrator(), 'Admin status is correct.'); } - /** - * @test - */ + #[Test] public function setAdminToTrueSetsAdmin(): void { $this->subject->setIsAdministrator(true); self::assertTrue($this->subject->getIsAdministrator(), 'Admin status is not true, after setting to true.'); } - /** - * @test - */ + #[Test] public function setAdminToFalseSetsAdmin(): void { $this->subject->setIsAdministrator(false); diff --git a/typo3/sysext/beuser/Tests/Unit/Domain/Model/DemandTest.php b/typo3/sysext/beuser/Tests/Unit/Domain/Model/DemandTest.php index 9688673a4124457fc560d4aa16a306aa7529b8fe..cf8d31fe2a098a4edf5de658cff03a7daea0e479 100644 --- a/typo3/sysext/beuser/Tests/Unit/Domain/Model/DemandTest.php +++ b/typo3/sysext/beuser/Tests/Unit/Domain/Model/DemandTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Beuser\Tests\Unit\Domain\Model; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Beuser\Domain\Model\Demand; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -30,9 +31,7 @@ final class DemandTest extends UnitTestCase $this->subject = new Demand(); } - /** - * @test - */ + #[Test] public function setUserTypeAllExpectedValueForInt(): void { $userType = Demand::ALL; @@ -40,9 +39,7 @@ final class DemandTest extends UnitTestCase self::assertSame($this->subject->getUserType(), $userType); } - /** - * @test - */ + #[Test] public function setUserTypeAdminOnlyExpectedValueForInt(): void { $userType = Demand::USERTYPE_ADMINONLY; @@ -50,9 +47,7 @@ final class DemandTest extends UnitTestCase self::assertSame($this->subject->getUserType(), $userType); } - /** - * @test - */ + #[Test] public function setUserTypeUserOnlyExpectedValueForInt(): void { $userType = Demand::USERTYPE_USERONLY; @@ -60,9 +55,7 @@ final class DemandTest extends UnitTestCase self::assertSame($this->subject->getUserType(), $userType); } - /** - * @test - */ + #[Test] public function setStatusAllExpectedValueForInt(): void { $status = Demand::ALL; @@ -70,9 +63,7 @@ final class DemandTest extends UnitTestCase self::assertSame($this->subject->getStatus(), $status); } - /** - * @test - */ + #[Test] public function setStatusActiveExpectedValueForInt(): void { $status = Demand::STATUS_ACTIVE; @@ -80,9 +71,7 @@ final class DemandTest extends UnitTestCase self::assertSame($this->subject->getStatus(), $status); } - /** - * @test - */ + #[Test] public function setStatusInactiveExpectedValueForInt(): void { $status = Demand::STATUS_INACTIVE; @@ -90,9 +79,7 @@ final class DemandTest extends UnitTestCase self::assertSame($this->subject->getStatus(), $status); } - /** - * @test - */ + #[Test] public function setLoginAllExpectedValueForInt(): void { $login = Demand::ALL; @@ -100,9 +87,7 @@ final class DemandTest extends UnitTestCase self::assertSame($this->subject->getLogins(), $login); } - /** - * @test - */ + #[Test] public function setLoginNoneExpectedValueForInt(): void { $login = Demand::LOGIN_NONE; @@ -110,9 +95,7 @@ final class DemandTest extends UnitTestCase self::assertSame($this->subject->getLogins(), $login); } - /** - * @test - */ + #[Test] public function setLoginSameExpectedValueForInt(): void { $login = Demand::LOGIN_SOME; @@ -120,17 +103,13 @@ final class DemandTest extends UnitTestCase self::assertSame($this->subject->getLogins(), $login); } - /** - * @test - */ + #[Test] public function getUserNameInitialValueForString(): void { self::assertSame($this->subject->getUserName(), '', 'UserName must be empty string.'); } - /** - * @test - */ + #[Test] public function setUserNameReturnExpectedValueForString(): void { $newUserName = 'User#ää*%^name'; diff --git a/typo3/sysext/beuser/Tests/Unit/Domain/Repository/BackendUserRepositoryTest.php b/typo3/sysext/beuser/Tests/Unit/Domain/Repository/BackendUserRepositoryTest.php index 3b7c537dbec9f9a5f43a6dac31995b6deb0b98f0..978ff9c4234aadc6f515816df6d5bcc986713894 100644 --- a/typo3/sysext/beuser/Tests/Unit/Domain/Repository/BackendUserRepositoryTest.php +++ b/typo3/sysext/beuser/Tests/Unit/Domain/Repository/BackendUserRepositoryTest.php @@ -17,14 +17,13 @@ declare(strict_types=1); namespace TYPO3\CMS\Beuser\Tests\Unit\Domain\Repository; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Beuser\Domain\Repository\BackendUserRepository; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class BackendUserRepositoryTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function classCanBeInstantiated(): void { new BackendUserRepository(); diff --git a/typo3/sysext/beuser/Tests/Unit/Domain/Repository/FileMountRepositoryTest.php b/typo3/sysext/beuser/Tests/Unit/Domain/Repository/FileMountRepositoryTest.php index ba0a104be1da855f27fe6b8eeb4dcb3d9c5484d1..f502d3f6ba79abd7eacc494fdf04a6520a77c2e8 100644 --- a/typo3/sysext/beuser/Tests/Unit/Domain/Repository/FileMountRepositoryTest.php +++ b/typo3/sysext/beuser/Tests/Unit/Domain/Repository/FileMountRepositoryTest.php @@ -17,14 +17,13 @@ declare(strict_types=1); namespace TYPO3\CMS\Beuser\Tests\Unit\Domain\Repository; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Beuser\Domain\Repository\FileMountRepository; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class FileMountRepositoryTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function classCanBeInstantiated(): void { new FileMountRepository(); diff --git a/typo3/sysext/core/Tests/Unit/Authentication/AuthenticationServiceTest.php b/typo3/sysext/core/Tests/Unit/Authentication/AuthenticationServiceTest.php index 8708baf4dc0ffea5ede9c37ab06797715e28679d..9ae2bd19595ddb521ccdbf696ada7f916f68c7e7 100644 --- a/typo3/sysext/core/Tests/Unit/Authentication/AuthenticationServiceTest.php +++ b/typo3/sysext/core/Tests/Unit/Authentication/AuthenticationServiceTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Authentication; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use Psr\Log\NullLogger; use TYPO3\CMS\Core\Authentication\AuthenticationService; use TYPO3\CMS\Core\Session\UserSession; @@ -81,10 +83,8 @@ final class AuthenticationServiceTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider processLoginDataProvider - */ + #[DataProvider('processLoginDataProvider')] + #[Test] public function processLoginReturnsCorrectData(string $passwordSubmissionStrategy, array $loginData, array $expectedProcessedData): void { $subject = new AuthenticationService(); @@ -93,9 +93,7 @@ final class AuthenticationServiceTest extends UnitTestCase self::assertEquals($expectedProcessedData, $loginData); } - /** - * @test - */ + #[Test] public function authUserReturns100IfSubmittedPasswordIsEmpty(): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['encryptionKey'] = '12345'; @@ -108,9 +106,7 @@ final class AuthenticationServiceTest extends UnitTestCase self::assertSame(100, $subject->authUser([])); } - /** - * @test - */ + #[Test] public function authUserReturns100IfUserSubmittedUsernameIsEmpty(): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['encryptionKey'] = '12345'; @@ -123,9 +119,7 @@ final class AuthenticationServiceTest extends UnitTestCase self::assertSame(100, $subject->authUser([])); } - /** - * @test - */ + #[Test] public function authUserThrowsExceptionIfUserTableIsNotSet(): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['encryptionKey'] = '12345'; @@ -140,9 +134,7 @@ final class AuthenticationServiceTest extends UnitTestCase $subject->authUser([]); } - /** - * @test - */ + #[Test] public function authUserThrowsExceptionIfPasswordInDbDoesNotResolveToAValidHash(): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['encryptionKey'] = '12345'; @@ -170,9 +162,7 @@ final class AuthenticationServiceTest extends UnitTestCase self::assertEquals(100, $subject->authUser($dbUser)); } - /** - * @test - */ + #[Test] public function authUserReturns0IfPasswordDoesNotMatch(): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['encryptionKey'] = '12345'; @@ -201,9 +191,7 @@ final class AuthenticationServiceTest extends UnitTestCase self::assertSame(0, $subject->authUser($dbUser)); } - /** - * @test - */ + #[Test] public function authUserReturns200IfPasswordMatch(): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['encryptionKey'] = '12345'; diff --git a/typo3/sysext/core/Tests/Unit/Authentication/BackendUserAuthenticationTest.php b/typo3/sysext/core/Tests/Unit/Authentication/BackendUserAuthenticationTest.php index 6ab33611fd5024ba48c57823711839f867e77fd2..8c26c185968d5aec8cc455732a718ee6cd201309 100644 --- a/typo3/sysext/core/Tests/Unit/Authentication/BackendUserAuthenticationTest.php +++ b/typo3/sysext/core/Tests/Unit/Authentication/BackendUserAuthenticationTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Authentication; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use Psr\EventDispatcher\EventDispatcherInterface; use Psr\EventDispatcher\ListenerProviderInterface; use Psr\Log\NullLogger; @@ -47,9 +49,7 @@ final class BackendUserAuthenticationTest extends UnitTestCase { protected bool $resetSingletonInstances = true; - /** - * @test - */ + #[Test] public function logoffCleansFormProtectionIfBackendUserIsLoggedIn(): void { $GLOBALS['LANG'] = $this->createMock(LanguageService::class); @@ -150,10 +150,8 @@ final class BackendUserAuthenticationTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider getFilePermissionsTakesUserDefaultAndStoragePermissionsIntoAccountIfUserIsNotAdminDataProvider - */ + #[DataProvider('getFilePermissionsTakesUserDefaultAndStoragePermissionsIntoAccountIfUserIsNotAdminDataProvider')] + #[Test] public function getFilePermissionsTakesUserDefaultPermissionsFromTsConfigIntoAccountIfUserIsNotAdmin(array $userTsConfiguration): void { $subject = $this->getMockBuilder(BackendUserAuthentication::class) @@ -300,10 +298,8 @@ final class BackendUserAuthenticationTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider getFilePermissionsFromStorageDataProvider - */ + #[DataProvider('getFilePermissionsFromStorageDataProvider')] + #[Test] public function getFilePermissionsFromStorageOverwritesDefaultPermissions(array $defaultPermissions, int $storageUid, array $storagePermissions, array $expectedPermissions): void { $subject = $this->getMockBuilder(BackendUserAuthentication::class) @@ -335,10 +331,8 @@ final class BackendUserAuthenticationTest extends UnitTestCase self::assertEquals($expectedPermissions, $subject->getFilePermissionsForStorage($storageMock)); } - /** - * @test - * @dataProvider getFilePermissionsFromStorageDataProvider - */ + #[DataProvider('getFilePermissionsFromStorageDataProvider')] + #[Test] public function getFilePermissionsFromStorageAlwaysReturnsDefaultPermissionsForAdmins(array $defaultPermissions, int $storageUid, array $storagePermissions): void { $subject = $this->getMockBuilder(BackendUserAuthentication::class) @@ -476,10 +470,8 @@ final class BackendUserAuthenticationTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider getFilePermissionsTakesUserDefaultPermissionsFromRecordIntoAccountIfUserIsNotAdminDataProvider - */ + #[DataProvider('getFilePermissionsTakesUserDefaultPermissionsFromRecordIntoAccountIfUserIsNotAdminDataProvider')] + #[Test] public function getFilePermissionsTakesUserDefaultPermissionsFromRecordIntoAccountIfUserIsNotAdmin(string $permissionValue, array $expectedPermissions): void { $subject = $this->getMockBuilder(BackendUserAuthentication::class) @@ -497,9 +489,7 @@ final class BackendUserAuthenticationTest extends UnitTestCase self::assertEquals($expectedPermissions, $subject->getFilePermissions()); } - /** - * @test - */ + #[Test] public function getFilePermissionsGrantsAllPermissionsToAdminUsers(): void { $subject = $this->getMockBuilder(BackendUserAuthentication::class) @@ -531,9 +521,7 @@ final class BackendUserAuthenticationTest extends UnitTestCase self::assertEquals($expectedPermissions, $subject->getFilePermissions()); } - /** - * @test - */ + #[Test] public function jsConfirmationReturnsTrueIfPassedValueEqualsConfiguration(): void { $subject = $this->getMockBuilder(BackendUserAuthentication::class) @@ -548,9 +536,7 @@ final class BackendUserAuthenticationTest extends UnitTestCase self::assertFalse($subject->jsConfirmation(JsConfirmation::COPY_MOVE_PASTE)); } - /** - * @test - */ + #[Test] public function jsConfirmationAllowsSettingMultipleBitsInValue(): void { $subject = $this->getMockBuilder(BackendUserAuthentication::class) @@ -565,10 +551,8 @@ final class BackendUserAuthenticationTest extends UnitTestCase self::assertTrue($subject->jsConfirmation(JsConfirmation::COPY_MOVE_PASTE)); } - /** - * @test - * @dataProvider jsConfirmationsWithUnsetBits - */ + #[DataProvider('jsConfirmationsWithUnsetBits')] + #[Test] public function jsConfirmationAllowsUnsettingBitsInValue(int $jsConfirmation, bool $typeChangeAllowed, bool $copyMovePasteAllowed, bool $deleteAllowed, bool $feEditAllowed, bool $otherAllowed): void { $subject = $this->getMockBuilder(BackendUserAuthentication::class) @@ -608,9 +592,7 @@ final class BackendUserAuthenticationTest extends UnitTestCase ]; } - /** - * @test - */ + #[Test] public function jsConfirmationAlwaysReturnsFalseIfNoConfirmationIsSet(): void { $subject = $this->getMockBuilder(BackendUserAuthentication::class) @@ -625,9 +607,7 @@ final class BackendUserAuthenticationTest extends UnitTestCase self::assertFalse($subject->jsConfirmation(JsConfirmation::COPY_MOVE_PASTE)); } - /** - * @test - */ + #[Test] public function jsConfirmationReturnsTrueIfConfigurationIsMissing(): void { $subject = $this->getMockBuilder(BackendUserAuthentication::class) @@ -678,10 +658,8 @@ final class BackendUserAuthenticationTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider getPagePermissionsClauseWithValidUserDataProvider - */ + #[DataProvider('getPagePermissionsClauseWithValidUserDataProvider')] + #[Test] public function getPagePermissionsClauseWithValidUser(int $perms, bool $admin, array $groups, string $expected): void { // We only need to setup the mocking for the non-admin cases @@ -720,10 +698,8 @@ final class BackendUserAuthenticationTest extends UnitTestCase self::assertEquals($expected, $subject->getPagePermsClause($perms)); } - /** - * @test - * @dataProvider checkAuthModeReturnsExpectedValueDataProvider - */ + #[DataProvider('checkAuthModeReturnsExpectedValueDataProvider')] + #[Test] public function checkAuthModeReturnsExpectedValue(string $theValue, bool $expectedResult): void { $subject = $this->getMockBuilder(BackendUserAuthentication::class) diff --git a/typo3/sysext/core/Tests/Unit/Authentication/IpLockerTest.php b/typo3/sysext/core/Tests/Unit/Authentication/IpLockerTest.php index 8e2fa8d03e0b3c8a8095939398a69aa9261cca39..e872fca33174c4431a6b7e021ea18416652312a3 100644 --- a/typo3/sysext/core/Tests/Unit/Authentication/IpLockerTest.php +++ b/typo3/sysext/core/Tests/Unit/Authentication/IpLockerTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Authentication; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Authentication\IpLocker; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -134,10 +136,8 @@ final class IpLockerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider getSessionIpLockDataProvider - */ + #[DataProvider('getSessionIpLockDataProvider')] + #[Test] public function getSessionIpLock(string $ipAddress, int $lockIPv4PartCount, int $lockIPv6PartCount, string $expectedLock): void { $ipLocker = GeneralUtility::makeInstance(IpLocker::class, $lockIPv4PartCount, $lockIPv6PartCount); diff --git a/typo3/sysext/core/Tests/Unit/Authentication/Mfa/Provider/RecoveryCodesTest.php b/typo3/sysext/core/Tests/Unit/Authentication/Mfa/Provider/RecoveryCodesTest.php index 08f274f0aee935d063ce1498a1b95d6fee3fba5f..195a9c7cb9724026b661e32abec3af4cf05f2a20 100644 --- a/typo3/sysext/core/Tests/Unit/Authentication/Mfa/Provider/RecoveryCodesTest.php +++ b/typo3/sysext/core/Tests/Unit/Authentication/Mfa/Provider/RecoveryCodesTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Authentication\Mfa\Provider; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Authentication\Mfa\Provider\RecoveryCodes; use TYPO3\CMS\Core\Crypto\PasswordHashing\BcryptPasswordHash; use TYPO3\CMS\Core\Tests\Unit\Authentication\Mfa\Provider\Fixtures\Crypto\PasswordHashing\NoopPasswordHash; @@ -42,9 +44,7 @@ final class RecoveryCodesTest extends UnitTestCase parent::tearDown(); } - /** - * @test - */ + #[Test] public function generateRecoveryCodesTest(): void { $GLOBALS['TYPO3_CONF_VARS']['BE']['passwordHashing'] = [ @@ -66,9 +66,7 @@ final class RecoveryCodesTest extends UnitTestCase } } - /** - * @test - */ + #[Test] public function generatePlainRecoveryCodesThrowsExceptionOnInvalidLengthTest(): void { $this->expectException(\InvalidArgumentException::class); @@ -76,10 +74,8 @@ final class RecoveryCodesTest extends UnitTestCase $this->subject->generatePlainRecoveryCodes(6); } - /** - * @test - * @dataProvider generatePlainRecoveryCodesTestDataProvider - */ + #[DataProvider('generatePlainRecoveryCodesTestDataProvider')] + #[Test] public function generatePlainRecoveryCodesTest(int $length, int $quantity): void { $recoveryCodes = $this->subject->generatePlainRecoveryCodes($length, $quantity); @@ -99,9 +95,7 @@ final class RecoveryCodesTest extends UnitTestCase yield '10 codes with 10 chars' => [10, 10]; } - /** - * @test - */ + #[Test] public function generatedHashedRecoveryCodesAreHashedWithDefaultHashInstanceTest(): void { $GLOBALS['TYPO3_CONF_VARS']['BE']['passwordHashing'] = [ @@ -118,9 +112,7 @@ final class RecoveryCodesTest extends UnitTestCase self::assertCount(2, $codes); } - /** - * @test - */ + #[Test] public function verifyRecoveryCodeTest(): void { $GLOBALS['TYPO3_CONF_VARS']['BE']['passwordHashing'] = [ @@ -146,9 +138,7 @@ final class RecoveryCodesTest extends UnitTestCase self::assertFalse($this->subject->verifyRecoveryCode($recoveryCode, $codes)); } - /** - * @test - */ + #[Test] public function verifyRecoveryCodeUsesTheCorrectHashInstanceTest(): void { $code = '18742989'; diff --git a/typo3/sysext/core/Tests/Unit/Authentication/Mfa/Provider/TotpTest.php b/typo3/sysext/core/Tests/Unit/Authentication/Mfa/Provider/TotpTest.php index 2ba45b6c26249a95af29445febaf5d2370408d24..97c0598485c1f8440dae63b5ee268d11265ac696 100644 --- a/typo3/sysext/core/Tests/Unit/Authentication/Mfa/Provider/TotpTest.php +++ b/typo3/sysext/core/Tests/Unit/Authentication/Mfa/Provider/TotpTest.php @@ -18,6 +18,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Authentication\Mfa\Provider; use Base32\Base32; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Authentication\Mfa\Provider\Totp; use TYPO3\CMS\Core\Context\Context; use TYPO3\CMS\Core\Context\DateTimeAspect; @@ -37,9 +39,7 @@ final class TotpTest extends UnitTestCase $this->secret = Base32::encode('TYPO3IsAwesome!'); // KRMVATZTJFZUC53FONXW2ZJB } - /** - * @test - */ + #[Test] public function throwsExceptionOnDisallowedAlogTest(): void { $this->expectException(\InvalidArgumentException::class); @@ -47,9 +47,7 @@ final class TotpTest extends UnitTestCase GeneralUtility::makeInstance(Totp::class, 'some-secret', 'md5'); } - /** - * @test - */ + #[Test] public function throwsExceptionOnInvalidTotpLengthTest(): void { $this->expectException(\InvalidArgumentException::class); @@ -57,10 +55,8 @@ final class TotpTest extends UnitTestCase GeneralUtility::makeInstance(Totp::class, 'some-secret', 'sha1', 4); } - /** - * @test - * @dataProvider totpDataProvider - */ + #[DataProvider('totpDataProvider')] + #[Test] public function generateTotpTest(string $expectedTotp, array $arguments): void { $counter = (int)floor(($this->timestamp - 0) / 30); // see Totp::getTimeCounter() @@ -71,10 +67,8 @@ final class TotpTest extends UnitTestCase ); } - /** - * @test - * @dataProvider totpDataProvider - */ + #[DataProvider('totpDataProvider')] + #[Test] public function verifyTotpTest(string $totp, array $arguments): void { GeneralUtility::makeInstance(Context::class) @@ -94,9 +88,7 @@ final class TotpTest extends UnitTestCase yield '8 digit code' => ['48337475', ['sha1', 8]]; } - /** - * @test - */ + #[Test] public function verifyTotpWithGracePeriodTest(): void { GeneralUtility::makeInstance(Context::class) @@ -123,10 +115,8 @@ final class TotpTest extends UnitTestCase self::assertFalse($totpInstance->verifyTotp($totpPast, 3)); } - /** - * @test - * @dataProvider getTotpAuthUrlTestDataProvider - */ + #[DataProvider('getTotpAuthUrlTestDataProvider')] + #[Test] public function getTotpAuthUrlTest(array $constructorArguments, array $methodArguments, string $expected): void { $totp = GeneralUtility::makeInstance(Totp::class, ...$constructorArguments); @@ -168,9 +158,7 @@ final class TotpTest extends UnitTestCase ]; } - /** - * @test - */ + #[Test] public function generateEncodedSecretTest(): void { // Check 100 times WITHOUT additional auth factors diff --git a/typo3/sysext/core/Tests/Unit/Cache/Backend/AbstractBackendTest.php b/typo3/sysext/core/Tests/Unit/Cache/Backend/AbstractBackendTest.php index 784d6010b28089bc19d9037cf345d2c02eb8092c..8db959b9964e03ecc8e4afb37251de089b958a26 100644 --- a/typo3/sysext/core/Tests/Unit/Cache/Backend/AbstractBackendTest.php +++ b/typo3/sysext/core/Tests/Unit/Cache/Backend/AbstractBackendTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Cache\Backend; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Tests\Unit\Cache\Backend\Fixtures\ConcreteBackendFixture; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -24,9 +25,7 @@ final class AbstractBackendTest extends UnitTestCase { protected bool $resetSingletonInstances = true; - /** - * @test - */ + #[Test] public function theConstructorCallsSetterMethodsForAllSpecifiedOptions(): void { // The fixture class implements methods setSomeOption() and getSomeOption() diff --git a/typo3/sysext/core/Tests/Unit/Cache/Backend/TransientMemoryBackendTest.php b/typo3/sysext/core/Tests/Unit/Cache/Backend/TransientMemoryBackendTest.php index cf598d914a51eefb67e31f6bd7ac8f592cc5e2d8..81d02162c97ed8e4119809dc032f9a1e4f4e0f65 100644 --- a/typo3/sysext/core/Tests/Unit/Cache/Backend/TransientMemoryBackendTest.php +++ b/typo3/sysext/core/Tests/Unit/Cache/Backend/TransientMemoryBackendTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Cache\Backend; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Cache\Backend\TransientMemoryBackend; use TYPO3\CMS\Core\Cache\Exception; use TYPO3\CMS\Core\Cache\Frontend\FrontendInterface; @@ -29,9 +30,7 @@ final class TransientMemoryBackendTest extends UnitTestCase { protected bool $resetSingletonInstances = true; - /** - * @test - */ + #[Test] public function setThrowsExceptionIfNoFrontEndHasBeenSet(): void { $this->expectException(Exception::class); @@ -43,9 +42,7 @@ final class TransientMemoryBackendTest extends UnitTestCase $backend->set($identifier, $data); } - /** - * @test - */ + #[Test] public function itIsPossibleToSetAndCheckExistenceInCache(): void { $cache = $this->createMock(FrontendInterface::class); @@ -58,9 +55,7 @@ final class TransientMemoryBackendTest extends UnitTestCase self::assertTrue($inCache); } - /** - * @test - */ + #[Test] public function itIsPossibleToSetAndGetEntry(): void { $cache = $this->createMock(FrontendInterface::class); @@ -73,9 +68,7 @@ final class TransientMemoryBackendTest extends UnitTestCase self::assertEquals($data, $fetchedData); } - /** - * @test - */ + #[Test] public function itIsPossibleToRemoveEntryFromCache(): void { $cache = $this->createMock(FrontendInterface::class); @@ -89,9 +82,7 @@ final class TransientMemoryBackendTest extends UnitTestCase self::assertFalse($inCache); } - /** - * @test - */ + #[Test] public function itIsPossibleToOverwriteAnEntryInTheCache(): void { $cache = $this->createMock(FrontendInterface::class); @@ -106,9 +97,7 @@ final class TransientMemoryBackendTest extends UnitTestCase self::assertEquals($otherData, $fetchedData); } - /** - * @test - */ + #[Test] public function findIdentifiersByTagFindsCacheEntriesWithSpecifiedTag(): void { $cache = $this->createMock(FrontendInterface::class); @@ -123,9 +112,7 @@ final class TransientMemoryBackendTest extends UnitTestCase self::assertEquals($entryIdentifier, $retrieved[0]); } - /** - * @test - */ + #[Test] public function hasReturnsFalseIfTheEntryDoesntExist(): void { $cache = $this->createMock(FrontendInterface::class); @@ -136,9 +123,7 @@ final class TransientMemoryBackendTest extends UnitTestCase self::assertFalse($inCache); } - /** - * @test - */ + #[Test] public function removeReturnsFalseIfTheEntryDoesntExist(): void { $cache = $this->createMock(FrontendInterface::class); @@ -149,9 +134,7 @@ final class TransientMemoryBackendTest extends UnitTestCase self::assertFalse($inCache); } - /** - * @test - */ + #[Test] public function flushByTagRemovesCacheEntriesWithSpecifiedTag(): void { $cache = $this->createMock(FrontendInterface::class); @@ -167,9 +150,7 @@ final class TransientMemoryBackendTest extends UnitTestCase self::assertTrue($backend->has('TransientMemoryBackendTest3'), 'TransientMemoryBackendTest3'); } - /** - * @test - */ + #[Test] public function flushByTagsRemovesCacheEntriesWithSpecifiedTags(): void { $cache = $this->createMock(FrontendInterface::class); @@ -185,9 +166,7 @@ final class TransientMemoryBackendTest extends UnitTestCase self::assertTrue($backend->has('TransientMemoryBackendTest3'), 'TransientMemoryBackendTest3'); } - /** - * @test - */ + #[Test] public function flushRemovesAllCacheEntries(): void { $cache = $this->createMock(FrontendInterface::class); diff --git a/typo3/sysext/core/Tests/Unit/Cache/Backend/Typo3DatabaseBackendTest.php b/typo3/sysext/core/Tests/Unit/Cache/Backend/Typo3DatabaseBackendTest.php index a7c0799d997ae2b42a7c50cbe8b49f370fc5e9e0..fe21f51a0a0b725c0fb207fa0af1346df343ee2f 100644 --- a/typo3/sysext/core/Tests/Unit/Cache/Backend/Typo3DatabaseBackendTest.php +++ b/typo3/sysext/core/Tests/Unit/Cache/Backend/Typo3DatabaseBackendTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Cache\Backend; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Cache\Backend\Typo3DatabaseBackend; use TYPO3\CMS\Core\Cache\Exception; use TYPO3\CMS\Core\Cache\Exception\InvalidDataException; @@ -30,9 +31,7 @@ final class Typo3DatabaseBackendTest extends UnitTestCase { protected bool $resetSingletonInstances = true; - /** - * @test - */ + #[Test] public function setCacheCalculatesCacheTableName(): void { $frontend = new NullFrontend('test'); @@ -42,9 +41,7 @@ final class Typo3DatabaseBackendTest extends UnitTestCase self::assertEquals('cache_test', $subject->getCacheTable()); } - /** - * @test - */ + #[Test] public function setCacheCalculatesTagsTableName(): void { $frontend = new NullFrontend('test'); @@ -54,9 +51,7 @@ final class Typo3DatabaseBackendTest extends UnitTestCase self::assertEquals('cache_test_tags', $subject->getTagsTable()); } - /** - * @test - */ + #[Test] public function setThrowsExceptionIfFrontendWasNotSet(): void { $subject = new Typo3DatabaseBackend('Testing'); @@ -65,9 +60,7 @@ final class Typo3DatabaseBackendTest extends UnitTestCase $subject->set('identifier', 'data'); } - /** - * @test - */ + #[Test] public function setThrowsExceptionIfDataIsNotAString(): void { $frontend = new NullFrontend('test'); @@ -80,9 +73,7 @@ final class Typo3DatabaseBackendTest extends UnitTestCase $subject->set('identifier', ['iAmAnArray']); } - /** - * @test - */ + #[Test] public function getThrowsExceptionIfFrontendWasNotSet(): void { $subject = new Typo3DatabaseBackend('Testing'); @@ -91,9 +82,7 @@ final class Typo3DatabaseBackendTest extends UnitTestCase $subject->get('identifier'); } - /** - * @test - */ + #[Test] public function hasThrowsExceptionIfFrontendWasNotSet(): void { $subject = new Typo3DatabaseBackend('Testing'); @@ -102,9 +91,7 @@ final class Typo3DatabaseBackendTest extends UnitTestCase $subject->has('identifier'); } - /** - * @test - */ + #[Test] public function removeThrowsExceptionIfFrontendWasNotSet(): void { $subject = new Typo3DatabaseBackend('Testing'); @@ -113,9 +100,7 @@ final class Typo3DatabaseBackendTest extends UnitTestCase $subject->remove('identifier'); } - /** - * @test - */ + #[Test] public function collectGarbageThrowsExceptionIfFrontendWasNotSet(): void { $subject = new Typo3DatabaseBackend('Testing'); @@ -124,9 +109,7 @@ final class Typo3DatabaseBackendTest extends UnitTestCase $subject->collectGarbage(); } - /** - * @test - */ + #[Test] public function findIdentifiersByTagThrowsExceptionIfFrontendWasNotSet(): void { $subject = new Typo3DatabaseBackend('Testing'); @@ -135,9 +118,7 @@ final class Typo3DatabaseBackendTest extends UnitTestCase $subject->findIdentifiersByTag('identifier'); } - /** - * @test - */ + #[Test] public function flushThrowsExceptionIfFrontendWasNotSet(): void { $subject = new Typo3DatabaseBackend('Testing'); @@ -146,9 +127,7 @@ final class Typo3DatabaseBackendTest extends UnitTestCase $subject->flush(); } - /** - * @test - */ + #[Test] public function flushRemovesAllCacheEntries(): void { $frontend = new NullFrontend('test'); @@ -228,9 +207,7 @@ final class Typo3DatabaseBackendTest extends UnitTestCase $subject->flushByTags(['Tag1', 'Tag2']); } - /** - * @test - */ + #[Test] public function flushByTagThrowsExceptionIfFrontendWasNotSet(): void { $subject = new Typo3DatabaseBackend('Testing'); @@ -239,9 +216,7 @@ final class Typo3DatabaseBackendTest extends UnitTestCase $subject->flushByTag('Tag'); } - /** - * @test - */ + #[Test] public function flushByTagsThrowsExceptionIfFrontendWasNotSet(): void { $subject = new Typo3DatabaseBackend('Testing'); diff --git a/typo3/sysext/core/Tests/Unit/Cache/CacheManagerTest.php b/typo3/sysext/core/Tests/Unit/Cache/CacheManagerTest.php index 9c7d2e242ff79c40aa5af649f5454c2eee4199b8..87b8a67d14348f82979d17cb943ec4706885d0d8 100644 --- a/typo3/sysext/core/Tests/Unit/Cache/CacheManagerTest.php +++ b/typo3/sysext/core/Tests/Unit/Cache/CacheManagerTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Cache; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Cache\Backend\Typo3DatabaseBackend; use TYPO3\CMS\Core\Cache\CacheManager; use TYPO3\CMS\Core\Cache\Exception\DuplicateIdentifierException; @@ -40,9 +41,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class CacheManagerTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function managerThrowsExceptionOnCacheRegistrationWithAlreadyExistingIdentifier(): void { $this->expectException(DuplicateIdentifierException::class); @@ -63,9 +62,7 @@ final class CacheManagerTest extends UnitTestCase $manager->registerCache($cache2); } - /** - * @test - */ + #[Test] public function managerReturnsThePreviouslyRegisteredCache(): void { $manager = new CacheManager(); @@ -84,9 +81,7 @@ final class CacheManagerTest extends UnitTestCase self::assertSame($cache2, $manager->getCache('cache2'), 'The cache returned by getCache() was not the same I registered.'); } - /** - * @test - */ + #[Test] public function getCacheThrowsExceptionForNonExistingIdentifier(): void { $this->expectException(NoSuchCacheException::class); @@ -103,9 +98,7 @@ final class CacheManagerTest extends UnitTestCase $manager->getCache('doesnotexist'); } - /** - * @test - */ + #[Test] public function hasCacheReturnsCorrectResult(): void { $manager = new CacheManager(); @@ -119,9 +112,7 @@ final class CacheManagerTest extends UnitTestCase self::assertFalse($manager->hasCache('cache2'), 'hasCache() did not return FALSE.'); } - /** - * @test - */ + #[Test] public function flushCachesByTagCallsTheFlushByTagMethodOfAllRegisteredCaches(): void { $manager = new CacheManager(); @@ -141,9 +132,7 @@ final class CacheManagerTest extends UnitTestCase $manager->flushCachesByTag('theTag'); } - /** - * @test - */ + #[Test] public function flushCachesByTagsCallsTheFlushByTagsMethodOfAllRegisteredCaches(): void { $manager = new CacheManager(); @@ -163,9 +152,7 @@ final class CacheManagerTest extends UnitTestCase $manager->flushCachesByTags(['theTag']); } - /** - * @test - */ + #[Test] public function flushCachesCallsTheFlushMethodOfAllRegisteredCaches(): void { $manager = new CacheManager(); @@ -185,9 +172,7 @@ final class CacheManagerTest extends UnitTestCase $manager->flushCaches(); } - /** - * @test - */ + #[Test] public function flushCachesInGroupThrowsExceptionForNonExistingGroup(): void { $this->expectException(NoSuchCacheGroupException::class); @@ -197,9 +182,7 @@ final class CacheManagerTest extends UnitTestCase $manager->flushCachesInGroup('nonExistingGroup'); } - /** - * @test - */ + #[Test] public function flushCachesInGroupByTagThrowsExceptionForNonExistingGroup(): void { $this->expectException(NoSuchCacheGroupException::class); @@ -209,9 +192,7 @@ final class CacheManagerTest extends UnitTestCase $manager->flushCachesInGroup('nonExistingGroup'); } - /** - * @test - */ + #[Test] public function getCacheThrowsExceptionIfConfiguredFrontendDoesNotImplementFrontendInterface(): void { $manager = new CacheManager(); @@ -229,9 +210,7 @@ final class CacheManagerTest extends UnitTestCase $manager->getCache($cacheIdentifier); } - /** - * @test - */ + #[Test] public function getCacheThrowsExceptionIfConfiguredBackendDoesNotImplementBackendInterface(): void { $manager = new CacheManager(); @@ -249,9 +228,7 @@ final class CacheManagerTest extends UnitTestCase $manager->getCache($cacheIdentifier); } - /** - * @test - */ + #[Test] public function getCacheCallsInitializeObjectOnFrontendInstance(): void { $manager = new CacheManager(); @@ -270,9 +247,7 @@ final class CacheManagerTest extends UnitTestCase $manager->getCache($cacheIdentifier); } - /** - * @test - */ + #[Test] public function getCacheCallsInitializeObjectOnBackendInstance(): void { $manager = new CacheManager(); @@ -291,9 +266,7 @@ final class CacheManagerTest extends UnitTestCase $manager->getCache($cacheIdentifier); } - /** - * @test - */ + #[Test] public function getCacheCreatesBackendWithGivenConfiguration(): void { $manager = new CacheManager(); @@ -314,9 +287,7 @@ final class CacheManagerTest extends UnitTestCase $manager->getCache($cacheIdentifier); } - /** - * @test - */ + #[Test] public function getCacheCreatesCacheInstanceWithFallbackToDefaultFrontend(): void { $manager = $this->getAccessibleMock(CacheManager::class, null, [], '', false); @@ -339,9 +310,7 @@ final class CacheManagerTest extends UnitTestCase $manager->getCache($cacheIdentifier); } - /** - * @test - */ + #[Test] public function getCacheCreatesCacheInstanceWithFallbackToDefaultBackend(): void { $manager = $this->getAccessibleMock(CacheManager::class, null, [], '', false); @@ -364,9 +333,7 @@ final class CacheManagerTest extends UnitTestCase $manager->getCache($cacheIdentifier); } - /** - * @test - */ + #[Test] public function getCacheReturnsInstanceOfTheSpecifiedCacheFrontend(): void { $manager = new CacheManager(); @@ -382,9 +349,7 @@ final class CacheManagerTest extends UnitTestCase self::assertInstanceOf(FrontendFixture::class, $manager->getCache($cacheIdentifier)); } - /** - * @test - */ + #[Test] public function getCacheGivesIdentifierToCacheFrontend(): void { $manager = new CacheManager(); @@ -402,9 +367,7 @@ final class CacheManagerTest extends UnitTestCase $manager->getCache($cacheIdentifier); } - /** - * @test - */ + #[Test] public function getCacheGivesBackendInstanceToCacheFrontend(): void { $manager = new CacheManager(); @@ -422,9 +385,7 @@ final class CacheManagerTest extends UnitTestCase $manager->getCache($cacheIdentifier); } - /** - * @test - */ + #[Test] public function flushCachesInGroupByTagsWithEmptyTagsArrayDoesNotFlushCaches(): void { $manager = $this->getAccessibleMock(CacheManager::class, null, [], '', false); @@ -457,9 +418,7 @@ final class CacheManagerTest extends UnitTestCase $manager->flushCachesInGroupByTags('group2', []); } - /** - * @test - */ + #[Test] public function flushCachesInGroupByTagsDeletesByTag(): void { $manager = $this->getAccessibleMock(CacheManager::class, null, [], '', false); @@ -493,9 +452,7 @@ final class CacheManagerTest extends UnitTestCase $manager->flushCachesInGroupByTags('group2', $tags); } - /** - * @test - */ + #[Test] public function setCacheConfigurationsThrowsExceptionIfConfiguredCacheDoesNotHaveAnIdentifier(): void { $this->expectException(\InvalidArgumentException::class); diff --git a/typo3/sysext/core/Tests/Unit/Cache/Frontend/AbstractFrontendTest.php b/typo3/sysext/core/Tests/Unit/Cache/Frontend/AbstractFrontendTest.php index acfb8439b2b215c9e30ca198e2638b171cd0f529..0338d06de5e03a4e9b13f63264585ef5c13ed48a 100644 --- a/typo3/sysext/core/Tests/Unit/Cache/Frontend/AbstractFrontendTest.php +++ b/typo3/sysext/core/Tests/Unit/Cache/Frontend/AbstractFrontendTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Cache\Frontend; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Cache\Backend\AbstractBackend; use TYPO3\CMS\Core\Cache\Backend\TaggableBackendInterface; use TYPO3\CMS\Core\Cache\Frontend\VariableFrontend; @@ -27,9 +28,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; */ final class AbstractFrontendTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function theConstructorAcceptsValidIdentifiers(): void { $mockBackend = $this->getMockBuilder(AbstractBackend::class) @@ -45,9 +44,7 @@ final class AbstractFrontendTest extends UnitTestCase } } - /** - * @test - */ + #[Test] public function theConstructorRejectsInvalidIdentifiers(): void { $mockBackend = $this->getMockBuilder(AbstractBackend::class) @@ -67,9 +64,7 @@ final class AbstractFrontendTest extends UnitTestCase } } - /** - * @test - */ + #[Test] public function flushCallsBackend(): void { $identifier = 'someCacheIdentifier'; @@ -86,9 +81,7 @@ final class AbstractFrontendTest extends UnitTestCase $cache->flush(); } - /** - * @test - */ + #[Test] public function flushByTagRejectsInvalidTags(): void { $this->expectException(\InvalidArgumentException::class); @@ -104,9 +97,7 @@ final class AbstractFrontendTest extends UnitTestCase $cache->flushByTag('SomeInvalid\\Tag'); } - /** - * @test - */ + #[Test] public function flushByTagCallsBackendIfItIsATaggableBackend(): void { $tag = 'sometag'; @@ -123,9 +114,7 @@ final class AbstractFrontendTest extends UnitTestCase $cache->flushByTag($tag); } - /** - * @test - */ + #[Test] public function flushByTagsCallsBackendIfItIsATaggableBackend(): void { $tag = 'sometag'; @@ -142,9 +131,7 @@ final class AbstractFrontendTest extends UnitTestCase $cache->flushByTags([$tag]); } - /** - * @test - */ + #[Test] public function collectGarbageCallsBackend(): void { $identifier = 'someCacheIdentifier'; @@ -161,9 +148,7 @@ final class AbstractFrontendTest extends UnitTestCase $cache->collectGarbage(); } - /** - * @test - */ + #[Test] public function invalidEntryIdentifiersAreRecognizedAsInvalid(): void { $identifier = 'someCacheIdentifier'; @@ -177,9 +162,7 @@ final class AbstractFrontendTest extends UnitTestCase } } - /** - * @test - */ + #[Test] public function validEntryIdentifiersAreRecognizedAsValid(): void { $identifier = 'someCacheIdentifier'; @@ -193,9 +176,7 @@ final class AbstractFrontendTest extends UnitTestCase } } - /** - * @test - */ + #[Test] public function invalidTagsAreRecognizedAsInvalid(): void { $identifier = 'someCacheIdentifier'; @@ -209,9 +190,7 @@ final class AbstractFrontendTest extends UnitTestCase } } - /** - * @test - */ + #[Test] public function validTagsAreRecognizedAsValid(): void { $identifier = 'someCacheIdentifier'; diff --git a/typo3/sysext/core/Tests/Unit/Cache/Frontend/PhpFrontendTest.php b/typo3/sysext/core/Tests/Unit/Cache/Frontend/PhpFrontendTest.php index ec220a4ddc7e2d61e0dfde3249bda0b9c1561289..56364d94a6c7404be943eaccc686bbcd394ec08e 100644 --- a/typo3/sysext/core/Tests/Unit/Cache/Frontend/PhpFrontendTest.php +++ b/typo3/sysext/core/Tests/Unit/Cache/Frontend/PhpFrontendTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Cache\Frontend; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Cache\Backend\PhpCapableBackendInterface; use TYPO3\CMS\Core\Cache\Backend\SimpleFileBackend; use TYPO3\CMS\Core\Cache\Exception\InvalidDataException; @@ -29,9 +30,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; */ final class PhpFrontendTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function setChecksIfTheIdentifierIsValid(): void { $this->expectException(\InvalidArgumentException::class); @@ -45,9 +44,7 @@ final class PhpFrontendTest extends UnitTestCase $cache->set('foo', 'bar'); } - /** - * @test - */ + #[Test] public function setPassesPhpSourceCodeTagsAndLifetimeToBackend(): void { $originalSourceCode = 'return "hello world!";'; @@ -58,9 +55,7 @@ final class PhpFrontendTest extends UnitTestCase $cache->set('Foo-Bar', $originalSourceCode, ['tags'], 1234); } - /** - * @test - */ + #[Test] public function setThrowsInvalidDataExceptionOnNonStringValues(): void { $this->expectException(InvalidDataException::class); @@ -73,9 +68,7 @@ final class PhpFrontendTest extends UnitTestCase $cache->set('Foo-Bar', []); } - /** - * @test - */ + #[Test] public function requireOnceCallsTheBackendsRequireOnceMethod(): void { $mockBackend = $this->createMock(PhpCapableBackendInterface::class); @@ -85,9 +78,7 @@ final class PhpFrontendTest extends UnitTestCase self::assertSame('hello world!', $result); } - /** - * @test - */ + #[Test] public function requireCallsTheBackendsRequireMethod(): void { $mockBackend = $this->createMock(SimpleFileBackend::class); diff --git a/typo3/sysext/core/Tests/Unit/Cache/Frontend/VariableFrontendTest.php b/typo3/sysext/core/Tests/Unit/Cache/Frontend/VariableFrontendTest.php index 05cf05b02ef74765a51fe3383fef2142568a0bb7..3e3e59d8484296e74f68255427075526a2c03138 100644 --- a/typo3/sysext/core/Tests/Unit/Cache/Frontend/VariableFrontendTest.php +++ b/typo3/sysext/core/Tests/Unit/Cache/Frontend/VariableFrontendTest.php @@ -17,15 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Cache\Frontend; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Cache\Backend\AbstractBackend; use TYPO3\CMS\Core\Cache\Frontend\VariableFrontend; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class VariableFrontendTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function setChecksIfTheIdentifierIsValid(): void { $this->expectException(\InvalidArgumentException::class); @@ -39,9 +38,7 @@ final class VariableFrontendTest extends UnitTestCase $cache->set('foo', 'bar'); } - /** - * @test - */ + #[Test] public function setPassesSerializedStringToBackend(): void { $theString = 'Just some value'; @@ -56,9 +53,7 @@ final class VariableFrontendTest extends UnitTestCase $cache->set('VariableCacheTest', $theString); } - /** - * @test - */ + #[Test] public function setPassesSerializedArrayToBackend(): void { $theArray = ['Just some value', 'and another one.']; @@ -73,9 +68,7 @@ final class VariableFrontendTest extends UnitTestCase $cache->set('VariableCacheTest', $theArray); } - /** - * @test - */ + #[Test] public function setPassesLifetimeToBackend(): void { $theString = 'Just some value'; @@ -91,9 +84,7 @@ final class VariableFrontendTest extends UnitTestCase $cache->set('VariableCacheTest', $theString, [], $theLifetime); } - /** - * @test - */ + #[Test] public function getFetchesStringValueFromBackend(): void { $backend = $this->getMockBuilder(AbstractBackend::class) @@ -107,9 +98,7 @@ final class VariableFrontendTest extends UnitTestCase self::assertEquals('Just some value', $cache->get('VariableCacheTest'), 'The returned value was not the expected string.'); } - /** - * @test - */ + #[Test] public function getFetchesArrayValueFromBackend(): void { $theArray = ['Just some value', 'and another one.']; @@ -124,9 +113,7 @@ final class VariableFrontendTest extends UnitTestCase self::assertEquals($theArray, $cache->get('VariableCacheTest'), 'The returned value was not the expected unserialized array.'); } - /** - * @test - */ + #[Test] public function getFetchesFalseBooleanValueFromBackend(): void { $backend = $this->getMockBuilder(AbstractBackend::class) @@ -140,9 +127,7 @@ final class VariableFrontendTest extends UnitTestCase self::assertFalse($cache->get('VariableCacheTest'), 'The returned value was not the FALSE.'); } - /** - * @test - */ + #[Test] public function hasReturnsResultFromBackend(): void { $backend = $this->getMockBuilder(AbstractBackend::class) @@ -156,9 +141,7 @@ final class VariableFrontendTest extends UnitTestCase self::assertTrue($cache->has('VariableCacheTest'), 'has() did not return TRUE.'); } - /** - * @test - */ + #[Test] public function removeCallsBackend(): void { $cacheIdentifier = 'someCacheIdentifier'; diff --git a/typo3/sysext/core/Tests/Unit/Category/Collection/CategoryCollectionTest.php b/typo3/sysext/core/Tests/Unit/Category/Collection/CategoryCollectionTest.php index 079e88c7296257fbff50356a368f0ac7410e8760..8f600f010e35f63393ebaf9fc256b78a67b85a9d 100644 --- a/typo3/sysext/core/Tests/Unit/Category/Collection/CategoryCollectionTest.php +++ b/typo3/sysext/core/Tests/Unit/Category/Collection/CategoryCollectionTest.php @@ -17,14 +17,13 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Category\Collection; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Category\Collection\CategoryCollection; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class CategoryCollectionTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function missingTableNameArgumentForObjectCategoryCollection(): void { $this->expectException(\RuntimeException::class); diff --git a/typo3/sysext/core/Tests/Unit/Charset/CharsetConverterTest.php b/typo3/sysext/core/Tests/Unit/Charset/CharsetConverterTest.php index ae8a795092b32eb38ab6002b34b695ccf19ab642..8817f789b10bec98ab502ac90c754cb453d2b207 100644 --- a/typo3/sysext/core/Tests/Unit/Charset/CharsetConverterTest.php +++ b/typo3/sysext/core/Tests/Unit/Charset/CharsetConverterTest.php @@ -17,14 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Charset; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Charset\CharsetConverter; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class CharsetConverterTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function utf8DecodeACharacterToAscii(): void { $charsetConverter = new CharsetConverter(); @@ -42,9 +42,7 @@ final class CharsetConverterTest extends UnitTestCase self::assertSame('ASCII', mb_detect_encoding($targetString, ['ASCII', 'UTF-8'])); } - /** - * @test - */ + #[Test] public function utf8DecodeACharacterToIso885915(): void { $charsetConverter = new CharsetConverter(); @@ -64,9 +62,7 @@ final class CharsetConverterTest extends UnitTestCase self::assertNotSame($string, $targetString); } - /** - * @test - */ + #[Test] public function utf8DecodeEuroSignCharacterToIso885915(): void { $charsetConverter = new CharsetConverter(); @@ -86,9 +82,7 @@ final class CharsetConverterTest extends UnitTestCase self::assertNotSame($string, $targetString); } - /** - * @test - */ + #[Test] public function utf8DecodeAKanjiToBig5(): void { $charsetConverter = new CharsetConverter(); @@ -108,9 +102,7 @@ final class CharsetConverterTest extends UnitTestCase self::assertNotSame($string, $targetString); } - /** - * @test - */ + #[Test] public function convertingAUtf8EmojiSignToNonExistingAsciiRepresentationResultsInAQuestionMarkSign(): void { $charsetConverter = new CharsetConverter(); @@ -125,9 +117,7 @@ final class CharsetConverterTest extends UnitTestCase self::assertSame('😂', $charsetConverter->utf8_decode($string, 'ascii', true)); } - /** - * @test - */ + #[Test] public function utf8DecodeToUtf8ReturnsTheSameSign(): void { self::assertSame( @@ -136,9 +126,7 @@ final class CharsetConverterTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function utf8EncodeIso885915ACharacter(): void { $string = "\x41"; // A @@ -151,9 +139,7 @@ final class CharsetConverterTest extends UnitTestCase self::assertSame($string, $targetString); } - /** - * @test - */ + #[Test] public function utf8EncodeIso885915EuroSign(): void { $string = "\xA4"; // € sign encoded as iso-8859-15 @@ -165,9 +151,7 @@ final class CharsetConverterTest extends UnitTestCase self::assertNotSame($string, $targetString); } - /** - * @test - */ + #[Test] public function utf8EncodeABig5EncodedSign(): void { $string = "\xA2\xC5"; // 〣 sign encoded as big5 @@ -180,9 +164,7 @@ final class CharsetConverterTest extends UnitTestCase self::assertNotSame($string, $targetString); } - /** - * @test - */ + #[Test] public function utf8EncodeAlreadyUtf8EncodedSign(): void { self::assertSame( @@ -191,9 +173,7 @@ final class CharsetConverterTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function utf8ToNumberArray(): void { $string = "\xF0\x9F\x98\x82 – a joyful emoji"; @@ -241,10 +221,8 @@ final class CharsetConverterTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider validInputForSpecCharsToAscii - */ + #[DataProvider('validInputForSpecCharsToAscii')] + #[Test] public function specCharsToAsciiConvertsUmlautsToAscii( string $input, string $expectedString @@ -277,10 +255,10 @@ final class CharsetConverterTest extends UnitTestCase } /** - * @test - * @dataProvider invalidInputForSpecCharsToAscii * @param mixed $input */ + #[DataProvider('invalidInputForSpecCharsToAscii')] + #[Test] public function specCharsToAsciiConvertsInvalidInputToEmptyString($input): void { $subject = new CharsetConverter(); diff --git a/typo3/sysext/core/Tests/Unit/Command/Descriptor/TextDescriptorTest.php b/typo3/sysext/core/Tests/Unit/Command/Descriptor/TextDescriptorTest.php index a3e32b8707260db589f3a5b3a239149f49276d45..3a41cb9babe477d31d01adda0e7ba4e6459dfbd8 100644 --- a/typo3/sysext/core/Tests/Unit/Command/Descriptor/TextDescriptorTest.php +++ b/typo3/sysext/core/Tests/Unit/Command/Descriptor/TextDescriptorTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Command\Descriptor; +use PHPUnit\Framework\Attributes\Test; use Symfony\Component\Console\Application; use Symfony\Component\Console\Output\OutputInterface; use TYPO3\CMS\Core\Command\Descriptor\TextDescriptor; @@ -25,9 +26,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class TextDescriptorTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function ensureEmptyStringIsSetForDescriptionIfNoDescriptionForCommandIsGiven(): void { $commandRegistry = $this->createMock(CommandRegistry::class); diff --git a/typo3/sysext/core/Tests/Unit/Command/SendEmailCommandTest.php b/typo3/sysext/core/Tests/Unit/Command/SendEmailCommandTest.php index 37de735da4f138e9abefefaf0cfdedf5dc38700c..b7939eeec5da5a04a424ee844c9f225cb2aa8c43 100644 --- a/typo3/sysext/core/Tests/Unit/Command/SendEmailCommandTest.php +++ b/typo3/sysext/core/Tests/Unit/Command/SendEmailCommandTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Command; +use PHPUnit\Framework\Attributes\Test; use Symfony\Component\Console\Tester\CommandTester; use Symfony\Component\Mailer\Transport\TransportInterface; use TYPO3\CMS\Core\Command\SendEmailCommand; @@ -26,9 +27,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class SendEmailCommandTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function executeWillFlushTheQueue(): void { $delayedTransportMock = $this->createMock(DelayedTransportInterface::class); diff --git a/typo3/sysext/core/Tests/Unit/Configuration/CKEditor5MigratorTest.php b/typo3/sysext/core/Tests/Unit/Configuration/CKEditor5MigratorTest.php index 105b39c07551443eadb7abb85baa0177012dbe8e..233f161debad8534c3e35e03445d6b4e595398f5 100644 --- a/typo3/sysext/core/Tests/Unit/Configuration/CKEditor5MigratorTest.php +++ b/typo3/sysext/core/Tests/Unit/Configuration/CKEditor5MigratorTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Configuration; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Configuration\CKEditor5Migrator; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -1978,10 +1980,8 @@ final class CKEditor5MigratorTest extends UnitTestCase ]; } - /** - * @dataProvider migrationDataProvider - * @test - */ + #[DataProvider('migrationDataProvider')] + #[Test] public function migrationTests(array $configuration, array $expectation): void { $finalConfiguration = GeneralUtility::makeInstance( diff --git a/typo3/sysext/core/Tests/Unit/Configuration/ConfigurationManagerTest.php b/typo3/sysext/core/Tests/Unit/Configuration/ConfigurationManagerTest.php index 35d1a854e2126e899dcb8c5cc8d41c68d62393b7..1a5f4b724e806290c1ee8f37c04234aa41c39cfc 100644 --- a/typo3/sysext/core/Tests/Unit/Configuration/ConfigurationManagerTest.php +++ b/typo3/sysext/core/Tests/Unit/Configuration/ConfigurationManagerTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Configuration; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Core\Configuration\ConfigurationManager; use TYPO3\CMS\Core\Core\Environment; @@ -58,9 +59,7 @@ final class ConfigurationManagerTest extends UnitTestCase ->getMock(); } - /** - * @test - */ + #[Test] public function getDefaultConfigurationExecutesDefinedDefaultConfigurationFile(): void { $this->expectException(\RuntimeException::class); @@ -79,9 +78,7 @@ final class ConfigurationManagerTest extends UnitTestCase $this->subject->getDefaultConfiguration(); } - /** - * @test - */ + #[Test] public function getSystemConfigurationExecutesDefinedConfigurationFile(): void { $this->expectException(\RuntimeException::class); @@ -99,9 +96,7 @@ final class ConfigurationManagerTest extends UnitTestCase $this->subject->getLocalConfiguration(); } - /** - * @test - */ + #[Test] public function updateLocalConfigurationWritesNewMergedLocalConfigurationArray(): void { $currentLocalConfiguration = [ @@ -134,9 +129,7 @@ final class ConfigurationManagerTest extends UnitTestCase $this->subject->updateLocalConfiguration($overrideConfiguration); } - /** - * @test - */ + #[Test] public function getDefaultConfigurationValueByPathReturnsCorrectValue(): void { $this->createSubjectWithMockedMethods( @@ -155,9 +148,7 @@ final class ConfigurationManagerTest extends UnitTestCase self::assertSame('value', $this->subject->getDefaultConfigurationValueByPath('path')); } - /** - * @test - */ + #[Test] public function getLocalConfigurationValueByPathReturnsCorrectValue(): void { $this->createSubjectWithMockedMethods( @@ -176,9 +167,7 @@ final class ConfigurationManagerTest extends UnitTestCase self::assertSame('value', $this->subject->getLocalConfigurationValueByPath('path')); } - /** - * @test - */ + #[Test] public function getConfigurationValueByPathReturnsCorrectValue(): void { $this->createSubjectWithMockedMethods( @@ -205,9 +194,7 @@ final class ConfigurationManagerTest extends UnitTestCase self::assertSame('valueOverride', $this->subject->getConfigurationValueByPath('path')); } - /** - * @test - */ + #[Test] public function setLocalConfigurationValueByPathReturnFalseIfPathIsNotValid(): void { $this->createSubjectWithMockedMethods([ @@ -220,9 +207,7 @@ final class ConfigurationManagerTest extends UnitTestCase self::assertFalse($this->subject->setLocalConfigurationValueByPath('path', 'value')); } - /** - * @test - */ + #[Test] public function setLocalConfigurationValueByPathUpdatesValueDefinedByPath(): void { $currentLocalConfiguration = [ @@ -254,9 +239,7 @@ final class ConfigurationManagerTest extends UnitTestCase $this->subject->setLocalConfigurationValueByPath('toUpdate', 'updated'); } - /** - * @test - */ + #[Test] public function setLocalConfigurationValuesByPathValuePairsSetsPathValuePairs(): void { $currentLocalConfiguration = [ @@ -293,9 +276,7 @@ final class ConfigurationManagerTest extends UnitTestCase $this->subject->setLocalConfigurationValuesByPathValuePairs($pairs); } - /** - * @test - */ + #[Test] public function removeLocalConfigurationKeysByPathRemovesGivenPathsFromConfigurationAndReturnsTrue(): void { $currentLocalConfiguration = [ @@ -327,9 +308,7 @@ final class ConfigurationManagerTest extends UnitTestCase self::assertTrue($this->subject->removeLocalConfigurationKeysByPath($removePaths)); } - /** - * @test - */ + #[Test] public function removeLocalConfigurationKeysByPathReturnsFalseIfNothingIsRemoved(): void { $currentLocalConfiguration = [ @@ -351,9 +330,7 @@ final class ConfigurationManagerTest extends UnitTestCase self::assertFalse($this->subject->removeLocalConfigurationKeysByPath($removeNothing)); } - /** - * @test - */ + #[Test] public function removeLocalConfigurationKeysByPathReturnsFalseIfSomethingInexistentIsRemoved(): void { $currentLocalConfiguration = [ @@ -375,9 +352,7 @@ final class ConfigurationManagerTest extends UnitTestCase self::assertFalse($this->subject->removeLocalConfigurationKeysByPath($removeNonExisting)); } - /** - * @test - */ + #[Test] public function canWriteConfigurationReturnsTrueIfDirectoryAndFilesAreWritable(): void { $directory = StringUtility::getUniqueId('test_'); @@ -397,9 +372,7 @@ final class ConfigurationManagerTest extends UnitTestCase self::assertTrue($result); } - /** - * @test - */ + #[Test] public function writeLocalConfigurationWritesSortedContentToConfigurationFile(): void { $configurationFile = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('localConfiguration'); @@ -436,9 +409,7 @@ final class ConfigurationManagerTest extends UnitTestCase self::assertSame($expectedContent, file_get_contents($configurationFile)); } - /** - * @test - */ + #[Test] public function createLocalConfigurationFromFactoryConfigurationThrowsExceptionIfFileExists(): void { $this->expectException(\RuntimeException::class); @@ -452,9 +423,7 @@ final class ConfigurationManagerTest extends UnitTestCase $subject->createLocalConfigurationFromFactoryConfiguration(); } - /** - * @test - */ + #[Test] public function createLocalConfigurationFromFactoryConfigurationWritesContentFromFactoryFile(): void { $subject = $this->getAccessibleMock(ConfigurationManager::class, ['writeLocalConfiguration', 'getSystemConfigurationFileLocation', 'getFactoryConfigurationFileLocation']); @@ -484,9 +453,7 @@ final class ConfigurationManagerTest extends UnitTestCase $subject->createLocalConfigurationFromFactoryConfiguration(); } - /** - * @test - */ + #[Test] public function createLocalConfigurationFromFactoryConfigurationMergesConfigurationWithAdditionalFactoryFile(): void { $subject = $this->getAccessibleMock(ConfigurationManager::class, ['writeLocalConfiguration', 'getSystemConfigurationFileLocation', 'getFactoryConfigurationFileLocation', 'getAdditionalFactoryConfigurationFileLocation']); @@ -528,9 +495,7 @@ final class ConfigurationManagerTest extends UnitTestCase $subject->createLocalConfigurationFromFactoryConfiguration(); } - /** - * @test - */ + #[Test] public function isValidLocalConfigurationPathAcceptsAllowedPath(): void { $subject = $this->getAccessibleMock(ConfigurationManager::class, null); @@ -538,9 +503,7 @@ final class ConfigurationManagerTest extends UnitTestCase self::assertTrue($subject->_call('isValidLocalConfigurationPath', 'foo/bar/baz')); } - /** - * @test - */ + #[Test] public function isValidLocalConfigurationPathDeniesNotAllowedPath(): void { $subject = $this->getAccessibleMock(ConfigurationManager::class, null); diff --git a/typo3/sysext/core/Tests/Unit/Configuration/ExtensionConfigurationTest.php b/typo3/sysext/core/Tests/Unit/Configuration/ExtensionConfigurationTest.php index fbdb6c5ad8a4efce504015b0b268517f451e27c3..0445b319f3c04c001a142cdf2bfe0ec674392f80 100644 --- a/typo3/sysext/core/Tests/Unit/Configuration/ExtensionConfigurationTest.php +++ b/typo3/sysext/core/Tests/Unit/Configuration/ExtensionConfigurationTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Configuration; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Configuration\ConfigurationManager; use TYPO3\CMS\Core\Configuration\ExtensionConfiguration; use TYPO3\CMS\Core\Utility\GeneralUtility; @@ -24,9 +25,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ExtensionConfigurationTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getWithEmptyPathReturnsEntireExtensionConfiguration(): void { $extConf = [ @@ -39,9 +38,7 @@ final class ExtensionConfigurationTest extends UnitTestCase self::assertSame((new ExtensionConfiguration())->get('someExtension'), $extConf); } - /** - * @test - */ + #[Test] public function getWithPathReturnsGivenValue(): void { $GLOBALS['TYPO3_CONF_VARS']['EXTENSIONS']['someExtension'] = [ @@ -53,9 +50,7 @@ final class ExtensionConfigurationTest extends UnitTestCase self::assertSame((new ExtensionConfiguration())->get('someExtension', 'aFeature'), 'iAmEnabled'); } - /** - * @test - */ + #[Test] public function getWithPathReturnsGivenPathSegment(): void { $GLOBALS['TYPO3_CONF_VARS']['EXTENSIONS']['someExtension'] = [ @@ -67,9 +62,7 @@ final class ExtensionConfigurationTest extends UnitTestCase self::assertSame((new ExtensionConfiguration())->get('someExtension', 'aFlagCategory'), ['someFlag' => 'foo']); } - /** - * @test - */ + #[Test] public function setThrowsExceptionWithEmptyExtension(): void { $this->expectException(\RuntimeException::class); @@ -77,9 +70,7 @@ final class ExtensionConfigurationTest extends UnitTestCase (new ExtensionConfiguration())->set(''); } - /** - * @test - */ + #[Test] public function setRemovesFullExtensionConfiguration(): void { $configurationManagerMock = $this->createMock(ConfigurationManager::class); @@ -92,9 +83,7 @@ final class ExtensionConfigurationTest extends UnitTestCase self::assertFalse(isset($GLOBALS['TYPO3_CONF_VARS']['EXTENSIONS']['foo'])); } - /** - * @test - */ + #[Test] public function setWritesFullExtensionConfig(): void { $value = ['bar' => 'baz']; diff --git a/typo3/sysext/core/Tests/Unit/Configuration/FeaturesTest.php b/typo3/sysext/core/Tests/Unit/Configuration/FeaturesTest.php index 0e3f62b16c538b44fc3bc644894ed1734d116959..c4c3629c26eb8c2707f4568e536a43179661883c 100644 --- a/typo3/sysext/core/Tests/Unit/Configuration/FeaturesTest.php +++ b/typo3/sysext/core/Tests/Unit/Configuration/FeaturesTest.php @@ -17,23 +17,20 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Configuration; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Configuration\Features; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class FeaturesTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function nonExistingFeatureReturnsFalse(): void { $features = new Features(); self::assertFalse($features->isFeatureEnabled('nonExistingFeature')); } - /** - * @test - */ + #[Test] public function checkIfExistingDisabledFeatureIsDisabled(): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['features']['nativeFunctionality'] = false; @@ -41,9 +38,7 @@ final class FeaturesTest extends UnitTestCase self::assertFalse($features->isFeatureEnabled('nativeFunctionality')); } - /** - * @test - */ + #[Test] public function checkIfExistingEnabledFeatureIsEnabled(): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['features']['nativeFunctionality'] = true; @@ -51,9 +46,7 @@ final class FeaturesTest extends UnitTestCase self::assertTrue($features->isFeatureEnabled('nativeFunctionality')); } - /** - * @test - */ + #[Test] public function checkIfExistingEnabledFeatureIsDisabled(): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['features']['nativeFunctionality'] = false; diff --git a/typo3/sysext/core/Tests/Unit/Configuration/FlexForm/FlexFormToolsTest.php b/typo3/sysext/core/Tests/Unit/Configuration/FlexForm/FlexFormToolsTest.php index def39baa9bed2c126c533359c523629b203551f5..aa80dedb9447e0a37d13612dc946bf6f176f81d7 100644 --- a/typo3/sysext/core/Tests/Unit/Configuration/FlexForm/FlexFormToolsTest.php +++ b/typo3/sysext/core/Tests/Unit/Configuration/FlexForm/FlexFormToolsTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Configuration\FlexForm; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Configuration\FlexForm\FlexFormTools; use TYPO3\CMS\Core\EventDispatcher\NoopEventDispatcher; use TYPO3\CMS\Core\Tests\Unit\Fixtures\EventDispatcher\MockEventDispatcher; @@ -24,9 +25,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class FlexFormToolsTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function traverseFlexFormXmlDataRecurseDoesNotFailOnNotExistingField(): void { $dataStruct = [ @@ -47,9 +46,7 @@ final class FlexFormToolsTest extends UnitTestCase $subject->traverseFlexFormXMLData_recurse($dataStruct, $editData, $pA); } - /** - * @test - */ + #[Test] public function traverseFlexFormXmlDataRecurseDoesNotFailOnNotExistingArrayField(): void { $dataStruct = [ diff --git a/typo3/sysext/core/Tests/Unit/Configuration/Loader/YamlFileLoaderTest.php b/typo3/sysext/core/Tests/Unit/Configuration/Loader/YamlFileLoaderTest.php index 1db08de82cd6681f2465318328935d9379c56ba3..859cacf801ecf5f0460a62ab8db113e7fa0a4d19 100644 --- a/typo3/sysext/core/Tests/Unit/Configuration/Loader/YamlFileLoaderTest.php +++ b/typo3/sysext/core/Tests/Unit/Configuration/Loader/YamlFileLoaderTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Configuration\Loader; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Configuration\Loader\YamlFileLoader; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -85,10 +87,9 @@ final class YamlFileLoaderTest extends UnitTestCase /** * Method checking for env placeholders - * - * @dataProvider loadWithEnvVarDataProvider - * @test */ + #[DataProvider('loadWithEnvVarDataProvider')] + #[Test] public function loadWithEnvVarPlaceholders(array $envs, string $yamlContent, array $expected): void { foreach ($envs as $env) { @@ -110,9 +111,8 @@ final class YamlFileLoaderTest extends UnitTestCase /** * Method checking for env placeholders - * - * @test */ + #[Test] public function loadWithEnvVarPlaceholdersDoesNotReplaceWithNonExistingValues(): void { $fileName = 'Berta.yml'; @@ -194,10 +194,8 @@ betterthanbefore: \'%env(mynonexistingenv)%\' ]; } - /** - * @dataProvider isPlaceholderDataProvider - * @test - */ + #[DataProvider('isPlaceholderDataProvider')] + #[Test] public function containsPlaceholderTest(mixed $placeholderValue, bool $expected): void { $subject = $this->getAccessibleMock(YamlFileLoader::class, null); diff --git a/typo3/sysext/core/Tests/Unit/Configuration/RichtextTest.php b/typo3/sysext/core/Tests/Unit/Configuration/RichtextTest.php index c019fe1f3472111fa2e56ca8bea0263970d8aa10..3f1e7263025e59b6f91011c6f8b1e20fdae37a48 100644 --- a/typo3/sysext/core/Tests/Unit/Configuration/RichtextTest.php +++ b/typo3/sysext/core/Tests/Unit/Configuration/RichtextTest.php @@ -17,14 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Configuration; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Configuration\Richtext; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class RichtextTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getConfigurationUsesOverruleModeFromType(): void { $fieldConfig = [ @@ -76,9 +76,7 @@ final class RichtextTest extends UnitTestCase self::assertSame($expected, $output); } - /** - * @test - */ + #[Test] public function getConfigurationUsesOverruleModeFromConfig(): void { $fieldConfig = [ @@ -126,9 +124,7 @@ final class RichtextTest extends UnitTestCase self::assertSame($expected, $output); } - /** - * @test - */ + #[Test] public function getConfigurationSetsOverruleModeIfMissing(): void { $fieldConfig = [ @@ -164,9 +160,7 @@ final class RichtextTest extends UnitTestCase self::assertSame($expected, $output); } - /** - * @test - */ + #[Test] public function getConfigurationOverridesByDefault(): void { $fieldConfig = [ @@ -243,9 +237,7 @@ final class RichtextTest extends UnitTestCase self::assertSame($expected, $output); } - /** - * @test - */ + #[Test] public function getConfigurationOverridesByFieldSpecificConfig(): void { $fieldConfig = [ @@ -333,9 +325,7 @@ final class RichtextTest extends UnitTestCase self::assertSame($expected, $output); } - /** - * @test - */ + #[Test] public function getConfigurationOverridesByFieldAndTypeSpecificConfig(): void { $fieldConfig = [ @@ -437,9 +427,7 @@ final class RichtextTest extends UnitTestCase self::assertSame($expected, $output); } - /** - * @test - */ + #[Test] public function getConfigurationPageTsOverridesPreset(): void { $pageId = 42; @@ -817,10 +805,8 @@ final class RichtextTest extends UnitTestCase ]; } - /** - * @dataProvider dataProviderGetConfigurationFindPresetInPageTsOverridesPreset - * @test - */ + #[DataProvider('dataProviderGetConfigurationFindPresetInPageTsOverridesPreset')] + #[Test] public function getConfigurationFindPresetInPageTsOverridesPreset($fieldConfig, $pageTsConfig, $expected, $message): void { // Accessible mock to $subject since getRtePageTsConfigOfPid calls BackendUtility::getPagesTSconfig() diff --git a/typo3/sysext/core/Tests/Unit/Configuration/SiteConfigurationTest.php b/typo3/sysext/core/Tests/Unit/Configuration/SiteConfigurationTest.php index 1a894304f20acefd87f00b4e9fae5f54cc4618ca..eb00bcc3cd0b774b649b6d7fcc573b043eb1ca84 100644 --- a/typo3/sysext/core/Tests/Unit/Configuration/SiteConfigurationTest.php +++ b/typo3/sysext/core/Tests/Unit/Configuration/SiteConfigurationTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Configuration; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use Symfony\Component\Yaml\Yaml; use TYPO3\CMS\Core\Cache\Frontend\NullFrontend; use TYPO3\CMS\Core\Configuration\Exception\SiteConfigurationWriteException; @@ -56,17 +58,13 @@ final class SiteConfigurationTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function resolveAllExistingSitesReturnsEmptyArrayForNoSiteConfigsFound(): void { self::assertEmpty($this->siteConfiguration->resolveAllExistingSites()); } - /** - * @test - */ + #[Test] public function resolveAllExistingSitesReadsConfiguration(): void { $configuration = [ @@ -83,9 +81,7 @@ final class SiteConfigurationTest extends UnitTestCase self::assertEquals(new Uri('https://example.com'), $currentSite->getBase()); } - /** - * @test - */ + #[Test] public function writeOnlyWritesModifiedKeys(): void { $identifier = 'testsite'; @@ -114,9 +110,7 @@ final class SiteConfigurationTest extends UnitTestCase self::assertFileEquals($expected, $siteConfig); } - /** - * @test - */ + #[Test] public function writingOfNestedStructuresPreservesOrder(): void { $identifier = 'testsite'; @@ -169,10 +163,8 @@ final class SiteConfigurationTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider writingPlaceholdersIsHandledDataProvider - */ + #[DataProvider('writingPlaceholdersIsHandledDataProvider')] + #[Test] public function writingPlaceholdersIsHandled(array $changes, bool $expectedException): void { if ($expectedException) { diff --git a/typo3/sysext/core/Tests/Unit/Console/CommandRegistryTest.php b/typo3/sysext/core/Tests/Unit/Console/CommandRegistryTest.php index fe4180e2ed5a780cdf45b86d88038cfcb1a6f2a4..30357aaaf0023bc49938d42a25d8f0d0ee5f982a 100644 --- a/typo3/sysext/core/Tests/Unit/Console/CommandRegistryTest.php +++ b/typo3/sysext/core/Tests/Unit/Console/CommandRegistryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Console; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use Psr\Container\ContainerInterface; use Symfony\Component\Console\Command\Command; @@ -35,18 +36,14 @@ final class CommandRegistryTest extends UnitTestCase $this->containerMock = $this->createMock(ContainerInterface::class); } - /** - * @test - */ + #[Test] public function implementsCommandLoaderInterface(): void { $commandRegistry = new CommandRegistry($this->containerMock); self::assertInstanceof(CommandLoaderInterface::class, $commandRegistry); } - /** - * @test - */ + #[Test] public function iteratesLazyCommandsOfActivePackages(): void { $command1Mock = $this->createMock(Command::class); diff --git a/typo3/sysext/core/Tests/Unit/Context/ContextTest.php b/typo3/sysext/core/Tests/Unit/Context/ContextTest.php index 3f1043fb54fb94654771a552cada03e964bd8cc5..d96f63ca38727fce11aca3a66f8f57890f5bcf5e 100644 --- a/typo3/sysext/core/Tests/Unit/Context/ContextTest.php +++ b/typo3/sysext/core/Tests/Unit/Context/ContextTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Context; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Context\Context; use TYPO3\CMS\Core\Context\Exception\AspectNotFoundException; use TYPO3\CMS\Core\Context\UserAspect; @@ -42,10 +44,8 @@ final class ContextTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider validAspectKeysDataProvider - */ + #[DataProvider('validAspectKeysDataProvider')] + #[Test] public function hasAspectReturnsTrueOnExistingAspect(string $aspectName): void { $subject = new Context([ @@ -67,10 +67,8 @@ final class ContextTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider invalidAspectKeysDataProvider - */ + #[DataProvider('invalidAspectKeysDataProvider')] + #[Test] public function hasAspectReturnsFalseOnNonExistingAspect(string $aspectName): void { $subject = new Context([ @@ -80,9 +78,7 @@ final class ContextTest extends UnitTestCase self::assertFalse($subject->hasAspect($aspectName)); } - /** - * @test - */ + #[Test] public function constructorAddsValidAspect(): void { $subject = new Context([ @@ -93,9 +89,7 @@ final class ContextTest extends UnitTestCase self::assertFalse($subject->hasAspect('uncoolio')); } - /** - * @test - */ + #[Test] public function getAspectThrowsExceptionOnInvalidAspect(): void { $aspect = new UserAspect(); @@ -108,9 +102,7 @@ final class ContextTest extends UnitTestCase $subject->getAspect('uncoolio'); } - /** - * @test - */ + #[Test] public function getAspectReturnsValidAspect(): void { $aspect = new UserAspect(); @@ -121,9 +113,7 @@ final class ContextTest extends UnitTestCase self::assertSame($aspect, $subject->getAspect('coolio')); } - /** - * @test - */ + #[Test] public function invalidAspectFromgetPropertyFromAspectThrowsException(): void { $aspect = new UserAspect(); @@ -136,9 +126,7 @@ final class ContextTest extends UnitTestCase $subject->getPropertyFromAspect('uncoolio', 'does not matter'); } - /** - * @test - */ + #[Test] public function invalidPropertyFromgetPropertyFromAspectReturnsDefault(): void { $defaultValue = 'default value'; @@ -151,9 +139,7 @@ final class ContextTest extends UnitTestCase self::assertEquals($defaultValue, $result); } - /** - * @test - */ + #[Test] public function validPropertyFromgetPropertyFromAspectReturnsValue(): void { $aspect = new WorkspaceAspect(13); @@ -165,9 +151,7 @@ final class ContextTest extends UnitTestCase self::assertEquals(13, $result); } - /** - * @test - */ + #[Test] public function setAspectSetsAnAspectAndCanReturnIt(): void { $aspect = new UserAspect(); @@ -177,9 +161,7 @@ final class ContextTest extends UnitTestCase self::assertSame($aspect, $subject->getAspect('coolio')); } - /** - * @test - */ + #[Test] public function setAspectOverridesAnExisting(): void { $initialAspect = new UserAspect(); diff --git a/typo3/sysext/core/Tests/Unit/Context/DateTimeAspectTest.php b/typo3/sysext/core/Tests/Unit/Context/DateTimeAspectTest.php index 4fdd1e421640e5512835fef4b7a104c1362a531e..c1ab6821ad3fd8e14c57a3c3cca661706171c534 100644 --- a/typo3/sysext/core/Tests/Unit/Context/DateTimeAspectTest.php +++ b/typo3/sysext/core/Tests/Unit/Context/DateTimeAspectTest.php @@ -17,15 +17,15 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Context; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Context\DateTimeAspect; use TYPO3\CMS\Core\Context\Exception\AspectPropertyNotFoundException; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class DateTimeAspectTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getDateTimeReturnsSameObject(): void { $dateObject = new \DateTimeImmutable('2018-07-15', new \DateTimeZone('Europe/Moscow')); @@ -34,9 +34,7 @@ final class DateTimeAspectTest extends UnitTestCase self::assertSame($dateObject, $result); } - /** - * @test - */ + #[Test] public function getThrowsExceptionOnInvalidArgument(): void { $this->expectException(AspectPropertyNotFoundException::class); @@ -46,9 +44,7 @@ final class DateTimeAspectTest extends UnitTestCase $subject->get('football'); } - /** - * @test - */ + #[Test] public function getTimestampReturnsInteger(): void { $dateObject = new \DateTimeImmutable('2018-07-15', new \DateTimeZone('Europe/Moscow')); @@ -84,11 +80,11 @@ final class DateTimeAspectTest extends UnitTestCase } /** - * @test - * @dataProvider dateFormatValuesDataProvider * @param string $key * @param string $expectedResult */ + #[DataProvider('dateFormatValuesDataProvider')] + #[Test] public function getReturnsValidInformationFromProperty($key, $expectedResult): void { $dateObject = new \DateTimeImmutable('2018-07-15T13:00:05', new \DateTimeZone('Europe/Moscow')); diff --git a/typo3/sysext/core/Tests/Unit/Context/SecurityAspectTest.php b/typo3/sysext/core/Tests/Unit/Context/SecurityAspectTest.php index 5b597ea298f0f712a729da991e7cbc644ad601bf..ab8035405a995278acefff9c2b03630526356392 100644 --- a/typo3/sysext/core/Tests/Unit/Context/SecurityAspectTest.php +++ b/typo3/sysext/core/Tests/Unit/Context/SecurityAspectTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Context; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Context\SecurityAspect; use TYPO3\CMS\Core\Security\NoncePool; use TYPO3\CMS\Core\Security\RequestToken; @@ -24,9 +25,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class SecurityAspectTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function receivedRequestTokenIsFunctional(): void { $aspect = new SecurityAspect(); @@ -40,18 +39,14 @@ final class SecurityAspectTest extends UnitTestCase self::assertNull($aspect->getReceivedRequestToken()); } - /** - * @test - */ + #[Test] public function signingSecretResolverIsFunctional(): void { $aspect = new SecurityAspect(); self::assertInstanceOf(NoncePool::class, $aspect->getSigningSecretResolver()->findByType('nonce')); } - /** - * @test - */ + #[Test] public function noncePoolIsFunctional(): void { $aspect = new SecurityAspect(); diff --git a/typo3/sysext/core/Tests/Unit/Context/UserAspectTest.php b/typo3/sysext/core/Tests/Unit/Context/UserAspectTest.php index 7b1c61d8f6df32538e041a422a593de4aafec216..91dd1882c279878be39bc90bb990f3030c995011 100644 --- a/typo3/sysext/core/Tests/Unit/Context/UserAspectTest.php +++ b/typo3/sysext/core/Tests/Unit/Context/UserAspectTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Context; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; use TYPO3\CMS\Core\Context\Exception\AspectPropertyNotFoundException; use TYPO3\CMS\Core\Context\UserAspect; @@ -25,9 +27,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class UserAspectTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getterReturnsProperDefaultValues(): void { $subject = new UserAspect(null, null); @@ -38,9 +38,7 @@ final class UserAspectTest extends UnitTestCase self::assertEquals([], $subject->get('groupNames')); } - /** - * @test - */ + #[Test] public function alternativeGroupsAreAlwaysReturned(): void { $subject = new UserAspect(null, []); @@ -49,9 +47,7 @@ final class UserAspectTest extends UnitTestCase self::assertEquals([567], $subject->get('groupIds')); } - /** - * @test - */ + #[Test] public function getterReturnsValidUserId(): void { $user = new FrontendUserAuthentication(); @@ -62,9 +58,7 @@ final class UserAspectTest extends UnitTestCase self::assertEquals(13, $subject->get('id')); } - /** - * @test - */ + #[Test] public function getterReturnsValidUsername(): void { $user = new FrontendUserAuthentication(); @@ -76,9 +70,7 @@ final class UserAspectTest extends UnitTestCase self::assertEquals('Teddy', $subject->get('username')); } - /** - * @test - */ + #[Test] public function isLoggedInReturnsTrueOnFrontendUserWithoutUserGroup(): void { $user = new FrontendUserAuthentication(); @@ -89,9 +81,7 @@ final class UserAspectTest extends UnitTestCase self::assertTrue($subject->isLoggedIn()); } - /** - * @test - */ + #[Test] public function isLoggedInReturnsTrueOnFrontendUserWithUserGroup(): void { $user = new FrontendUserAuthentication(); @@ -103,9 +93,7 @@ final class UserAspectTest extends UnitTestCase self::assertTrue($subject->isLoggedIn()); } - /** - * @test - */ + #[Test] public function isLoggedInReturnsTrueOnBackendUserWithId(): void { $user = new BackendUserAuthentication(); @@ -116,9 +104,7 @@ final class UserAspectTest extends UnitTestCase self::assertTrue($subject->isLoggedIn()); } - /** - * @test - */ + #[Test] public function getGroupIdsReturnsFrontendUserGroups(): void { $user = new FrontendUserAuthentication(); @@ -130,9 +116,7 @@ final class UserAspectTest extends UnitTestCase self::assertEquals([0, -2, 23, 54], $subject->getGroupIds()); } - /** - * @test - */ + #[Test] public function getGroupIdsReturnsOverriddenGroups(): void { $user = new FrontendUserAuthentication(); @@ -190,10 +174,8 @@ final class UserAspectTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider isUserOrGroupSetDataProvider - */ + #[DataProvider('isUserOrGroupSetDataProvider')] + #[Test] public function isUserOrGroupSetChecksForValidUser(int $userId, ?array $userGroups, ?array $overriddenGroups, bool $expectedResult): void { $user = new FrontendUserAuthentication(); @@ -207,9 +189,7 @@ final class UserAspectTest extends UnitTestCase self::assertEquals($expectedResult, $subject->isUserOrGroupSet()); } - /** - * @test - */ + #[Test] public function getThrowsExceptionOnInvalidArgument(): void { $this->expectException(AspectPropertyNotFoundException::class); diff --git a/typo3/sysext/core/Tests/Unit/Context/VisibilityAspectTest.php b/typo3/sysext/core/Tests/Unit/Context/VisibilityAspectTest.php index d9b15c4fefdca7963ffe0467b3ad894d3498c772..4a71962154c66496964cfc08db8846f583c4cb27 100644 --- a/typo3/sysext/core/Tests/Unit/Context/VisibilityAspectTest.php +++ b/typo3/sysext/core/Tests/Unit/Context/VisibilityAspectTest.php @@ -17,15 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Context; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Context\Exception\AspectPropertyNotFoundException; use TYPO3\CMS\Core\Context\VisibilityAspect; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class VisibilityAspectTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getterReturnsProperDefaultValues(): void { $subject = new VisibilityAspect(); @@ -35,9 +34,7 @@ final class VisibilityAspectTest extends UnitTestCase self::assertFalse($subject->includeScheduledRecords()); } - /** - * @test - */ + #[Test] public function getterReturnsProperValues(): void { $subject = new VisibilityAspect(true, true, true, true); @@ -47,9 +44,7 @@ final class VisibilityAspectTest extends UnitTestCase self::assertTrue($subject->includeScheduledRecords()); } - /** - * @test - */ + #[Test] public function getReturnsProperValues(): void { $subject = new VisibilityAspect(true, true, true, true); @@ -59,9 +54,7 @@ final class VisibilityAspectTest extends UnitTestCase self::assertTrue($subject->get('includeScheduledRecords')); } - /** - * @test - */ + #[Test] public function getThrowsExceptionOnInvalidArgument(): void { $this->expectException(AspectPropertyNotFoundException::class); diff --git a/typo3/sysext/core/Tests/Unit/Context/WorkspaceAspectTest.php b/typo3/sysext/core/Tests/Unit/Context/WorkspaceAspectTest.php index 59e8708dc2b406b300b6ce3daf116e3d8b790f60..ec3a972a44593c1cfbbf59da04cf885c9dd32781 100644 --- a/typo3/sysext/core/Tests/Unit/Context/WorkspaceAspectTest.php +++ b/typo3/sysext/core/Tests/Unit/Context/WorkspaceAspectTest.php @@ -17,15 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Context; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Context\Exception\AspectPropertyNotFoundException; use TYPO3\CMS\Core\Context\WorkspaceAspect; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class WorkspaceAspectTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getterReturnsProperDefaultValues(): void { $subject = new WorkspaceAspect(); @@ -36,9 +35,7 @@ final class WorkspaceAspectTest extends UnitTestCase self::assertFalse($subject->get('isOffline')); } - /** - * @test - */ + #[Test] public function getterReturnsProperCustomValues(): void { $subject = new WorkspaceAspect(13); @@ -49,9 +46,7 @@ final class WorkspaceAspectTest extends UnitTestCase self::assertTrue($subject->get('isOffline')); } - /** - * @test - */ + #[Test] public function getThrowsExceptionOnInvalidArgument(): void { $this->expectException(AspectPropertyNotFoundException::class); diff --git a/typo3/sysext/core/Tests/Unit/Core/ApplicationContextTest.php b/typo3/sysext/core/Tests/Unit/Core/ApplicationContextTest.php index d4a2cca9624e38358cf509ce0cfccd96f5ea1ca6..6f0d96e6f19a26370ce6b41c1e8b5f7ec0bf2556 100644 --- a/typo3/sysext/core/Tests/Unit/Core/ApplicationContextTest.php +++ b/typo3/sysext/core/Tests/Unit/Core/ApplicationContextTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Core; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Core\ApplicationContext; use TYPO3\CMS\Core\Exception; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -42,10 +44,8 @@ final class ApplicationContextTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider allowedContexts - */ + #[DataProvider('allowedContexts')] + #[Test] public function contextStringCanBeSetInConstructorAndReadByCallingToString($allowedContext): void { $context = new ApplicationContext($allowedContext); @@ -65,10 +65,8 @@ final class ApplicationContextTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider forbiddenContexts - */ + #[DataProvider('forbiddenContexts')] + #[Test] public function constructorThrowsExceptionIfMainContextIsForbidden($forbiddenContext): void { $this->expectException(Exception::class); @@ -130,10 +128,8 @@ final class ApplicationContextTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider isMethods - */ + #[DataProvider('isMethods')] + #[Test] public function contextMethodsReturnTheCorrectValues($contextName, $isDevelopment, $isProduction, $isTesting, $parentContext): void { $context = new ApplicationContext($contextName); @@ -143,9 +139,7 @@ final class ApplicationContextTest extends UnitTestCase self::assertSame((string)$parentContext, (string)$context->getParent()); } - /** - * @test - */ + #[Test] public function parentContextIsConnectedRecursively(): void { $context = new ApplicationContext('Production/Foo/Bar'); diff --git a/typo3/sysext/core/Tests/Unit/Core/ClassLoadingInformationGeneratorTest.php b/typo3/sysext/core/Tests/Unit/Core/ClassLoadingInformationGeneratorTest.php index 65309e9c0b5740fb9996849c9d6451874bdbedbf..8eb0c0b663f66c15795913d02023d8b9dba201ac 100644 --- a/typo3/sysext/core/Tests/Unit/Core/ClassLoadingInformationGeneratorTest.php +++ b/typo3/sysext/core/Tests/Unit/Core/ClassLoadingInformationGeneratorTest.php @@ -18,6 +18,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Core; use Composer\Autoload\ClassLoader; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Core\ClassLoadingInformationGenerator; use TYPO3\CMS\Core\Error\Exception; use TYPO3\CMS\Core\Package\PackageInterface; @@ -27,9 +29,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ClassLoadingInformationGeneratorTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function buildClassAliasMapForPackageThrowsExceptionForWrongComposerManifestInformation(): void { $this->expectException(Exception::class); @@ -50,9 +50,7 @@ final class ClassLoadingInformationGeneratorTest extends UnitTestCase $generator->buildClassAliasMapForPackage($packageMock); } - /** - * @test - */ + #[Test] public function buildClassAliasMapForPackageThrowsExceptionForWrongClassAliasMapFile(): void { $this->expectException(Exception::class); @@ -72,9 +70,7 @@ final class ClassLoadingInformationGeneratorTest extends UnitTestCase $generator->buildClassAliasMapForPackage($packageMock); } - /** - * @test - */ + #[Test] public function buildClassAliasMapForPackageReturnsClassAliasMapForClassAliasMapFile(): void { $expectedClassMap = [ @@ -97,9 +93,7 @@ final class ClassLoadingInformationGeneratorTest extends UnitTestCase self::assertEquals($expectedClassMap, $generator->buildClassAliasMapForPackage($packageMock)); } - /** - * @test - */ + #[Test] public function buildClassAliasMapForPackageReturnsClassAliasMapForComposerManifestInformation(): void { $expectedClassMap = [ @@ -247,10 +241,8 @@ final class ClassLoadingInformationGeneratorTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider autoloadFilesAreBuildCorrectlyDataProvider - */ + #[DataProvider('autoloadFilesAreBuildCorrectlyDataProvider')] + #[Test] public function autoloadFilesAreBuildCorrectly(array $packageManifest, array $expectedPsr4Files, array $expectedClassMapFiles): void { $classLoaderMock = $this->createMock(ClassLoader::class); @@ -347,10 +339,8 @@ final class ClassLoadingInformationGeneratorTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider autoloadDevFilesAreBuildCorrectlyDataProvider - */ + #[DataProvider('autoloadDevFilesAreBuildCorrectlyDataProvider')] + #[Test] public function autoloadDevFilesAreBuildCorrectly(array $packageManifest, array $expectedPsr4Files, array $expectedClassMapFiles): void { $classLoaderMock = $this->createMock(ClassLoader::class); diff --git a/typo3/sysext/core/Tests/Unit/Core/SystemEnvironmentBuilderTest.php b/typo3/sysext/core/Tests/Unit/Core/SystemEnvironmentBuilderTest.php index 37aba07af820153d1625363ea20343e0459e37b1..2c708088a794dd43812bd6e00cc12d4f031a5f53 100644 --- a/typo3/sysext/core/Tests/Unit/Core/SystemEnvironmentBuilderTest.php +++ b/typo3/sysext/core/Tests/Unit/Core/SystemEnvironmentBuilderTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Core; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Core\Core\SystemEnvironmentBuilder; use TYPO3\CMS\Core\Utility\StringUtility; @@ -36,9 +38,7 @@ final class SystemEnvironmentBuilderTest extends UnitTestCase $this->subject = $this->getAccessibleMock(SystemEnvironmentBuilder::class, null); } - /** - * @test - */ + #[Test] public function getPathThisScriptCliReadsLocalPartFromArgv(): void { $fakedLocalPart = StringUtility::getUniqueId('Test'); @@ -46,9 +46,7 @@ final class SystemEnvironmentBuilderTest extends UnitTestCase self::assertStringEndsWith($fakedLocalPart, $this->subject->_call('getPathThisScriptCli')); } - /** - * @test - */ + #[Test] public function getPathThisScriptCliReadsLocalPartFromEnv(): void { $fakedLocalPart = StringUtility::getUniqueId('Test'); @@ -57,9 +55,7 @@ final class SystemEnvironmentBuilderTest extends UnitTestCase self::assertStringEndsWith($fakedLocalPart, $this->subject->_call('getPathThisScriptCli')); } - /** - * @test - */ + #[Test] public function getPathThisScriptCliReadsLocalPartFromServer(): void { $fakedLocalPart = StringUtility::getUniqueId('Test'); @@ -69,9 +65,7 @@ final class SystemEnvironmentBuilderTest extends UnitTestCase self::assertStringEndsWith($fakedLocalPart, $this->subject->_call('getPathThisScriptCli')); } - /** - * @test - */ + #[Test] public function getPathThisScriptCliAddsCurrentWorkingDirectoryFromServerEnvironmentToLocalPathOnUnix(): void { $GLOBALS['_SERVER']['argv'][0] = 'foo'; @@ -80,9 +74,7 @@ final class SystemEnvironmentBuilderTest extends UnitTestCase self::assertStringStartsWith($fakedAbsolutePart, $this->subject->_call('getPathThisScriptCli')); } - /** - * @test - */ + #[Test] public function initializeGlobalVariablesSetsGlobalT3ServicesArray(): void { unset($GLOBALS['T3_SERVICES']); @@ -104,10 +96,10 @@ final class SystemEnvironmentBuilderTest extends UnitTestCase } /** - * @test - * @dataProvider initializeGlobalTimeTrackingVariablesSetsGlobalVariablesDataProvider * @param string $variable Variable to check for in $GLOBALS */ + #[DataProvider('initializeGlobalTimeTrackingVariablesSetsGlobalVariablesDataProvider')] + #[Test] public function initializeGlobalTimeTrackingVariablesSetsGlobalVariables($variable): void { unset($GLOBALS[$variable]); @@ -115,18 +107,14 @@ final class SystemEnvironmentBuilderTest extends UnitTestCase self::assertTrue(isset($GLOBALS[$variable])); } - /** - * @test - */ + #[Test] public function initializeGlobalTimeTrackingVariablesRoundsAccessTimeToSixtySeconds(): void { $this->subject->_call('initializeGlobalTimeTrackingVariables'); self::assertEquals(0, $GLOBALS['ACCESS_TIME'] % 60); } - /** - * @test - */ + #[Test] public function initializeGlobalTimeTrackingVariablesRoundsSimAccessTimeToSixtySeconds(): void { $this->subject->_call('initializeGlobalTimeTrackingVariables'); diff --git a/typo3/sysext/core/Tests/Unit/Country/CountryProviderTest.php b/typo3/sysext/core/Tests/Unit/Country/CountryProviderTest.php index dd52f7a9223003bb4d40f6739d90c5a2b9b9417b..e25a707ee6f6b1fdcca0f9545bde9262515cedd9 100644 --- a/typo3/sysext/core/Tests/Unit/Country/CountryProviderTest.php +++ b/typo3/sysext/core/Tests/Unit/Country/CountryProviderTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Country; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Country\Country; use TYPO3\CMS\Core\Country\CountryFilter; use TYPO3\CMS\Core\Country\CountryProvider; @@ -24,9 +26,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class CountryProviderTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function findAllCountriesReturnsCountryObjects(): void { $subject = new CountryProvider(); @@ -34,9 +34,7 @@ final class CountryProviderTest extends UnitTestCase self::assertGreaterThan(150, count($countries)); } - /** - * @test - */ + #[Test] public function findByIsoCodeReturnsValidObject(): void { $subject = new CountryProvider(); @@ -48,9 +46,7 @@ final class CountryProviderTest extends UnitTestCase self::assertEquals('French Republic', $countryIsoCode2->getOfficialName()); } - /** - * @test - */ + #[Test] public function findByThreeLetterIsoCodeReturnsValidObject(): void { $subject = new CountryProvider(); @@ -68,10 +64,8 @@ final class CountryProviderTest extends UnitTestCase self::assertEquals('FRA', $countryIsoCode3->getAlpha3IsoCode()); } - /** - * @test - * @dataProvider findByFilterReturnsValidObjectDataProvider - */ + #[DataProvider('findByFilterReturnsValidObjectDataProvider')] + #[Test] public function findByFilterReturnsValidObject(int $expectedCount, array $excludedCountries, array $includedCountries): void { $subject = new CountryProvider(); diff --git a/typo3/sysext/core/Tests/Unit/Crypto/PasswordHashing/Argon2iPasswordHashTest.php b/typo3/sysext/core/Tests/Unit/Crypto/PasswordHashing/Argon2iPasswordHashTest.php index 8d31795cc026bb4f88236841e1a48d7cb65d6b14..d1a227669129db8ffbbfab741848d52a3dbc03fb 100644 --- a/typo3/sysext/core/Tests/Unit/Crypto/PasswordHashing/Argon2iPasswordHashTest.php +++ b/typo3/sysext/core/Tests/Unit/Crypto/PasswordHashing/Argon2iPasswordHashTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Crypto\PasswordHashing; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Crypto\PasswordHashing\Argon2iPasswordHash; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -38,9 +39,7 @@ final class Argon2iPasswordHashTest extends UnitTestCase $this->subject = new Argon2iPasswordHash($options); } - /** - * @test - */ + #[Test] public function constructorThrowsExceptionIfMemoryCostIsTooLow(): void { $this->expectException(\InvalidArgumentException::class); @@ -48,9 +47,7 @@ final class Argon2iPasswordHashTest extends UnitTestCase new Argon2iPasswordHash(['memory_cost' => 1]); } - /** - * @test - */ + #[Test] public function constructorThrowsExceptionIfTimeCostIsTooLow(): void { $this->expectException(\InvalidArgumentException::class); @@ -58,17 +55,13 @@ final class Argon2iPasswordHashTest extends UnitTestCase new Argon2iPasswordHash(['time_cost' => 1]); } - /** - * @test - */ + #[Test] public function getHashedPasswordReturnsNullOnEmptyPassword(): void { self::assertNull($this->subject->getHashedPassword('')); } - /** - * @test - */ + #[Test] public function getHashedPasswordReturnsString(): void { $hash = $this->subject->getHashedPassword('password'); @@ -76,9 +69,7 @@ final class Argon2iPasswordHashTest extends UnitTestCase self::assertIsString($hash); } - /** - * @test - */ + #[Test] public function isValidSaltedPwValidatesHastCreatedByGetHashedPassword(): void { $hash = $this->subject->getHashedPassword('password'); @@ -87,9 +78,8 @@ final class Argon2iPasswordHashTest extends UnitTestCase /** * Tests authentication procedure with alphabet characters. - * - * @test */ + #[Test] public function checkPasswordReturnsTrueForHashedPasswordWithValidAlphaCharClassPassword(): void { $password = 'aEjOtY'; @@ -99,9 +89,8 @@ final class Argon2iPasswordHashTest extends UnitTestCase /** * Tests authentication procedure with numeric characters. - * - * @test */ + #[Test] public function checkPasswordReturnsTrueForHashedPasswordWithValidNumericCharClassPassword(): void { $password = '01369'; @@ -111,9 +100,8 @@ final class Argon2iPasswordHashTest extends UnitTestCase /** * Tests authentication procedure with US-ASCII special characters. - * - * @test */ + #[Test] public function checkPasswordReturnsTrueForHashedPasswordWithValidAsciiSpecialCharClassPassword(): void { $password = ' !"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'; @@ -123,9 +111,8 @@ final class Argon2iPasswordHashTest extends UnitTestCase /** * Tests authentication procedure with latin1 special characters. - * - * @test */ + #[Test] public function checkPasswordReturnsTrueForHashedPasswordWithValidLatin1SpecialCharClassPassword(): void { $password = ''; @@ -139,9 +126,8 @@ final class Argon2iPasswordHashTest extends UnitTestCase /** * Tests authentication procedure with latin1 umlauts. - * - * @test */ + #[Test] public function checkPasswordReturnsTrueForHashedPasswordWithValidLatin1UmlautCharClassPassword(): void { $password = ''; @@ -156,9 +142,7 @@ final class Argon2iPasswordHashTest extends UnitTestCase self::assertTrue($this->subject->checkPassword($password, $hash)); } - /** - * @test - */ + #[Test] public function checkPasswordReturnsTrueForHashedPasswordWithNonValidPassword(): void { $password = 'password'; @@ -167,9 +151,7 @@ final class Argon2iPasswordHashTest extends UnitTestCase self::assertFalse($this->subject->checkPassword($password1, $hash)); } - /** - * @test - */ + #[Test] public function isHashUpdateNeededReturnsFalseForJustGeneratedHash(): void { $password = 'password'; @@ -177,9 +159,7 @@ final class Argon2iPasswordHashTest extends UnitTestCase self::assertFalse($this->subject->isHashUpdateNeeded($hash)); } - /** - * @test - */ + #[Test] public function isHashUpdateNeededReturnsTrueForHashGeneratedWithOldOptions(): void { $originalOptions = [ diff --git a/typo3/sysext/core/Tests/Unit/Crypto/PasswordHashing/Argon2idPasswordHashTest.php b/typo3/sysext/core/Tests/Unit/Crypto/PasswordHashing/Argon2idPasswordHashTest.php index 576f6d7c4e40be2e0e1aafd58395a1e8f7a8fb55..4d4bf93bdaa54c822ee14ac28dc46bb0c998c32d 100644 --- a/typo3/sysext/core/Tests/Unit/Crypto/PasswordHashing/Argon2idPasswordHashTest.php +++ b/typo3/sysext/core/Tests/Unit/Crypto/PasswordHashing/Argon2idPasswordHashTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Crypto\PasswordHashing; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Crypto\PasswordHashing\Argon2idPasswordHash; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -35,9 +36,7 @@ final class Argon2idPasswordHashTest extends UnitTestCase $this->subject = new Argon2idPasswordHash($options); } - /** - * @test - */ + #[Test] public function constructorThrowsExceptionIfMemoryCostIsTooLow(): void { $this->expectException(\InvalidArgumentException::class); @@ -45,9 +44,7 @@ final class Argon2idPasswordHashTest extends UnitTestCase new Argon2idPasswordHash(['memory_cost' => 1]); } - /** - * @test - */ + #[Test] public function constructorThrowsExceptionIfTimeCostIsTooLow(): void { $this->expectException(\InvalidArgumentException::class); @@ -55,17 +52,13 @@ final class Argon2idPasswordHashTest extends UnitTestCase new Argon2idPasswordHash(['time_cost' => 1]); } - /** - * @test - */ + #[Test] public function getHashedPasswordReturnsNullOnEmptyPassword(): void { self::assertNull($this->subject->getHashedPassword('')); } - /** - * @test - */ + #[Test] public function getHashedPasswordReturnsString(): void { $hash = $this->subject->getHashedPassword('password'); @@ -73,9 +66,7 @@ final class Argon2idPasswordHashTest extends UnitTestCase self::assertIsString($hash); } - /** - * @test - */ + #[Test] public function isValidSaltedPwValidatesHastCreatedByGetHashedPassword(): void { $hash = $this->subject->getHashedPassword('password'); @@ -84,9 +75,8 @@ final class Argon2idPasswordHashTest extends UnitTestCase /** * Tests authentication procedure with alphabet characters. - * - * @test */ + #[Test] public function checkPasswordReturnsTrueForHashedPasswordWithValidAlphaCharClassPassword(): void { $password = 'aEjOtY'; @@ -96,9 +86,8 @@ final class Argon2idPasswordHashTest extends UnitTestCase /** * Tests authentication procedure with numeric characters. - * - * @test */ + #[Test] public function checkPasswordReturnsTrueForHashedPasswordWithValidNumericCharClassPassword(): void { $password = '01369'; @@ -108,9 +97,8 @@ final class Argon2idPasswordHashTest extends UnitTestCase /** * Tests authentication procedure with US-ASCII special characters. - * - * @test */ + #[Test] public function checkPasswordReturnsTrueForHashedPasswordWithValidAsciiSpecialCharClassPassword(): void { $password = ' !"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'; @@ -120,9 +108,8 @@ final class Argon2idPasswordHashTest extends UnitTestCase /** * Tests authentication procedure with latin1 special characters. - * - * @test */ + #[Test] public function checkPasswordReturnsTrueForHashedPasswordWithValidLatin1SpecialCharClassPassword(): void { $password = ''; @@ -136,9 +123,8 @@ final class Argon2idPasswordHashTest extends UnitTestCase /** * Tests authentication procedure with latin1 umlauts. - * - * @test */ + #[Test] public function checkPasswordReturnsTrueForHashedPasswordWithValidLatin1UmlautCharClassPassword(): void { $password = ''; @@ -153,9 +139,7 @@ final class Argon2idPasswordHashTest extends UnitTestCase self::assertTrue($this->subject->checkPassword($password, $hash)); } - /** - * @test - */ + #[Test] public function checkPasswordReturnsTrueForHashedPasswordWithNonValidPassword(): void { $password = 'password'; @@ -164,9 +148,7 @@ final class Argon2idPasswordHashTest extends UnitTestCase self::assertFalse($this->subject->checkPassword($password1, $hash)); } - /** - * @test - */ + #[Test] public function isHashUpdateNeededReturnsFalseForJustGeneratedHash(): void { $password = 'password'; @@ -174,9 +156,7 @@ final class Argon2idPasswordHashTest extends UnitTestCase self::assertFalse($this->subject->isHashUpdateNeeded($hash)); } - /** - * @test - */ + #[Test] public function isHashUpdateNeededReturnsTrueForHashGeneratedWithOldOptions(): void { $originalOptions = [ diff --git a/typo3/sysext/core/Tests/Unit/Crypto/PasswordHashing/BcryptPasswordHashTest.php b/typo3/sysext/core/Tests/Unit/Crypto/PasswordHashing/BcryptPasswordHashTest.php index 31121de3f7a47e08988b2c910ea4146fb111ff56..dc922b789e38c7646370b5f6ee0c5501e48d5b6c 100644 --- a/typo3/sysext/core/Tests/Unit/Crypto/PasswordHashing/BcryptPasswordHashTest.php +++ b/typo3/sysext/core/Tests/Unit/Crypto/PasswordHashing/BcryptPasswordHashTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Crypto\PasswordHashing; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Crypto\PasswordHashing\BcryptPasswordHash; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -37,9 +38,7 @@ final class BcryptPasswordHashTest extends UnitTestCase $this->subject = new BcryptPasswordHash($options); } - /** - * @test - */ + #[Test] public function constructorThrowsExceptionIfMemoryCostIsTooLow(): void { $this->expectException(\InvalidArgumentException::class); @@ -47,9 +46,7 @@ final class BcryptPasswordHashTest extends UnitTestCase new BcryptPasswordHash(['cost' => 9]); } - /** - * @test - */ + #[Test] public function constructorThrowsExceptionIfMemoryCostIsTooHigh(): void { $this->expectException(\InvalidArgumentException::class); @@ -57,17 +54,13 @@ final class BcryptPasswordHashTest extends UnitTestCase new BcryptPasswordHash(['cost' => 32]); } - /** - * @test - */ + #[Test] public function getHashedPasswordReturnsNullOnEmptyPassword(): void { self::assertNull($this->subject->getHashedPassword('')); } - /** - * @test - */ + #[Test] public function getHashedPasswordReturnsString(): void { $hash = $this->subject->getHashedPassword('password'); @@ -75,9 +68,7 @@ final class BcryptPasswordHashTest extends UnitTestCase self::assertIsString($hash); } - /** - * @test - */ + #[Test] public function isValidSaltedPwValidatesHastCreatedByGetHashedPassword(): void { $hash = $this->subject->getHashedPassword('password'); @@ -86,9 +77,8 @@ final class BcryptPasswordHashTest extends UnitTestCase /** * Tests authentication procedure with alphabet characters. - * - * @test */ + #[Test] public function checkPasswordReturnsTrueForHashedPasswordWithValidAlphaCharClassPassword(): void { $password = 'aEjOtY'; @@ -98,9 +88,8 @@ final class BcryptPasswordHashTest extends UnitTestCase /** * Tests authentication procedure with numeric characters. - * - * @test */ + #[Test] public function checkPasswordReturnsTrueForHashedPasswordWithValidNumericCharClassPassword(): void { $password = '01369'; @@ -110,9 +99,8 @@ final class BcryptPasswordHashTest extends UnitTestCase /** * Tests authentication procedure with US-ASCII special characters. - * - * @test */ + #[Test] public function checkPasswordReturnsTrueForHashedPasswordWithValidAsciiSpecialCharClassPassword(): void { $password = ' !"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'; @@ -122,9 +110,8 @@ final class BcryptPasswordHashTest extends UnitTestCase /** * Tests authentication procedure with latin1 special characters. - * - * @test */ + #[Test] public function checkPasswordReturnsTrueForHashedPasswordWithValidLatin1SpecialCharClassPassword(): void { $password = ''; @@ -138,9 +125,8 @@ final class BcryptPasswordHashTest extends UnitTestCase /** * Tests authentication procedure with latin1 umlauts. - * - * @test */ + #[Test] public function checkPasswordReturnsTrueForHashedPasswordWithValidLatin1UmlautCharClassPassword(): void { $password = ''; @@ -155,9 +141,7 @@ final class BcryptPasswordHashTest extends UnitTestCase self::assertTrue($this->subject->checkPassword($password, $hash)); } - /** - * @test - */ + #[Test] public function checkPasswordReturnsTrueForHashedPasswordWithNonValidPassword(): void { $password = 'password'; @@ -166,18 +150,14 @@ final class BcryptPasswordHashTest extends UnitTestCase self::assertFalse($this->subject->checkPassword($password1, $hash)); } - /** - * @test - */ + #[Test] public function isHashUpdateNeededReturnsFalseForJustGeneratedHash(): void { $hash = $this->subject->getHashedPassword('password'); self::assertFalse($this->subject->isHashUpdateNeeded($hash)); } - /** - * @test - */ + #[Test] public function isHashUpdateNeededReturnsTrueForHashGeneratedWithOldOptions(): void { $subject = new BcryptPasswordHash(['cost' => 10]); @@ -188,9 +168,8 @@ final class BcryptPasswordHashTest extends UnitTestCase /** * Bcrypt truncates on NUL characters by default - * - * @test */ + #[Test] public function getHashedPasswordDoesNotTruncateOnNul(): void { $password1 = 'pass' . "\x00" . 'word'; @@ -201,9 +180,8 @@ final class BcryptPasswordHashTest extends UnitTestCase /** * Bcrypt truncates after 72 characters by default - * - * @test */ + #[Test] public function getHashedPasswordDoesNotTruncateAfter72Chars(): void { $prefix = str_repeat('a', 72); diff --git a/typo3/sysext/core/Tests/Unit/Crypto/PasswordHashing/BlowfishPasswordHashTest.php b/typo3/sysext/core/Tests/Unit/Crypto/PasswordHashing/BlowfishPasswordHashTest.php index c12fbf7f1f625baf5552dd8157d73da70257381e..ec312953c07b9dee660030293d868b7f5b9bf2fe 100644 --- a/typo3/sysext/core/Tests/Unit/Crypto/PasswordHashing/BlowfishPasswordHashTest.php +++ b/typo3/sysext/core/Tests/Unit/Crypto/PasswordHashing/BlowfishPasswordHashTest.php @@ -17,14 +17,13 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Crypto\PasswordHashing; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Crypto\PasswordHashing\BlowfishPasswordHash; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class BlowfishPasswordHashTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function constructorThrowsExceptionIfHashCountIsTooLow(): void { $this->expectException(\InvalidArgumentException::class); @@ -32,9 +31,7 @@ final class BlowfishPasswordHashTest extends UnitTestCase new BlowfishPasswordHash(['hash_count' => 3]); } - /** - * @test - */ + #[Test] public function constructorThrowsExceptionIfHashCountIsTooHigh(): void { $this->expectException(\InvalidArgumentException::class); @@ -42,27 +39,21 @@ final class BlowfishPasswordHashTest extends UnitTestCase new BlowfishPasswordHash(['hash_count' => 18]); } - /** - * @test - */ + #[Test] public function getHashedPasswordWithEmptyPasswordResultsInNullSaltedPassword(): void { $password = ''; self::assertNull((new BlowfishPasswordHash(['hash_count' => 4]))->getHashedPassword($password)); } - /** - * @test - */ + #[Test] public function getHashedPasswordWithNonEmptyPasswordResultsInNonNullSaltedPassword(): void { $password = 'a'; self::assertNotNull((new BlowfishPasswordHash(['hash_count' => 4]))->getHashedPassword($password)); } - /** - * @test - */ + #[Test] public function getHashedPasswordValidates(): void { $password = 'password'; @@ -76,9 +67,8 @@ final class BlowfishPasswordHashTest extends UnitTestCase * * Checks if a "plain-text password" is every time mapped to the * same "salted password hash" when using the same fixed salt. - * - * @test */ + #[Test] public function checkPasswordReturnsTrueWithValidAlphaCharClassPasswordAndFixedHash(): void { $password = 'password'; @@ -88,9 +78,8 @@ final class BlowfishPasswordHashTest extends UnitTestCase /** * Tests that authentication procedure fails with broken hash to compare to - * - * @test */ + #[Test] public function checkPasswordReturnsFalseFailsWithBrokenHash(): void { $password = 'password'; @@ -103,9 +92,8 @@ final class BlowfishPasswordHashTest extends UnitTestCase * * Checks if a "plain-text password" is every time mapped to the * same "salted password hash" when using the same salt. - * - * @test */ + #[Test] public function checkPasswordReturnsTrueWithValidAlphaCharClassPassword(): void { $password = 'aEjOtY'; @@ -119,9 +107,8 @@ final class BlowfishPasswordHashTest extends UnitTestCase * * Checks if a "plain-text password" is every time mapped to the * same "salted password hash" when using the same salt. - * - * @test */ + #[Test] public function checkPasswordReturnsTrueWithValidNumericCharClassPassword(): void { $password = '01369'; @@ -135,9 +122,8 @@ final class BlowfishPasswordHashTest extends UnitTestCase * * Checks if a "plain-text password" is every time mapped to the * same "salted password hash" when using the same salt. - * - * @test */ + #[Test] public function checkPasswordReturnsTrueWithValidAsciiSpecialCharClassPassword(): void { $password = ' !"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'; @@ -151,9 +137,8 @@ final class BlowfishPasswordHashTest extends UnitTestCase * * Checks if a "plain-text password" is every time mapped to the * same "salted password hash" when using the same salt. - * - * @test */ + #[Test] public function checkPasswordReturnsTrueWithValidLatin1SpecialCharClassPassword(): void { $password = ''; @@ -171,9 +156,8 @@ final class BlowfishPasswordHashTest extends UnitTestCase * * Checks if a "plain-text password" is every time mapped to the * same "salted password hash" when using the same salt. - * - * @test */ + #[Test] public function checkPasswordReturnsReturnsTrueWithValidLatin1UmlautCharClassPassword(): void { $password = ''; @@ -191,9 +175,7 @@ final class BlowfishPasswordHashTest extends UnitTestCase self::assertTrue($subject->checkPassword($password, $saltedHashPassword)); } - /** - * @test - */ + #[Test] public function checkPasswordReturnsFalseWithNonValidPassword(): void { $password = 'password'; @@ -203,9 +185,7 @@ final class BlowfishPasswordHashTest extends UnitTestCase self::assertFalse($subject->checkPassword($password1, $saltedHashPassword)); } - /** - * @test - */ + #[Test] public function isHashUpdateNeededReturnsFalseForValidSaltedPassword(): void { $password = 'password'; @@ -214,9 +194,7 @@ final class BlowfishPasswordHashTest extends UnitTestCase self::assertFalse($subject->isHashUpdateNeeded($saltedHashPassword)); } - /** - * @test - */ + #[Test] public function isHashUpdateNeededReturnsTrueForHashGeneratedWithOldOptions(): void { $subject = new BlowfishPasswordHash(['hash_count' => 4]); diff --git a/typo3/sysext/core/Tests/Unit/Crypto/PasswordHashing/Md5PasswordHashTest.php b/typo3/sysext/core/Tests/Unit/Crypto/PasswordHashing/Md5PasswordHashTest.php index 74acbfece14d272339d798d8122586edd2492e01..a67ffff8596f434115564c116d09fb4159610775 100644 --- a/typo3/sysext/core/Tests/Unit/Crypto/PasswordHashing/Md5PasswordHashTest.php +++ b/typo3/sysext/core/Tests/Unit/Crypto/PasswordHashing/Md5PasswordHashTest.php @@ -17,30 +17,25 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Crypto\PasswordHashing; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Crypto\PasswordHashing\Md5PasswordHash; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class Md5PasswordHashTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getHashedPasswordReturnsNullWithEmptyPassword(): void { self::assertNull((new Md5PasswordHash())->getHashedPassword('')); } - /** - * @test - */ + #[Test] public function getHashedPasswordReturnsNotNullWithNonEmptyPassword(): void { self::assertNotNull((new Md5PasswordHash())->getHashedPassword('a')); } - /** - * @test - */ + #[Test] public function getHashedPasswordCreatesAHashThatValidates(): void { $password = 'password'; @@ -54,9 +49,8 @@ final class Md5PasswordHashTest extends UnitTestCase * * Checks if a "plain-text password" is every time mapped to the * same "salted password hash" when using the same fixed salt. - * - * @test */ + #[Test] public function checkPasswordReturnsTrueWithValidAlphaCharClassPasswordAndFixedHash(): void { $password = 'password'; @@ -66,9 +60,8 @@ final class Md5PasswordHashTest extends UnitTestCase /** * Tests that authentication procedure fails with broken hash to compare to - * - * @test */ + #[Test] public function checkPasswordReturnsFalseWithBrokenHash(): void { $password = 'password'; @@ -81,9 +74,8 @@ final class Md5PasswordHashTest extends UnitTestCase * * Checks if a "plain-text password" is every time mapped to the * same "salted password hash" when using the same salt. - * - * @test */ + #[Test] public function checkPasswordReturnsTrueWithValidAlphaCharClassPassword(): void { $password = 'aEjOtY'; @@ -97,9 +89,8 @@ final class Md5PasswordHashTest extends UnitTestCase * * Checks if a "plain-text password" is every time mapped to the * same "salted password hash" when using the same salt. - * - * @test */ + #[Test] public function checkPasswordReturnsTrueWithValidNumericCharClassPassword(): void { $password = '01369'; @@ -113,9 +104,8 @@ final class Md5PasswordHashTest extends UnitTestCase * * Checks if a "plain-text password" is every time mapped to the * same "salted password hash" when using the same salt. - * - * @test */ + #[Test] public function checkPasswordReturnsTrueWithValidAsciiSpecialCharClassPassword(): void { $password = ' !"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'; @@ -129,9 +119,8 @@ final class Md5PasswordHashTest extends UnitTestCase * * Checks if a "plain-text password" is every time mapped to the * same "salted password hash" when using the same salt. - * - * @test */ + #[Test] public function checkPasswordReturnsTrueWithValidLatin1SpecialCharClassPassword(): void { $password = ''; @@ -149,9 +138,8 @@ final class Md5PasswordHashTest extends UnitTestCase * * Checks if a "plain-text password" is every time mapped to the * same "salted password hash" when using the same salt. - * - * @test */ + #[Test] public function checkPasswordReturnsTrueWithValidLatin1UmlautCharClassPassword(): void { $password = ''; @@ -169,9 +157,7 @@ final class Md5PasswordHashTest extends UnitTestCase self::assertTrue($subject->checkPassword($password, $saltedHashPassword)); } - /** - * @test - */ + #[Test] public function checkPasswordReturnsFalseWithNonValidPassword(): void { $password = 'password'; @@ -181,9 +167,7 @@ final class Md5PasswordHashTest extends UnitTestCase self::assertFalse($subject->checkPassword($password1, $saltedHashPassword)); } - /** - * @test - */ + #[Test] public function isHashUpdateNeededReturnsFalse(): void { $password = 'password'; diff --git a/typo3/sysext/core/Tests/Unit/Crypto/PasswordHashing/PasswordHashFactoryTest.php b/typo3/sysext/core/Tests/Unit/Crypto/PasswordHashing/PasswordHashFactoryTest.php index 4d98683b8efa99b1e8fdcafd318e859e85acfa50..f72fc368a5a2358a231c02a4d2c4a01b240cea51 100644 --- a/typo3/sysext/core/Tests/Unit/Crypto/PasswordHashing/PasswordHashFactoryTest.php +++ b/typo3/sysext/core/Tests/Unit/Crypto/PasswordHashing/PasswordHashFactoryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Crypto\PasswordHashing; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Crypto\PasswordHashing\Argon2iPasswordHash; use TYPO3\CMS\Core\Crypto\PasswordHashing\InvalidPasswordHashException; use TYPO3\CMS\Core\Crypto\PasswordHashing\PasswordHashFactory; @@ -27,9 +28,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class PasswordHashFactoryTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getThrowsExceptionIfModeIsNotBeOrFe(): void { $this->expectException(\InvalidArgumentException::class); @@ -37,9 +36,7 @@ final class PasswordHashFactoryTest extends UnitTestCase (new PasswordHashFactory())->get('ThisIsNotAValidHash', 'foo'); } - /** - * @test - */ + #[Test] public function getThrowsExceptionWithBrokenClassNameModeConfiguration(): void { $this->expectException(\LogicException::class); @@ -48,9 +45,7 @@ final class PasswordHashFactoryTest extends UnitTestCase (new PasswordHashFactory())->get('ThisIsNotAValidHash', 'FE'); } - /** - * @test - */ + #[Test] public function getThrowsExceptionWithBrokenOptionsModeConfiguration(): void { $this->expectException(\LogicException::class); @@ -59,9 +54,7 @@ final class PasswordHashFactoryTest extends UnitTestCase (new PasswordHashFactory())->get('ThisIsNotAValidHash', 'FE'); } - /** - * @test - */ + #[Test] public function getThrowsExceptionIfARegisteredHashDoesNotImplementSaltInterface(): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['availablePasswordHashAlgorithms'] = [ \stdClass::class ]; @@ -70,9 +63,7 @@ final class PasswordHashFactoryTest extends UnitTestCase (new PasswordHashFactory())->get('ThisIsNotAValidHash', 'BE'); } - /** - * @test - */ + #[Test] public function getThrowsExceptionIfNoClassIsFoundThatHandlesGivenHash(): void { $this->expectException(InvalidPasswordHashException::class); @@ -80,9 +71,7 @@ final class PasswordHashFactoryTest extends UnitTestCase (new PasswordHashFactory())->get('ThisIsNotAValidHash', 'BE'); } - /** - * @test - */ + #[Test] public function getThrowsExceptionIfClassThatHandlesAHashIsNotAvailable(): void { $phpassPasswordHashMock = $this->createMock(PhpassPasswordHash::class); @@ -93,9 +82,7 @@ final class PasswordHashFactoryTest extends UnitTestCase (new PasswordHashFactory())->get('$P$C7u7E10SBEie/Jbdz0jDtUcWhzgOPF.', 'BE'); } - /** - * @test - */ + #[Test] public function getThrowsExceptionIfClassThatHandlesAHashSaysNoToHash(): void { GeneralUtility::addInstance(PhpassPasswordHash::class, new PhpassPasswordHash()); @@ -105,9 +92,7 @@ final class PasswordHashFactoryTest extends UnitTestCase (new PasswordHashFactory())->get($hash, 'BE'); } - /** - * @test - */ + #[Test] public function getHandsConfiguredOptionsToHashClassIfMethodIsConfiguredDefaultForMode(): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['availablePasswordHashAlgorithms'] = [ TestPasswordHash::class ]; @@ -122,9 +107,7 @@ final class PasswordHashFactoryTest extends UnitTestCase (new PasswordHashFactory())->get('someHash', 'FE'); } - /** - * @test - */ + #[Test] public function getReturnsInstanceOfHashClassThatHandlesHash(): void { $phpassPasswordHash = new PhpassPasswordHash(); @@ -133,9 +116,7 @@ final class PasswordHashFactoryTest extends UnitTestCase self::assertSame($phpassPasswordHash, (new PasswordHashFactory())->get($hash, 'BE')); } - /** - * @test - */ + #[Test] public function getDefaultHashInstanceThrowsExceptionIfModeIsNotBeOrFe(): void { $this->expectException(\InvalidArgumentException::class); @@ -143,9 +124,7 @@ final class PasswordHashFactoryTest extends UnitTestCase (new PasswordHashFactory())->getDefaultHashInstance('foo'); } - /** - * @test - */ + #[Test] public function getDefaultHashInstanceThrowsExceptionWithBrokenClassNameModeConfiguration(): void { $this->expectException(\LogicException::class); @@ -154,9 +133,7 @@ final class PasswordHashFactoryTest extends UnitTestCase (new PasswordHashFactory())->getDefaultHashInstance('FE'); } - /** - * @test - */ + #[Test] public function getDefaultHashInstanceThrowsExceptionWithBrokenOptionsModeConfiguration(): void { $this->expectException(\LogicException::class); @@ -165,9 +142,7 @@ final class PasswordHashFactoryTest extends UnitTestCase (new PasswordHashFactory())->getDefaultHashInstance('FE'); } - /** - * @test - */ + #[Test] public function getDefaultHashReturnsInstanceOfConfiguredDefaultFeMethod(): void { $GLOBALS['TYPO3_CONF_VARS']['EXTENSIONS']['saltedpasswords']['FE']['saltedPWHashingMethod'] = Argon2iPasswordHash::class; @@ -175,9 +150,7 @@ final class PasswordHashFactoryTest extends UnitTestCase self::assertInstanceOf(Argon2iPasswordHash::class, $hashInstance); } - /** - * @test - */ + #[Test] public function getDefaultHashReturnsInstanceOfConfiguredDefaultBeMethod(): void { $GLOBALS['TYPO3_CONF_VARS']['EXTENSIONS']['saltedpasswords']['BE']['saltedPWHashingMethod'] = Argon2iPasswordHash::class; @@ -185,9 +158,7 @@ final class PasswordHashFactoryTest extends UnitTestCase self::assertInstanceOf(Argon2iPasswordHash::class, $hashInstance); } - /** - * @test - */ + #[Test] public function getDefaultHashThrowsExceptionIfDefaultHashMethodDoesNotImplementSaltInterface(): void { $GLOBALS['TYPO3_CONF_VARS']['BE']['passwordHashing']['className'] = \stdClass::class; @@ -197,9 +168,7 @@ final class PasswordHashFactoryTest extends UnitTestCase (new PasswordHashFactory())->getDefaultHashInstance('BE'); } - /** - * @test - */ + #[Test] public function getDefaultHashThrowsExceptionIfDefaultHashMethodIsNotRegistered(): void { $GLOBALS['TYPO3_CONF_VARS']['BE']['passwordHashing']['className'] = \stdClass::class; @@ -209,9 +178,7 @@ final class PasswordHashFactoryTest extends UnitTestCase (new PasswordHashFactory())->getDefaultHashInstance('BE'); } - /** - * @test - */ + #[Test] public function getDefaultHashThrowsExceptionIfDefaultHashMethodIsNotAvailable(): void { $argon2iPasswordHashMock = $this->createMock(Argon2iPasswordHash::class); @@ -223,9 +190,7 @@ final class PasswordHashFactoryTest extends UnitTestCase (new PasswordHashFactory())->getDefaultHashInstance('BE'); } - /** - * @test - */ + #[Test] public function getDefaultHoshHandsConfiguredOptionsToHashClass(): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['availablePasswordHashAlgorithms'] = [ TestPasswordHash::class ]; @@ -240,9 +205,7 @@ final class PasswordHashFactoryTest extends UnitTestCase (new PasswordHashFactory())->getDefaultHashInstance('FE'); } - /** - * @test - */ + #[Test] public function getRegisteredSaltedHashingMethodsReturnsRegisteredMethods(): void { $methods = [ @@ -253,9 +216,7 @@ final class PasswordHashFactoryTest extends UnitTestCase self::assertSame($methods, PasswordHashFactory::getRegisteredSaltedHashingMethods()); } - /** - * @test - */ + #[Test] public function getRegisteredSaltedHashingMethodsThrowsExceptionIfNoMethodIsConfigured(): void { $this->expectException(\RuntimeException::class); diff --git a/typo3/sysext/core/Tests/Unit/Crypto/PasswordHashing/Pbkdf2PasswordHashTest.php b/typo3/sysext/core/Tests/Unit/Crypto/PasswordHashing/Pbkdf2PasswordHashTest.php index c56a46520f80635a8f067263ce3aed1fafe5def4..26034af26a14b1d527065d026aeed6a3dbfa38d3 100644 --- a/typo3/sysext/core/Tests/Unit/Crypto/PasswordHashing/Pbkdf2PasswordHashTest.php +++ b/typo3/sysext/core/Tests/Unit/Crypto/PasswordHashing/Pbkdf2PasswordHashTest.php @@ -17,14 +17,13 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Crypto\PasswordHashing; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Crypto\PasswordHashing\Pbkdf2PasswordHash; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class Pbkdf2PasswordHashTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function constructorThrowsExceptionIfHashCountIsTooLow(): void { $this->expectException(\InvalidArgumentException::class); @@ -32,9 +31,7 @@ final class Pbkdf2PasswordHashTest extends UnitTestCase new Pbkdf2PasswordHash(['hash_count' => 999]); } - /** - * @test - */ + #[Test] public function constructorThrowsExceptionIfHashCountIsTooHigh(): void { $this->expectException(\InvalidArgumentException::class); @@ -42,9 +39,7 @@ final class Pbkdf2PasswordHashTest extends UnitTestCase new Pbkdf2PasswordHash(['hash_count' => 10000001]); } - /** - * @test - */ + #[Test] public function getHashedPasswordReturnsNullWithEmptyPassword(): void { $password = ''; @@ -52,9 +47,7 @@ final class Pbkdf2PasswordHashTest extends UnitTestCase self::assertNull($subject->getHashedPassword($password)); } - /** - * @test - */ + #[Test] public function getHashedPasswordReturnsNotNullWithNullPassword(): void { $password = 'a'; @@ -62,9 +55,7 @@ final class Pbkdf2PasswordHashTest extends UnitTestCase self::assertNotNull($subject->getHashedPassword($password)); } - /** - * @test - */ + #[Test] public function getHashedPasswordValidates(): void { $password = 'password'; @@ -78,9 +69,8 @@ final class Pbkdf2PasswordHashTest extends UnitTestCase * * Checks if a "plain-text password" is every time mapped to the * same "salted password hash" when using the same fixed salt. - * - * @test */ + #[Test] public function checkPasswordReturnsTrueWithValidAlphaCharClassPasswordAndFixedHash(): void { $password = 'password'; @@ -91,9 +81,8 @@ final class Pbkdf2PasswordHashTest extends UnitTestCase /** * Tests that authentication procedure fails with broken hash to compare to - * - * @test */ + #[Test] public function checkPasswordReturnsFalseWithBrokenHash(): void { $password = 'password'; @@ -107,9 +96,8 @@ final class Pbkdf2PasswordHashTest extends UnitTestCase * * Checks if a "plain-text password" is every time mapped to the * same "salted password hash" when using the same salt. - * - * @test */ + #[Test] public function checkPasswordReturnsTrueWithValidAlphaCharClassPassword(): void { $password = 'aEjOtY'; @@ -123,9 +111,8 @@ final class Pbkdf2PasswordHashTest extends UnitTestCase * * Checks if a "plain-text password" is every time mapped to the * same "salted password hash" when using the same salt. - * - * @test */ + #[Test] public function checkPasswordReturnsTrueWithValidNumericCharClassPassword(): void { $password = '01369'; @@ -139,9 +126,8 @@ final class Pbkdf2PasswordHashTest extends UnitTestCase * * Checks if a "plain-text password" is every time mapped to the * same "salted password hash" when using the same salt. - * - * @test */ + #[Test] public function checkPasswordReturnsTrueWithValidAsciiSpecialCharClassPassword(): void { $password = ' !"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'; @@ -155,9 +141,8 @@ final class Pbkdf2PasswordHashTest extends UnitTestCase * * Checks if a "plain-text password" is every time mapped to the * same "salted password hash" when using the same salt. - * - * @test */ + #[Test] public function checkPasswordReturnsTrueWithValidLatin1SpecialCharClassPassword(): void { $password = ''; @@ -175,9 +160,8 @@ final class Pbkdf2PasswordHashTest extends UnitTestCase * * Checks if a "plain-text password" is every time mapped to the * same "salted password hash" when using the same salt. - * - * @test */ + #[Test] public function checkPasswordReturnsTrueWithValidLatin1UmlautCharClassPassword(): void { $password = ''; @@ -195,9 +179,7 @@ final class Pbkdf2PasswordHashTest extends UnitTestCase self::assertTrue($subject->checkPassword($password, $saltedHashPassword)); } - /** - * @test - */ + #[Test] public function checkPasswordReturnsFalseWithNonValidPassword(): void { $password = 'password'; @@ -207,9 +189,7 @@ final class Pbkdf2PasswordHashTest extends UnitTestCase self::assertFalse($subject->checkPassword($password1, $saltedHashPassword)); } - /** - * @test - */ + #[Test] public function isHashUpdateNeededReturnsFalseForValidSaltedPassword(): void { $password = 'password'; @@ -218,9 +198,7 @@ final class Pbkdf2PasswordHashTest extends UnitTestCase self::assertFalse($subject->isHashUpdateNeeded($saltedHashPassword)); } - /** - * @test - */ + #[Test] public function isHashUpdateNeededReturnsTrueWithChangedHashCount(): void { $subject = new Pbkdf2PasswordHash(['hash_count' => 1000]); @@ -229,9 +207,7 @@ final class Pbkdf2PasswordHashTest extends UnitTestCase self::assertTrue($subject->isHashUpdateNeeded($saltedHashPassword)); } - /** - * @test - */ + #[Test] public function checkPasswordIsCompatibleWithPythonPasslibHashes(): void { $passlibSaltedHash = '$pbkdf2-sha256$6400$.6UI/S.nXIk8jcbdHx3Fhg$98jZicV16ODfEsEZeYPGHU3kbrUrvUEXOPimVSQDD44'; diff --git a/typo3/sysext/core/Tests/Unit/Crypto/PasswordHashing/PhpassPasswordHashTest.php b/typo3/sysext/core/Tests/Unit/Crypto/PasswordHashing/PhpassPasswordHashTest.php index cf201d689c053641689b8d8542f96b3ef660af3b..48a605dbf0ba42476e3d34aad0144ca624f40c60 100644 --- a/typo3/sysext/core/Tests/Unit/Crypto/PasswordHashing/PhpassPasswordHashTest.php +++ b/typo3/sysext/core/Tests/Unit/Crypto/PasswordHashing/PhpassPasswordHashTest.php @@ -17,14 +17,13 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Crypto\PasswordHashing; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Crypto\PasswordHashing\PhpassPasswordHash; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class PhpassPasswordHashTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function constructorThrowsExceptionIfHashCountIsTooLow(): void { $this->expectException(\InvalidArgumentException::class); @@ -32,9 +31,7 @@ final class PhpassPasswordHashTest extends UnitTestCase new PhpassPasswordHash(['hash_count' => 6]); } - /** - * @test - */ + #[Test] public function constructorThrowsExceptionIfHashCountIsTooHigh(): void { $this->expectException(\InvalidArgumentException::class); @@ -42,27 +39,21 @@ final class PhpassPasswordHashTest extends UnitTestCase new PhpassPasswordHash(['hash_count' => 25]); } - /** - * @test - */ + #[Test] public function getHashedPasswordReturnsNullWithEmptyPassword(): void { $subject = new PhpassPasswordHash(['hash_count' => 7]); self::assertNull($subject->getHashedPassword('')); } - /** - * @test - */ + #[Test] public function getHashedPasswordReturnsNotNullWithNotEmptyPassword(): void { $subject = new PhpassPasswordHash(['hash_count' => 7]); self::assertNotNull($subject->getHashedPassword('a')); } - /** - * @test - */ + #[Test] public function getHashedPasswordValidates(): void { $password = 'password'; @@ -76,9 +67,8 @@ final class PhpassPasswordHashTest extends UnitTestCase * * Checks if a "plain-text password" is every time mapped to the * same "salted password hash" when using the same fixed salt. - * - * @test */ + #[Test] public function checkPasswordReturnsTrueWithValidAlphaCharClassPasswordAndFixedHash(): void { $password = 'password'; @@ -89,9 +79,8 @@ final class PhpassPasswordHashTest extends UnitTestCase /** * Tests that authentication procedure fails with broken hash to compare to - * - * @test */ + #[Test] public function checkPasswordReturnsFalseWithBrokenHash(): void { $password = 'password'; @@ -105,9 +94,8 @@ final class PhpassPasswordHashTest extends UnitTestCase * * Checks if a "plain-text password" is every time mapped to the * same "salted password hash" when using the same salt. - * - * @test */ + #[Test] public function checkPasswordReturnsTrueWithValidAlphaCharClassPassword(): void { $password = 'aEjOtY'; @@ -121,9 +109,8 @@ final class PhpassPasswordHashTest extends UnitTestCase * * Checks if a "plain-text password" is every time mapped to the * same "salted password hash" when using the same salt. - * - * @test */ + #[Test] public function checkPasswordReturnsTrueWithValidNumericCharClassPassword(): void { $password = '01369'; @@ -137,9 +124,8 @@ final class PhpassPasswordHashTest extends UnitTestCase * * Checks if a "plain-text password" is every time mapped to the * same "salted password hash" when using the same salt. - * - * @test */ + #[Test] public function checkPasswordReturnsTrueWithValidAsciiSpecialCharClassPassword(): void { $password = ' !"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'; @@ -153,9 +139,8 @@ final class PhpassPasswordHashTest extends UnitTestCase * * Checks if a "plain-text password" is every time mapped to the * same "salted password hash" when using the same salt. - * - * @test */ + #[Test] public function checkPasswordReturnsTrueWithValidLatin1SpecialCharClassPassword(): void { $password = ''; @@ -173,9 +158,8 @@ final class PhpassPasswordHashTest extends UnitTestCase * * Checks if a "plain-text password" is every time mapped to the * same "salted password hash" when using the same salt. - * - * @test */ + #[Test] public function checkPasswordReturnsTrueWithValidLatin1UmlautCharClassPassword(): void { $password = ''; @@ -193,9 +177,7 @@ final class PhpassPasswordHashTest extends UnitTestCase self::assertTrue($subject->checkPassword($password, $saltedHashPassword)); } - /** - * @test - */ + #[Test] public function checkPasswordReturnsFalseWithNonValidPassword(): void { $password = 'password'; @@ -205,9 +187,7 @@ final class PhpassPasswordHashTest extends UnitTestCase self::assertFalse($subject->checkPassword($password1, $saltedHashPassword)); } - /** - * @test - */ + #[Test] public function isHashUpdateNeededReturnsFalseForValidSaltedPassword(): void { $password = 'password'; @@ -216,9 +196,7 @@ final class PhpassPasswordHashTest extends UnitTestCase self::assertFalse($subject->isHashUpdateNeeded($saltedHashPassword)); } - /** - * @test - */ + #[Test] public function isHashUpdateNeededReturnsFalseForChangedHashCountSaltedPassword(): void { $password = 'password'; diff --git a/typo3/sysext/core/Tests/Unit/Crypto/RandomTest.php b/typo3/sysext/core/Tests/Unit/Crypto/RandomTest.php index 40ad40f208145f2c4d8dac046bf9007590086751..c90a437bf16d872a666ed396d077edd5ea646acc 100644 --- a/typo3/sysext/core/Tests/Unit/Crypto/RandomTest.php +++ b/typo3/sysext/core/Tests/Unit/Crypto/RandomTest.php @@ -17,15 +17,15 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Crypto; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Crypto\Random; use TYPO3\CMS\Core\Exception\InvalidPasswordRulesException; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class RandomTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function generateRandomBytesReturnsExpectedAmountOfBytes(): void { $subject = new Random(); @@ -57,10 +57,10 @@ final class RandomTest extends UnitTestCase } /** - * @test - * @dataProvider generateRandomHexStringReturnsExpectedAmountOfCharsDataProvider * @param int $numberOfChars Number of Chars to generate */ + #[DataProvider('generateRandomHexStringReturnsExpectedAmountOfCharsDataProvider')] + #[Test] public function generateRandomHexStringReturnsExpectedAmountOfChars($numberOfChars): void { $subject = new Random(); @@ -91,10 +91,8 @@ final class RandomTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider generateRandomPasswordThrowsInvalidPasswordRulesExceptionDataProvider - */ + #[DataProvider('generateRandomPasswordThrowsInvalidPasswordRulesExceptionDataProvider')] + #[Test] public function generateRandomPasswordThrowsInvalidPasswordRulesException( array $passwordRules, int $exceptionCode @@ -124,10 +122,8 @@ final class RandomTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider generateRandomPasswordGeneratesRandomWithEncodingDataProvider - */ + #[DataProvider('generateRandomPasswordGeneratesRandomWithEncodingDataProvider')] + #[Test] public function generateRandomPasswordGeneratesRandomWithEncoding( array $passwordRules, string $pattern @@ -163,10 +159,8 @@ final class RandomTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider generateRandomPasswordGeneratesRandomWithCharacterSetsDataProvider - */ + #[DataProvider('generateRandomPasswordGeneratesRandomWithCharacterSetsDataProvider')] + #[Test] public function generateRandomPasswordGeneratesRandomWithCharacterSets( array $passwordRules, string $pattern @@ -202,10 +196,8 @@ final class RandomTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider generateRandomPasswordGeneratesRandomWithLengthDataProvider - */ + #[DataProvider('generateRandomPasswordGeneratesRandomWithLengthDataProvider')] + #[Test] public function generateRandomPasswordGeneratesRandomWithLength( array $passwordRules, int $length diff --git a/typo3/sysext/core/Tests/Unit/DataHandling/DataHandlerTest.php b/typo3/sysext/core/Tests/Unit/DataHandling/DataHandlerTest.php index 53ca88f553921b95b1adb1f25ad5ed37e672198e..d4d1300c881ff037bfd10ea024c5d06bc154e9d1 100644 --- a/typo3/sysext/core/Tests/Unit/DataHandling/DataHandlerTest.php +++ b/typo3/sysext/core/Tests/Unit/DataHandling/DataHandlerTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\DataHandling; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use Psr\EventDispatcher\EventDispatcherInterface; use Symfony\Component\Uid\Uuid; @@ -29,7 +31,8 @@ use TYPO3\CMS\Core\DataHandling\DataHandlerCheckModifyAccessListHookInterface; use TYPO3\CMS\Core\Localization\LanguageService; use TYPO3\CMS\Core\PasswordPolicy\Event\EnrichPasswordValidationContextDataEvent; use TYPO3\CMS\Core\PasswordPolicy\Validator\Dto\ContextData; -use TYPO3\CMS\Core\SysLog; +use TYPO3\CMS\Core\SysLog\Action; +use TYPO3\CMS\Core\SysLog\Error; use TYPO3\CMS\Core\Tests\Unit\DataHandling\Fixtures\AllowAccessHookFixture; use TYPO3\CMS\Core\Tests\Unit\DataHandling\Fixtures\InvalidHookFixture; use TYPO3\CMS\Core\Tests\Unit\DataHandling\Fixtures\UserOddNumberFilter; @@ -56,9 +59,7 @@ final class DataHandlerTest extends UnitTestCase $this->subject->start([], [], $this->backendUserMock); } - /** - * @test - */ + #[Test] public function fixtureCanBeCreated(): void { self::assertInstanceOf(DataHandler::class, $this->subject); @@ -67,27 +68,21 @@ final class DataHandlerTest extends UnitTestCase ////////////////////////////////////////// // Test concerning checkModifyAccessList ////////////////////////////////////////// - /** - * @test - */ + #[Test] public function adminIsAllowedToModifyNonAdminTable(): void { $this->subject->admin = true; self::assertTrue($this->subject->checkModifyAccessList('tt_content')); } - /** - * @test - */ + #[Test] public function nonAdminIsNorAllowedToModifyNonAdminTable(): void { $this->subject->admin = false; self::assertFalse($this->subject->checkModifyAccessList('tt_content')); } - /** - * @test - */ + #[Test] public function nonAdminWithTableModifyAccessIsAllowedToModifyNonAdminTable(): void { $this->subject->admin = false; @@ -95,27 +90,21 @@ final class DataHandlerTest extends UnitTestCase self::assertTrue($this->subject->checkModifyAccessList('tt_content')); } - /** - * @test - */ + #[Test] public function adminIsAllowedToModifyAdminTable(): void { $this->subject->admin = true; self::assertTrue($this->subject->checkModifyAccessList('be_users')); } - /** - * @test - */ + #[Test] public function nonAdminIsNotAllowedToModifyAdminTable(): void { $this->subject->admin = false; self::assertFalse($this->subject->checkModifyAccessList('be_users')); } - /** - * @test - */ + #[Test] public function nonAdminWithTableModifyAccessIsNotAllowedToModifyAdminTable(): void { $tableName = StringUtility::getUniqueId('aTable'); @@ -144,10 +133,8 @@ final class DataHandlerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider checkValueForDatetimeDataProvider - */ + #[DataProvider('checkValueForDatetimeDataProvider')] + #[Test] public function checkValueForDatetime($input, $serverTimezone, $expectedOutput): void { $oldTimezone = date_default_timezone_get(); @@ -177,10 +164,8 @@ final class DataHandlerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider checkValueForColorDataProvider - */ + #[DataProvider('checkValueForColorDataProvider')] + #[Test] public function checkValueForColor(string $input, mixed $expected, array $additionalFieldConfig = []): void { $output = $this->subject->_call( @@ -192,9 +177,7 @@ final class DataHandlerTest extends UnitTestCase self::assertEquals($expected, $output['value'] ?? null); } - /** - * @test - */ + #[Test] public function checkValuePasswordWithSaltedPasswordKeepsExistingHash(): void { // Note the involved salted passwords are NOT mocked since the factory is static @@ -203,9 +186,7 @@ final class DataHandlerTest extends UnitTestCase self::assertSame($inputValue, $result['value']); } - /** - * @test - */ + #[Test] public function checkValuePasswordWithSaltedPasswordReturnsHashForSaltedPassword(): void { $event = new EnrichPasswordValidationContextDataEvent(new ContextData(), [], ''); @@ -249,10 +230,8 @@ final class DataHandlerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider numberValueCheckRecognizesStringValuesAsIntegerValuesCorrectlyDataProvider - */ + #[DataProvider('numberValueCheckRecognizesStringValuesAsIntegerValuesCorrectlyDataProvider')] + #[Test] public function numberValueCheckRecognizesStringValuesAsIntegerValuesCorrectly(string $value, int $expectedReturnValue): void { $tcaFieldConf = [ @@ -304,10 +283,8 @@ final class DataHandlerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider numberValueCheckRecognizesDecimalStringValuesAsFloatValuesCorrectlyDataProvider - */ + #[DataProvider('numberValueCheckRecognizesDecimalStringValuesAsFloatValuesCorrectlyDataProvider')] + #[Test] public function numberValueCheckRecognizesDecimalStringValuesAsFloatValuesCorrectly(string $value, string $expectedReturnValue): void { $tcaFieldConf = [ @@ -351,10 +328,8 @@ final class DataHandlerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider inputValuesRangeDoubleDataProvider - */ + #[DataProvider('inputValuesRangeDoubleDataProvider')] + #[Test] public function inputValueCheckRespectsRightLowerAndUpperLimitForDouble(string $value, string|int $expectedReturnValue): void { $tcaFieldConf = [ @@ -369,10 +344,8 @@ final class DataHandlerTest extends UnitTestCase self::assertSame($expectedReturnValue, $returnValue['value']); } - /** - * @test - * @dataProvider inputValuesRangeDoubleDataProvider - */ + #[DataProvider('inputValuesRangeDoubleDataProvider')] + #[Test] public function inputValueCheckRespectsRightLowerAndUpperLimitWithDefaultValueForDouble(string $value, string|int $expectedReturnValue): void { $tcaFieldConf = [ @@ -410,10 +383,8 @@ final class DataHandlerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider datetimeValuesDataProvider - */ + #[DataProvider('datetimeValuesDataProvider')] + #[Test] public function valueCheckRecognizesDatetimeValuesAsIntegerValuesCorrectly(string $value, int $expected): void { $tcaFieldConf = [ @@ -455,10 +426,8 @@ final class DataHandlerTest extends UnitTestCase ]; } - /** - * @dataProvider inputValueRangeCheckIsIgnoredWhenDefaultIsZeroAndInputValueIsEmptyDataProvider - * @test - */ + #[DataProvider('inputValueRangeCheckIsIgnoredWhenDefaultIsZeroAndInputValueIsEmptyDataProvider')] + #[Test] public function inputValueRangeCheckIsIgnoredWhenDefaultIsZeroAndInputValueIsEmpty( string|int $inputValue, int $expected, @@ -515,9 +484,9 @@ final class DataHandlerTest extends UnitTestCase /** * Tests whether native dbtype inputs are parsed independent of the server timezone. - * @test - * @dataProvider datetimeValueCheckDbtypeIsIndependentFromTimezoneDataProvider */ + #[DataProvider('datetimeValueCheckDbtypeIsIndependentFromTimezoneDataProvider')] + #[Test] public function datetimeValueCheckDbtypeIsIndependentFromTimezone(string $value, string $dbtype, string $expectedOutput): void { $tcaFieldConf = [ @@ -604,9 +573,9 @@ final class DataHandlerTest extends UnitTestCase * @param string $format * @param bool $nullable * @param mixed|null $expectedOutput - * @dataProvider inputValueCheckNativeDbTypeDataProvider - * @test */ + #[DataProvider('inputValueCheckNativeDbTypeDataProvider')] + #[Test] public function inputValueCheckNativeDbType(string|null $value, string $dbType, string $format, bool $nullable, $expectedOutput): void { $tcaFieldConf = [ @@ -627,8 +596,8 @@ final class DataHandlerTest extends UnitTestCase // /** * Tests whether a wrong interface on the 'checkModifyAccessList' hook throws an exception. - * @test */ + #[Test] public function doesCheckModifyAccessListThrowExceptionOnWrongHookInterface(): void { $this->expectException(\UnexpectedValueException::class); @@ -640,9 +609,8 @@ final class DataHandlerTest extends UnitTestCase /** * Tests whether the 'checkModifyAccessList' hook is called correctly. - * - * @test */ + #[Test] public function doesCheckModifyAccessListHookGetsCalled(): void { $hookClass = StringUtility::getUniqueId('tx_coretest'); @@ -658,9 +626,8 @@ final class DataHandlerTest extends UnitTestCase /** * Tests whether the 'checkModifyAccessList' hook modifies the $accessAllowed variable. - * - * @test */ + #[Test] public function doesCheckModifyAccessListHookModifyAccessAllowed(): void { $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['checkModifyAccessList'][] = AllowAccessHookFixture::class; @@ -670,9 +637,7 @@ final class DataHandlerTest extends UnitTestCase ///////////////////////////////////// // Tests concerning process_datamap ///////////////////////////////////// - /** - * @test - */ + #[Test] public function processDatamapForFrozenNonZeroWorkspaceReturnsFalse(): void { $subject = $this->getMockBuilder(DataHandler::class) @@ -765,10 +730,9 @@ final class DataHandlerTest extends UnitTestCase /** * This test ensures, that the eval method checkValue_SW is called on * flexform structures. - * - * @test - * @dataProvider checkValue_flex_procInData_travDSDataProvider */ + #[DataProvider('checkValue_flex_procInData_travDSDataProvider')] + #[Test] public function checkValue_flex_procInData_travDS(array $dataValues, array $DSelements, array $expected): void { $pParams = [ @@ -789,33 +753,27 @@ final class DataHandlerTest extends UnitTestCase ///////////////////////////////////// // Tests concerning log ///////////////////////////////////// - /** - * @test - */ + #[Test] public function logCallsWriteLogOfBackendUserIfLoggingIsEnabled(): void { $backendUser = $this->createMock(BackendUserAuthentication::class); $backendUser->expects(self::once())->method('writelog'); $this->subject->enableLogging = true; $this->subject->BE_USER = $backendUser; - $this->subject->log('', 23, SysLog\Action::UNDEFINED, 42, SysLog\Error::MESSAGE, 'details'); + $this->subject->log('', 23, Action::UNDEFINED, 42, Error::MESSAGE, 'details'); } - /** - * @test - */ + #[Test] public function logDoesNotCallWriteLogOfBackendUserIfLoggingIsDisabled(): void { $backendUser = $this->createMock(BackendUserAuthentication::class); $backendUser->expects(self::never())->method('writelog'); $this->subject->enableLogging = false; $this->subject->BE_USER = $backendUser; - $this->subject->log('', 23, SysLog\Action::UNDEFINED, 42, SysLog\Error::MESSAGE, 'details'); + $this->subject->log('', 23, Action::UNDEFINED, 42, Error::MESSAGE, 'details'); } - /** - * @test - */ + #[Test] public function logAddsEntryToLocalErrorLogArray(): void { $backendUser = $this->createMock(BackendUserAuthentication::class); @@ -823,14 +781,12 @@ final class DataHandlerTest extends UnitTestCase $this->subject->enableLogging = true; $this->subject->errorLog = []; $logDetailsUnique = StringUtility::getUniqueId('details'); - $this->subject->log('', 23, SysLog\Action::UNDEFINED, 42, SysLog\Error::USER_ERROR, $logDetailsUnique); + $this->subject->log('', 23, Action::UNDEFINED, 42, Error::USER_ERROR, $logDetailsUnique); self::assertArrayHasKey(0, $this->subject->errorLog); self::assertStringEndsWith($logDetailsUnique, $this->subject->errorLog[0]); } - /** - * @test - */ + #[Test] public function logFormatsDetailMessageWithAdditionalDataInLocalErrorArray(): void { $backendUser = $this->createMock(BackendUserAuthentication::class); @@ -838,14 +794,12 @@ final class DataHandlerTest extends UnitTestCase $this->subject->enableLogging = true; $this->subject->errorLog = []; $logDetails = StringUtility::getUniqueId('details'); - $this->subject->log('', 23, SysLog\Action::UNDEFINED, 42, SysLog\Error::USER_ERROR, '%1$s' . $logDetails . '%2$s', -1, ['foo', 'bar']); + $this->subject->log('', 23, Action::UNDEFINED, 42, Error::USER_ERROR, '%1$s' . $logDetails . '%2$s', -1, ['foo', 'bar']); $expected = 'foo' . $logDetails . 'bar'; self::assertStringEndsWith($expected, $this->subject->errorLog[0]); } - /** - * @test - */ + #[Test] public function logFormatsDetailMessageWithPlaceholders(): void { $backendUser = $this->createMock(BackendUserAuthentication::class); @@ -853,16 +807,14 @@ final class DataHandlerTest extends UnitTestCase $this->subject->enableLogging = true; $this->subject->errorLog = []; $logDetails = 'An error occurred on {table}:{uid} when localizing'; - $this->subject->log('', 23, SysLog\Action::UNDEFINED, 42, SysLog\Error::USER_ERROR, $logDetails, -1, ['table' => 'tx_sometable', 0 => 'some random value']); + $this->subject->log('', 23, Action::UNDEFINED, 42, Error::USER_ERROR, $logDetails, -1, ['table' => 'tx_sometable', 0 => 'some random value']); // UID is kept as non-replaced, and other properties are not replaced. $expected = 'An error occurred on tx_sometable:{uid} when localizing'; self::assertStringEndsWith($expected, $this->subject->errorLog[0]); } - /** - * @dataProvider equalSubmittedAndStoredValuesAreDeterminedDataProvider - * @test - */ + #[DataProvider('equalSubmittedAndStoredValuesAreDeterminedDataProvider')] + #[Test] public function equalSubmittedAndStoredValuesAreDetermined(bool $expected, string|int|null $submittedValue, string|int|null $storedValue, string $storedType, bool $allowNull): void { $result = \Closure::bind(function () use ($submittedValue, $storedValue, $storedType, $allowNull) { @@ -1049,9 +1001,7 @@ final class DataHandlerTest extends UnitTestCase ]; } - /** - * @test - */ + #[Test] public function deletePagesOnRootLevelIsDenied(): void { $dataHandlerMock = $this->getMockBuilder(DataHandler::class) @@ -1068,9 +1018,7 @@ final class DataHandlerTest extends UnitTestCase $dataHandlerMock->deletePages(0); } - /** - * @test - */ + #[Test] public function deleteRecord_procBasedOnFieldTypeRespectsEnableCascadingDelete(): void { $table = StringUtility::getUniqueId('foo_'); @@ -1124,10 +1072,8 @@ final class DataHandlerTest extends UnitTestCase ]; } - /** - * @dataProvider checkValue_checkReturnsExpectedValuesDataProvider - * @test - */ + #[DataProvider('checkValue_checkReturnsExpectedValuesDataProvider')] + #[Test] public function checkValue_checkReturnsExpectedValues(string|int $value, string|int $expectedValue): void { $expectedResult = [ @@ -1144,9 +1090,7 @@ final class DataHandlerTest extends UnitTestCase self::assertSame($expectedResult, $this->subject->_call('checkValueForCheck', $result, $value, $tcaFieldConfiguration, '', 0, 0, '')); } - /** - * @test - */ + #[Test] public function checkValueForInputConvertsNullToEmptyString(): void { $expectedResult = ['value' => '']; @@ -1173,10 +1117,8 @@ final class DataHandlerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider checkValueForJsonDataProvider - */ + #[DataProvider('checkValueForJsonDataProvider')] + #[Test] public function checkValueForJson(string|array $input, array $expected): void { self::assertSame( @@ -1189,9 +1131,7 @@ final class DataHandlerTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function checkValueForUuidReturnsValidUuidUnmodified(): void { self::assertEquals( @@ -1200,27 +1140,21 @@ final class DataHandlerTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function checkValueForUuidCreatesValidUuidValueForReqiredFieldsWithInvalidUuidGiven(): void { self::assertTrue(Uuid::isValid($this->subject->_call('checkValueForUuid', '', [])['value'])); self::assertTrue(Uuid::isValid($this->subject->_call('checkValueForUuid', '-_invalid_-', [])['value'])); } - /** - * @test - */ + #[Test] public function checkValueForUuidDiscardsInvalidUuidIfFieldIsNotRequired(): void { self::assertEmpty($this->subject->_call('checkValueForUuid', '', ['required' => false])); self::assertEmpty($this->subject->_call('checkValueForUuid', '-_invalid_-', ['required' => false])); } - /** - * @test - */ + #[Test] public function checkValueForUuidCreatesValidUuidValueWithDefinedVersion(): void { self::assertEquals(6, (int)$this->subject->_call('checkValueForUuid', '', ['version' => 6])['value'][14]); @@ -1232,10 +1166,8 @@ final class DataHandlerTest extends UnitTestCase self::assertEquals(4, (int)$this->subject->_call('checkValueForUuid', '', [])['value'][14]); } - /** - * @test - * @dataProvider referenceValuesAreCastedDataProvider - */ + #[DataProvider('referenceValuesAreCastedDataProvider')] + #[Test] public function referenceValuesAreCasted(string $value, array $configuration, bool $isNew, int|string $expected): void { self::assertEquals( @@ -1289,10 +1221,8 @@ final class DataHandlerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider clearPrefixFromValueRemovesPrefixDataProvider - */ + #[DataProvider('clearPrefixFromValueRemovesPrefixDataProvider')] + #[Test] public function clearPrefixFromValueRemovesPrefix(string $input, string $expected): void { $languageServiceMock = $this->createMock(LanguageService::class); @@ -1338,18 +1268,14 @@ final class DataHandlerTest extends UnitTestCase ]; } - /** - * @dataProvider applyFiltersToValuesFiltersValuesDataProvider - * @test - */ + #[DataProvider('applyFiltersToValuesFiltersValuesDataProvider')] + #[Test] public function applyFiltersToValuesFiltersValues(array $tcaFieldConfiguration, array $values, array $expected): void { self::assertEqualsCanonicalizing($expected, $this->subject->_call('applyFiltersToValues', $tcaFieldConfiguration, $values)); } - /** - * @test - */ + #[Test] public function applyFiltersToValuesExpectsArray(): void { $tcaFieldConfiguration = [ @@ -1409,10 +1335,8 @@ final class DataHandlerTest extends UnitTestCase ]; } - /** - * @dataProvider validateValueForRequiredReturnsExpectedValueDataHandler - * @test - */ + #[DataProvider('validateValueForRequiredReturnsExpectedValueDataHandler')] + #[Test] public function validateValueForRequiredReturnsExpectedValue(array $tcaFieldConfig, $input, bool $expectation): void { self::assertSame($expectation, $this->subject->_call('validateValueForRequired', $tcaFieldConfig, $input)); diff --git a/typo3/sysext/core/Tests/Unit/DataHandling/Localization/StateTest.php b/typo3/sysext/core/Tests/Unit/DataHandling/Localization/StateTest.php index 08769f1a6378c60de2d167a4725b6841d481b08d..91cff8d8b063b9a1b022a31171045ab97cd08a5c 100644 --- a/typo3/sysext/core/Tests/Unit/DataHandling/Localization/StateTest.php +++ b/typo3/sysext/core/Tests/Unit/DataHandling/Localization/StateTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\DataHandling\Localization; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\DataHandling\Localization\State; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -30,10 +32,8 @@ final class StateTest extends UnitTestCase $GLOBALS['TCA'] = []; } - /** - * @test - * @dataProvider stateObjectCanBeCreatedDataProvider - */ + #[DataProvider('stateObjectCanBeCreatedDataProvider')] + #[Test] public function stateObjectCanBeCreated(string $tableName, array $states): void { $subject = new State($tableName, $states); @@ -55,10 +55,8 @@ final class StateTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider statesAreEnrichedAndSanitizedOnObjectCreationDataProvider - */ + #[DataProvider('statesAreEnrichedAndSanitizedOnObjectCreationDataProvider')] + #[Test] public function statesAreEnrichedAndSanitizedOnObjectCreation( array $states, array $expected diff --git a/typo3/sysext/core/Tests/Unit/DataHandling/Model/CorrelationIdTest.php b/typo3/sysext/core/Tests/Unit/DataHandling/Model/CorrelationIdTest.php index a47b7f3f0a1a62d5f265b2a01c50ff052ed28a22..2e925a88b9573f21a5e37a9a668502701d172e2b 100644 --- a/typo3/sysext/core/Tests/Unit/DataHandling/Model/CorrelationIdTest.php +++ b/typo3/sysext/core/Tests/Unit/DataHandling/Model/CorrelationIdTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\DataHandling\Model; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\DataHandling\Model\CorrelationId; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -44,10 +46,8 @@ final class CorrelationIdTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider canBeParsedDataProvider - */ + #[DataProvider('canBeParsedDataProvider')] + #[Test] public function canBeParsed(string $string, array $expectations): void { $correlationId = CorrelationId::fromString($string); @@ -59,9 +59,7 @@ final class CorrelationIdTest extends UnitTestCase } } - /** - * @test - */ + #[Test] public function subjectIsConsidered(): void { $correlationId = CorrelationId::forSubject('subject') @@ -69,9 +67,7 @@ final class CorrelationIdTest extends UnitTestCase self::assertSame('0400$subject/aspect-a', (string)$correlationId); } - /** - * @test - */ + #[Test] public function scopeIsConsidered(): void { $correlationId = CorrelationId::forScope('scope') @@ -80,9 +76,7 @@ final class CorrelationIdTest extends UnitTestCase self::assertSame('0400$scope:subject/aspect-a', (string)$correlationId); } - /** - * @test - */ + #[Test] public function doesNotVary(): void { $correlationId = '0400$scope:subject/aspect-a/aspect-b'; diff --git a/typo3/sysext/core/Tests/Unit/DataHandling/SlugHelperTest.php b/typo3/sysext/core/Tests/Unit/DataHandling/SlugHelperTest.php index 5cb575d3faa3cb0520d2bbc2c1382bd85f5c05e5..067a54287c02ee1a933d4ed6ca4742a4aae73f28 100644 --- a/typo3/sysext/core/Tests/Unit/DataHandling/SlugHelperTest.php +++ b/typo3/sysext/core/Tests/Unit/DataHandling/SlugHelperTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\DataHandling; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\DataHandling\SlugHelper; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -134,10 +136,8 @@ final class SlugHelperTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider sanitizeDataProvider - */ + #[DataProvider('sanitizeDataProvider')] + #[Test] public function sanitizeConvertsString(array $configuration, string $input, string $expected): void { $subject = new SlugHelper( @@ -173,10 +173,8 @@ final class SlugHelperTest extends UnitTestCase ]; } - /** - * @dataProvider generateNeverDeliversEmptySlugDataProvider - * @test - */ + #[DataProvider('generateNeverDeliversEmptySlugDataProvider')] + #[Test] public function generateNeverDeliversEmptySlug(string $input, string $expected): void { $GLOBALS['dummyTable']['ctrl'] = []; @@ -326,10 +324,8 @@ final class SlugHelperTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider sanitizeForPagesDataProvider - */ + #[DataProvider('sanitizeForPagesDataProvider')] + #[Test] public function sanitizeConvertsStringForPages(array $configuration, string $input, string $expected): void { $subject = new SlugHelper( @@ -365,10 +361,8 @@ final class SlugHelperTest extends UnitTestCase ]; } - /** - * @dataProvider generateNeverDeliversEmptySlugForPagesDataProvider - * @test - */ + #[DataProvider('generateNeverDeliversEmptySlugForPagesDataProvider')] + #[Test] public function generateNeverDeliversEmptySlugForPages(string $input, string $expected): void { $GLOBALS['dummyTable']['ctrl'] = []; @@ -466,10 +460,8 @@ final class SlugHelperTest extends UnitTestCase ]; } - /** - * @dataProvider generatePrependsSlugsForPagesDataProvider - * @test - */ + #[DataProvider('generatePrependsSlugsForPagesDataProvider')] + #[Test] public function generatePrependsSlugsForPages(string $input, string $expected, array $options): void { $GLOBALS['dummyTable']['ctrl'] = []; @@ -607,10 +599,8 @@ final class SlugHelperTest extends UnitTestCase ]; } - /** - * @dataProvider generateSlugWithNavTitleAndFallbackForPagesDataProvider - * @test - */ + #[DataProvider('generateSlugWithNavTitleAndFallbackForPagesDataProvider')] + #[Test] public function generateSlugWithNavTitleAndFallbackForPages(array $input, string $expected, array $options): void { $GLOBALS['dummyTable']['ctrl'] = []; @@ -631,9 +621,7 @@ final class SlugHelperTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function generateSlugWithHookModifiers(): void { $options = []; @@ -682,10 +670,8 @@ final class SlugHelperTest extends UnitTestCase ]; } - /** - * @dataProvider generateSlugWithPid0DataProvider - * @test - */ + #[DataProvider('generateSlugWithPid0DataProvider')] + #[Test] public function generateSlugWithPid0(array $input, string $expected) { if (empty($GLOBALS[$input['table']]['ctrl'])) { @@ -718,10 +704,8 @@ final class SlugHelperTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider generatePrependsSlugsForNonPagesDataProvider - */ + #[DataProvider('generatePrependsSlugsForNonPagesDataProvider')] + #[Test] public function generatePrependsSlugsForNonPages(string $input, string $expected, array $options): void { $GLOBALS['dummyTable']['ctrl'] = []; diff --git a/typo3/sysext/core/Tests/Unit/DataHandling/SoftReference/EmailSoftReferenceParserTest.php b/typo3/sysext/core/Tests/Unit/DataHandling/SoftReference/EmailSoftReferenceParserTest.php index 6ae993f421f4db4922be76b79870100a6a5930f9..77d7cdbb4a4ffb81a6994716f0357b4a6f8f1e71 100644 --- a/typo3/sysext/core/Tests/Unit/DataHandling/SoftReference/EmailSoftReferenceParserTest.php +++ b/typo3/sysext/core/Tests/Unit/DataHandling/SoftReference/EmailSoftReferenceParserTest.php @@ -17,6 +17,9 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\DataHandling\SoftReference; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; + final class EmailSoftReferenceParserTest extends AbstractSoftReferenceParserTestCase { public static function emailSoftReferenceParserTestDataProvider(): array @@ -74,10 +77,8 @@ final class EmailSoftReferenceParserTest extends AbstractSoftReferenceParserTest ]; } - /** - * @test - * @dataProvider emailSoftReferenceParserTestDataProvider - */ + #[DataProvider('emailSoftReferenceParserTestDataProvider')] + #[Test] public function emailSoftReferenceParserTest(string $content, string $expectedContent, array $expectedElements, bool $expectedHasMatched): void { $subject = $this->getParserByKey('email'); @@ -87,9 +88,7 @@ final class EmailSoftReferenceParserTest extends AbstractSoftReferenceParserTest self::assertEquals($expectedHasMatched, $result->hasMatched()); } - /** - * @test - */ + #[Test] public function emailSoftReferenceParserSubstituteTest(): void { $content = 'My email is: foo@bar.baz'; diff --git a/typo3/sysext/core/Tests/Unit/DataHandling/SoftReference/ExtensionPathSoftReferenceParserTest.php b/typo3/sysext/core/Tests/Unit/DataHandling/SoftReference/ExtensionPathSoftReferenceParserTest.php index 5e39326b3cd437132f8a875fc61b3d7e027eab66..59d42f172df54002923502406ecbcdabbaac61d9 100644 --- a/typo3/sysext/core/Tests/Unit/DataHandling/SoftReference/ExtensionPathSoftReferenceParserTest.php +++ b/typo3/sysext/core/Tests/Unit/DataHandling/SoftReference/ExtensionPathSoftReferenceParserTest.php @@ -17,6 +17,9 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\DataHandling\SoftReference; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; + final class ExtensionPathSoftReferenceParserTest extends AbstractSoftReferenceParserTestCase { public static function extensionPathSoftReferenceParserDataProvider(): array @@ -64,10 +67,8 @@ final class ExtensionPathSoftReferenceParserTest extends AbstractSoftReferencePa ]; } - /** - * @test - * @dataProvider extensionPathSoftReferenceParserDataProvider - */ + #[DataProvider('extensionPathSoftReferenceParserDataProvider')] + #[Test] public function extensionPathSoftReferenceParserTest(string $content, string $expectedContent, array $expectedElements, bool $expectedHasMatched): void { $subject = $this->getParserByKey('ext_fileref'); diff --git a/typo3/sysext/core/Tests/Unit/DataHandling/SoftReference/NotifySoftReferenceParserTest.php b/typo3/sysext/core/Tests/Unit/DataHandling/SoftReference/NotifySoftReferenceParserTest.php index f8c6dafd1dffcbf2b38746291d7b03f07586ec7a..c1a1a326fb1c1691c10f4804149bacf306159bd6 100644 --- a/typo3/sysext/core/Tests/Unit/DataHandling/SoftReference/NotifySoftReferenceParserTest.php +++ b/typo3/sysext/core/Tests/Unit/DataHandling/SoftReference/NotifySoftReferenceParserTest.php @@ -17,11 +17,11 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\DataHandling\SoftReference; +use PHPUnit\Framework\Attributes\Test; + final class NotifySoftReferenceParserTest extends AbstractSoftReferenceParserTestCase { - /** - * @test - */ + #[Test] public function notifySoftReferenceParserTest(): void { $subject = $this->getParserByKey('notify'); diff --git a/typo3/sysext/core/Tests/Unit/DataHandling/SoftReference/SubstituteSoftReferenceParserTest.php b/typo3/sysext/core/Tests/Unit/DataHandling/SoftReference/SubstituteSoftReferenceParserTest.php index 44fd2009bbf927e539934b7af0fae089f0fd5ee4..c7a2e5dc319921e544dd9e103e803e7af1b586ff 100644 --- a/typo3/sysext/core/Tests/Unit/DataHandling/SoftReference/SubstituteSoftReferenceParserTest.php +++ b/typo3/sysext/core/Tests/Unit/DataHandling/SoftReference/SubstituteSoftReferenceParserTest.php @@ -17,11 +17,11 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\DataHandling\SoftReference; +use PHPUnit\Framework\Attributes\Test; + final class SubstituteSoftReferenceParserTest extends AbstractSoftReferenceParserTestCase { - /** - * @test - */ + #[Test] public function substituteSoftReferenceParserTest(): void { $subject = $this->getParserByKey('substitute'); diff --git a/typo3/sysext/core/Tests/Unit/DataHandling/SoftReference/TypoLinkSoftReferenceParserTest.php b/typo3/sysext/core/Tests/Unit/DataHandling/SoftReference/TypoLinkSoftReferenceParserTest.php index e1ca423840d97cbb6e0acb6a7adaae8132b7f09e..70c1cf918edcb13423a47be6a04c37558db03dd9 100644 --- a/typo3/sysext/core/Tests/Unit/DataHandling/SoftReference/TypoLinkSoftReferenceParserTest.php +++ b/typo3/sysext/core/Tests/Unit/DataHandling/SoftReference/TypoLinkSoftReferenceParserTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\DataHandling\SoftReference; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Resource\File; use TYPO3\CMS\Core\Resource\Folder; use TYPO3\CMS\Core\Resource\ResourceFactory; @@ -149,10 +151,8 @@ final class TypoLinkSoftReferenceParserTest extends AbstractSoftReferenceParserT ]; } - /** - * @test - * @dataProvider findRefReturnsParsedElementsDataProvider - */ + #[DataProvider('findRefReturnsParsedElementsDataProvider')] + #[Test] public function findRefReturnsParsedElements(array $softrefConfiguration, array $expectedElement): void { $subject = $this->getParserByKey('typolink'); @@ -237,10 +237,8 @@ final class TypoLinkSoftReferenceParserTest extends AbstractSoftReferenceParserT ]; } - /** - * @test - * @dataProvider findRefReturnsParsedElementsWithFileDataProvider - */ + #[DataProvider('findRefReturnsParsedElementsWithFileDataProvider')] + #[Test] public function findRefReturnsParsedElementsWithFile(array $softrefConfiguration, array $expectedElement): void { $storageObject = $this->createMock(ResourceStorage::class); @@ -293,10 +291,8 @@ final class TypoLinkSoftReferenceParserTest extends AbstractSoftReferenceParserT ]; } - /** - * @test - * @dataProvider findRefReturnsNullWithFolderDataProvider - */ + #[DataProvider('findRefReturnsNullWithFolderDataProvider')] + #[Test] public function findRefReturnsNullWithFolder(array $softrefConfiguration): void { $folderObject = $this->createMock(Folder::class); @@ -334,10 +330,8 @@ final class TypoLinkSoftReferenceParserTest extends AbstractSoftReferenceParserT ]; } - /** - * @test - * @dataProvider getTypoLinkPartsThrowExceptionWithPharReferencesDataProvider - */ + #[DataProvider('getTypoLinkPartsThrowExceptionWithPharReferencesDataProvider')] + #[Test] public function getTypoLinkPartsThrowExceptionWithPharReferences(string $pharUrl): void { $this->expectException(\RuntimeException::class); diff --git a/typo3/sysext/core/Tests/Unit/DataHandling/SoftReference/TypoLinkTagSoftReferenceParserTest.php b/typo3/sysext/core/Tests/Unit/DataHandling/SoftReference/TypoLinkTagSoftReferenceParserTest.php index eb8d7738b3ddf80bbda5070d3f324ff27f41b671..7b9a7a2a56e2884a29cb2ed4b27693341ea5f674 100644 --- a/typo3/sysext/core/Tests/Unit/DataHandling/SoftReference/TypoLinkTagSoftReferenceParserTest.php +++ b/typo3/sysext/core/Tests/Unit/DataHandling/SoftReference/TypoLinkTagSoftReferenceParserTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\DataHandling\SoftReference; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Resource\File; use TYPO3\CMS\Core\Resource\Folder; use TYPO3\CMS\Core\Resource\ResourceFactory; @@ -136,10 +138,8 @@ final class TypoLinkTagSoftReferenceParserTest extends AbstractSoftReferencePars ]; } - /** - * @test - * @dataProvider findRefReturnsParsedElementsDataProvider - */ + #[DataProvider('findRefReturnsParsedElementsDataProvider')] + #[Test] public function findRefReturnsParsedElements(array $softrefConfiguration, array $expectedElement): void { $subject = $this->getParserByKey('typolink_tag'); @@ -181,10 +181,8 @@ final class TypoLinkTagSoftReferenceParserTest extends AbstractSoftReferencePars ]; } - /** - * @test - * @dataProvider findRefReturnsParsedElementsWithFileDataProvider - */ + #[DataProvider('findRefReturnsParsedElementsWithFileDataProvider')] + #[Test] public function findRefReturnsParsedElementsWithFile(array $softrefConfiguration, array $expectedElement): void { $fileObject = $this->createMock(File::class); @@ -236,10 +234,8 @@ final class TypoLinkTagSoftReferenceParserTest extends AbstractSoftReferencePars ]; } - /** - * @test - * @dataProvider findRefReturnsNullWithFolderDataProvider - */ + #[DataProvider('findRefReturnsNullWithFolderDataProvider')] + #[Test] public function findRefReturnsNullWithFolder(array $softrefConfiguration): void { $folderObject = $this->createMock(Folder::class); diff --git a/typo3/sysext/core/Tests/Unit/DataHandling/SoftReference/UrlSoftReferenceParserTest.php b/typo3/sysext/core/Tests/Unit/DataHandling/SoftReference/UrlSoftReferenceParserTest.php index a9055139e95dbe603725492c6633106bdb1fc417..bcf625ecbd300d8f0f5e00e1aa7c3e39d5c6f951 100644 --- a/typo3/sysext/core/Tests/Unit/DataHandling/SoftReference/UrlSoftReferenceParserTest.php +++ b/typo3/sysext/core/Tests/Unit/DataHandling/SoftReference/UrlSoftReferenceParserTest.php @@ -17,6 +17,9 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\DataHandling\SoftReference; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; + final class UrlSoftReferenceParserTest extends AbstractSoftReferenceParserTestCase { public static function urlSoftReferenceParserTestDataProvider(): array @@ -99,10 +102,8 @@ final class UrlSoftReferenceParserTest extends AbstractSoftReferenceParserTestCa ]; } - /** - * @test - * @dataProvider urlSoftReferenceParserTestDataProvider - */ + #[DataProvider('urlSoftReferenceParserTestDataProvider')] + #[Test] public function urlSoftReferenceParserTest(string $content, string $expectedContent, array $expectedElements): void { $subject = $this->getParserByKey('url'); @@ -111,9 +112,7 @@ final class UrlSoftReferenceParserTest extends AbstractSoftReferenceParserTestCa self::assertEquals($expectedElements, $result->getMatchedElements()); } - /** - * @test - */ + #[Test] public function urlSoftReferenceParserSubstituteTest(): void { $content = 'My website is: https://www.foo-bar.baz'; diff --git a/typo3/sysext/core/Tests/Unit/Database/ConnectionPoolTest.php b/typo3/sysext/core/Tests/Unit/Database/ConnectionPoolTest.php index 04a4a3d4474f58bb6c4866eebb140c4563b12c67..351362eebbf8c7cfa6d004599243c587caa8dd67 100644 --- a/typo3/sysext/core/Tests/Unit/Database/ConnectionPoolTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/ConnectionPoolTest.php @@ -17,14 +17,13 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\ConnectionPool; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ConnectionPoolTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getConnectionNamesReturnsConfiguredConnectionNames(): void { $GLOBALS['TYPO3_CONF_VARS']['DB']['Connections'] = [ diff --git a/typo3/sysext/core/Tests/Unit/Database/ConnectionTest.php b/typo3/sysext/core/Tests/Unit/Database/ConnectionTest.php index 2966d0a53b0f36202737b234bf1394e3963fb499..d12ad6e0fbbfa00546c70a94c46be26bf9c9825e 100644 --- a/typo3/sysext/core/Tests/Unit/Database/ConnectionTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/ConnectionTest.php @@ -22,6 +22,8 @@ use Doctrine\DBAL\Driver\AbstractMySQLDriver; use Doctrine\DBAL\Platforms\AbstractPlatform; use Doctrine\DBAL\Platforms\MySQLPlatform; use Doctrine\DBAL\Result; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Core\Database\Connection; use TYPO3\CMS\Core\Database\Query\Expression\ExpressionBuilder; @@ -73,9 +75,7 @@ final class ConnectionTest extends UnitTestCase ->willReturn(new MockPlatform()); } - /** - * @test - */ + #[Test] public function createQueryBuilderReturnsInstanceOfTypo3QueryBuilder(): void { self::assertInstanceOf(QueryBuilder::class, $this->connection->createQueryBuilder()); @@ -128,18 +128,14 @@ final class ConnectionTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider quoteIdentifierDataProvider - */ + #[DataProvider('quoteIdentifierDataProvider')] + #[Test] public function quoteIdentifier(string $input, string $expected): void { self::assertSame($expected, $this->connection->quoteIdentifier($input)); } - /** - * @test - */ + #[Test] public function quoteIdentifiers(): void { $input = [ @@ -189,10 +185,8 @@ final class ConnectionTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider insertQueriesDataProvider - */ + #[DataProvider('insertQueriesDataProvider')] + #[Test] public function insertQueries(array $args, string $expectedQuery, array $expectedValues, array $expectedTypes): void { $this->connection->expects(self::once()) @@ -203,9 +197,7 @@ final class ConnectionTest extends UnitTestCase $this->connection->insert(...$args); } - /** - * @test - */ + #[Test] public function bulkInsert(): void { $this->connection->expects(self::once()) @@ -246,10 +238,8 @@ final class ConnectionTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider updateQueriesDataProvider - */ + #[DataProvider('updateQueriesDataProvider')] + #[Test] public function updateQueries(array $args, string $expectedQuery, array $expectedValues, array $expectedTypes): void { // @todo drop else branch and condition once doctrine/dbal is requried in version 2.11.0 minimum @@ -298,10 +288,8 @@ final class ConnectionTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider deleteQueriesDataProvider - */ + #[DataProvider('deleteQueriesDataProvider')] + #[Test] public function deleteQueries(array $args, string $expectedQuery, array $expectedValues, array $expectedTypes): void { // @todo drop else branch and condition once doctrine/dbal is requried in version 2.11.0 minimum @@ -383,10 +371,8 @@ final class ConnectionTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider selectQueriesDataProvider - */ + #[DataProvider('selectQueriesDataProvider')] + #[Test] public function selectQueries(array $args, string $expectedQuery, array $expectedParameters): void { $resultStatement = $this->createMock(Result::class); @@ -428,10 +414,8 @@ final class ConnectionTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider countQueriesDataProvider - */ + #[DataProvider('countQueriesDataProvider')] + #[Test] public function countQueries(array $args, string $expectedQuery, array $expectedParameters): void { $resultStatement = $this->createMock(Result::class); @@ -446,9 +430,7 @@ final class ConnectionTest extends UnitTestCase $this->connection->count(...$args); } - /** - * @test - */ + #[Test] public function truncateQuery(): void { $this->connection->expects(self::once()) @@ -459,9 +441,7 @@ final class ConnectionTest extends UnitTestCase $this->connection->truncate('aTestTable', false); } - /** - * @test - */ + #[Test] public function getServerVersionReportsPlatformVersion(): void { $wrappedConnectionMock = $this->createMock(Connection::class); diff --git a/typo3/sysext/core/Tests/Unit/Database/Platform/PlatformInformationTest.php b/typo3/sysext/core/Tests/Unit/Database/Platform/PlatformInformationTest.php index 0ad587f0a7fe75f4781d3cbc6051febbb33bb10e..8ec70f9388f3195d5370ce23e41d6a88ffa2e5d4 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Platform/PlatformInformationTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Platform/PlatformInformationTest.php @@ -21,6 +21,8 @@ use Doctrine\DBAL\Platforms\AbstractPlatform; use Doctrine\DBAL\Platforms\MySQLPlatform; use Doctrine\DBAL\Platforms\PostgreSQL94Platform as PostgreSQLPlatform; use Doctrine\DBAL\Platforms\SqlitePlatform; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Platform\PlatformInformation; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -39,10 +41,10 @@ final class PlatformInformationTest extends UnitTestCase } /** - * @test * @param class-string<AbstractPlatform> $platform - * @dataProvider platformDataProvider */ + #[DataProvider('platformDataProvider')] + #[Test] public function maxBindParameters(string $platform): void { $platformMock = $this->createMock($platform); @@ -50,19 +52,17 @@ final class PlatformInformationTest extends UnitTestCase } /** - * @test * @param class-string<AbstractPlatform> $platform - * @dataProvider platformDataProvider */ + #[DataProvider('platformDataProvider')] + #[Test] public function maxIdentifierLength(string $platform): void { $platformMock = $this->createMock($platform); self::assertGreaterThanOrEqual(1, PlatformInformation::getMaxIdentifierLength($platformMock)); } - /** - * @test - */ + #[Test] public function maxBindParametersWithUnknownPlatform(): void { $this->expectException(\RuntimeException::class); @@ -71,9 +71,7 @@ final class PlatformInformationTest extends UnitTestCase self::assertGreaterThanOrEqual(1, PlatformInformation::getMaxBindParameters($platformMock)); } - /** - * @test - */ + #[Test] public function maxIdentifierLengthWithUnknownPlatform(): void { $this->expectException(\RuntimeException::class); diff --git a/typo3/sysext/core/Tests/Unit/Database/Query/BulkInsertTest.php b/typo3/sysext/core/Tests/Unit/Database/Query/BulkInsertTest.php index 39262912ad62c195e1c4080d7c42981b3a1da890..383ce92540a1d03b279bd49c052bb95ee667bd34 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Query/BulkInsertTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Query/BulkInsertTest.php @@ -18,6 +18,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Query; use Doctrine\DBAL\Platforms\AbstractPlatform; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Connection; use TYPO3\CMS\Core\Database\Query\BulkInsertQuery; use TYPO3\CMS\Core\Tests\Unit\Database\Mocks\MockPlatform; @@ -50,9 +51,7 @@ final class BulkInsertTest extends UnitTestCase ->willReturn(new MockPlatform()); } - /** - * @test - */ + #[Test] public function getSQLWithoutSpecifiedValuesThrowsException(): void { $this->expectException(\LogicException::class); @@ -63,9 +62,7 @@ final class BulkInsertTest extends UnitTestCase $query->getSQL(); } - /** - * @test - */ + #[Test] public function insertWithoutColumnAndTypeSpecification(): void { $query = new BulkInsertQuery($this->connection, $this->testTable); @@ -88,9 +85,7 @@ final class BulkInsertTest extends UnitTestCase self::assertSame([], $query->getParameterTypes()); } - /** - * @test - */ + #[Test] public function singleInsertWithoutColumnSpecification(): void { $query = new BulkInsertQuery($this->connection, $this->testTable); @@ -113,9 +108,7 @@ final class BulkInsertTest extends UnitTestCase self::assertSame([null, Connection::PARAM_INT, Connection::PARAM_BOOL], $query->getParameterTypes()); } - /** - * @test - */ + #[Test] public function multiInsertWithoutColumnSpecification(): void { $query = new BulkInsertQuery($this->connection, $this->testTable); @@ -156,9 +149,7 @@ final class BulkInsertTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function singleInsertWithColumnSpecificationAndPositionalTypeValues(): void { $query = new BulkInsertQuery($this->connection, $this->testTable, ['bar', 'baz']); @@ -178,9 +169,7 @@ final class BulkInsertTest extends UnitTestCase self::assertSame([null, Connection::PARAM_BOOL], $query->getParameterTypes()); } - /** - * @test - */ + #[Test] public function singleInsertWithColumnSpecificationAndNamedTypeValues(): void { $query = new BulkInsertQuery($this->connection, $this->testTable, ['bar', 'baz']); @@ -200,9 +189,7 @@ final class BulkInsertTest extends UnitTestCase self::assertSame([null, Connection::PARAM_INT], $query->getParameterTypes()); } - /** - * @test - */ + #[Test] public function singleInsertWithColumnSpecificationAndMixedTypeValues(): void { $query = new BulkInsertQuery($this->connection, $this->testTable, ['bar', 'baz']); @@ -222,9 +209,7 @@ final class BulkInsertTest extends UnitTestCase self::assertSame([Connection::PARAM_INT, Connection::PARAM_BOOL], $query->getParameterTypes()); } - /** - * @test - */ + #[Test] public function multiInsertWithColumnSpecification(): void { $query = new BulkInsertQuery($this->connection, $this->testTable, ['bar', 'baz']); @@ -271,9 +256,7 @@ final class BulkInsertTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function emptyInsertWithColumnSpecificationThrowsException(): void { $this->expectException(\InvalidArgumentException::class); @@ -283,9 +266,7 @@ final class BulkInsertTest extends UnitTestCase $query->addValues([]); } - /** - * @test - */ + #[Test] public function insertWithColumnSpecificationAndMultipleValuesForColumnThrowsException(): void { $this->expectException(\InvalidArgumentException::class); @@ -295,9 +276,7 @@ final class BulkInsertTest extends UnitTestCase $query->addValues(['bar', 'baz', 'baz' => 666]); } - /** - * @test - */ + #[Test] public function insertWithColumnSpecificationAndMultipleTypesForColumnThrowsException(): void { $this->expectException(\InvalidArgumentException::class); diff --git a/typo3/sysext/core/Tests/Unit/Database/Query/Expression/ExpressionBuilderTest.php b/typo3/sysext/core/Tests/Unit/Database/Query/Expression/ExpressionBuilderTest.php index 65db7019b7394c61a70627bcbd0e9759c02e4de1..48c6caae446a757fe79690b58316e88eda434824 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Query/Expression/ExpressionBuilderTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Query/Expression/ExpressionBuilderTest.php @@ -18,6 +18,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Query\Expression; use Doctrine\DBAL\Platforms\TrimMode; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Core\Database\Connection; use TYPO3\CMS\Core\Database\Query\Expression\CompositeExpression; @@ -40,9 +42,7 @@ final class ExpressionBuilderTest extends UnitTestCase $this->subject = new ExpressionBuilder($this->connectionMock); } - /** - * @test - */ + #[Test] public function andXReturnType(): void { $result = $this->subject->and('"uid" = 1', '"pid" = 0'); @@ -51,9 +51,7 @@ final class ExpressionBuilderTest extends UnitTestCase self::assertSame(CompositeExpression::TYPE_AND, $result->getType()); } - /** - * @test - */ + #[Test] public function orXReturnType(): void { $result = $this->subject->or('"uid" = 1', '"uid" = 7'); @@ -62,9 +60,7 @@ final class ExpressionBuilderTest extends UnitTestCase self::assertSame(CompositeExpression::TYPE_OR, $result->getType()); } - /** - * @test - */ + #[Test] public function eqQuotesIdentifier(): void { $this->connectionMock->expects(self::atLeastOnce())->method('quoteIdentifier')->with('aField')->willReturnArgument(0); @@ -73,9 +69,7 @@ final class ExpressionBuilderTest extends UnitTestCase self::assertSame('aField = 1', $result); } - /** - * @test - */ + #[Test] public function neqQuotesIdentifier(): void { $this->connectionMock->expects(self::atLeastOnce())->method('quoteIdentifier')->with('aField')->willReturnArgument(0); @@ -84,9 +78,7 @@ final class ExpressionBuilderTest extends UnitTestCase self::assertSame('aField <> 1', $result); } - /** - * @test - */ + #[Test] public function ltQuotesIdentifier(): void { $this->connectionMock->expects(self::atLeastOnce())->method('quoteIdentifier')->with('aField')->willReturnArgument(0); @@ -95,9 +87,7 @@ final class ExpressionBuilderTest extends UnitTestCase self::assertSame('aField < 1', $result); } - /** - * @test - */ + #[Test] public function lteQuotesIdentifier(): void { $this->connectionMock->expects(self::atLeastOnce())->method('quoteIdentifier')->with('aField')->willReturnArgument(0); @@ -106,9 +96,7 @@ final class ExpressionBuilderTest extends UnitTestCase self::assertSame('aField <= 1', $result); } - /** - * @test - */ + #[Test] public function gtQuotesIdentifier(): void { $this->connectionMock->expects(self::atLeastOnce())->method('quoteIdentifier')->with('aField')->willReturnArgument(0); @@ -117,9 +105,7 @@ final class ExpressionBuilderTest extends UnitTestCase self::assertSame('aField > 1', $result); } - /** - * @test - */ + #[Test] public function gteQuotesIdentifier(): void { $this->connectionMock->expects(self::atLeastOnce())->method('quoteIdentifier')->with('aField')->willReturnArgument(0); @@ -128,9 +114,7 @@ final class ExpressionBuilderTest extends UnitTestCase self::assertSame('aField >= 1', $result); } - /** - * @test - */ + #[Test] public function isNullQuotesIdentifier(): void { $this->connectionMock->expects(self::atLeastOnce())->method('quoteIdentifier')->with('aField')->willReturnArgument(0); @@ -139,9 +123,7 @@ final class ExpressionBuilderTest extends UnitTestCase self::assertSame('aField IS NULL', $result); } - /** - * @test - */ + #[Test] public function isNotNullQuotesIdentifier(): void { $this->connectionMock->expects(self::atLeastOnce())->method('quoteIdentifier')->with('aField')->willReturnArgument(0); @@ -150,9 +132,7 @@ final class ExpressionBuilderTest extends UnitTestCase self::assertSame('aField IS NOT NULL', $result); } - /** - * @test - */ + #[Test] public function likeQuotesIdentifier(): void { $databasePlatform = $this->createMock(MockPlatform::class); @@ -166,9 +146,7 @@ final class ExpressionBuilderTest extends UnitTestCase self::assertSame("aField LIKE 'aValue%' ESCAPE \"\\\"", $result); } - /** - * @test - */ + #[Test] public function notLikeQuotesIdentifier(): void { $databasePlatform = $this->createMock(MockPlatform::class); @@ -182,9 +160,7 @@ final class ExpressionBuilderTest extends UnitTestCase self::assertSame("aField NOT LIKE 'aValue%' ESCAPE \"\\\"", $result); } - /** - * @test - */ + #[Test] public function inWithStringQuotesIdentifier(): void { $this->connectionMock->expects(self::atLeastOnce())->method('quoteIdentifier')->with('aField')->willReturnArgument(0); @@ -193,9 +169,7 @@ final class ExpressionBuilderTest extends UnitTestCase self::assertSame('aField IN (1,2,3)', $result); } - /** - * @test - */ + #[Test] public function inWithArrayQuotesIdentifier(): void { $this->connectionMock->expects(self::atLeastOnce())->method('quoteIdentifier')->with('aField')->willReturnArgument(0); @@ -204,9 +178,7 @@ final class ExpressionBuilderTest extends UnitTestCase self::assertSame('aField IN (1, 2, 3)', $result); } - /** - * @test - */ + #[Test] public function notInWithStringQuotesIdentifier(): void { $this->connectionMock->expects(self::atLeastOnce())->method('quoteIdentifier')->with('aField')->willReturnArgument(0); @@ -215,9 +187,7 @@ final class ExpressionBuilderTest extends UnitTestCase self::assertSame('aField NOT IN (1,2,3)', $result); } - /** - * @test - */ + #[Test] public function notInWithArrayQuotesIdentifier(): void { $this->connectionMock->expects(self::atLeastOnce())->method('quoteIdentifier')->with('aField')->willReturnArgument(0); @@ -226,9 +196,7 @@ final class ExpressionBuilderTest extends UnitTestCase self::assertSame('aField NOT IN (1, 2, 3)', $result); } - /** - * @test - */ + #[Test] public function inSetThrowsExceptionWithEmptyValue(): void { $this->expectException(\InvalidArgumentException::class); @@ -236,9 +204,7 @@ final class ExpressionBuilderTest extends UnitTestCase $this->subject->inSet('aField', ''); } - /** - * @test - */ + #[Test] public function inSetThrowsExceptionWithInvalidValue(): void { $this->expectException(\InvalidArgumentException::class); @@ -246,9 +212,7 @@ final class ExpressionBuilderTest extends UnitTestCase $this->subject->inSet('aField', 'an,Invalid,Value'); } - /** - * @test - */ + #[Test] public function inSetForMySQL(): void { $databasePlatform = $this->createMock(MockPlatform::class); @@ -265,9 +229,7 @@ final class ExpressionBuilderTest extends UnitTestCase self::assertSame('FIND_IN_SET(\'1\', `aField`)', $result); } - /** - * @test - */ + #[Test] public function inSetForPostgreSQL(): void { $databasePlatform = $this->createMock(MockPlatform::class); @@ -296,9 +258,7 @@ final class ExpressionBuilderTest extends UnitTestCase self::assertSame('\'1\' = ANY(string_to_array("aField"::text, \',\'))', $result); } - /** - * @test - */ + #[Test] public function inSetForPostgreSQLWithColumn(): void { $databasePlatform = $this->createMock(MockPlatform::class); @@ -316,9 +276,7 @@ final class ExpressionBuilderTest extends UnitTestCase self::assertSame('"testtable"."uid"::text = ANY(string_to_array("aField"::text, \',\'))', $result); } - /** - * @test - */ + #[Test] public function inSetForSQLite(): void { $databasePlatform = $this->createMock(MockPlatform::class); @@ -349,9 +307,7 @@ final class ExpressionBuilderTest extends UnitTestCase self::assertSame('instr(\',\'||"aField"||\',\', \'%,1,%\')', $result); } - /** - * @test - */ + #[Test] public function inSetForSQLiteWithQuoteCharactersInValue(): void { $databasePlatform = $this->createMock(MockPlatform::class); @@ -381,9 +337,7 @@ final class ExpressionBuilderTest extends UnitTestCase self::assertSame('instr(\',\'||"aField"||\',\', \',\'\'Some\'\'Value,\')', $result); } - /** - * @test - */ + #[Test] public function inSetForSQLiteThrowsExceptionOnPositionalPlaceholder(): void { $databasePlatform = $this->createMock(MockPlatform::class); @@ -398,9 +352,7 @@ final class ExpressionBuilderTest extends UnitTestCase $this->subject->inSet('aField', '?'); } - /** - * @test - */ + #[Test] public function inSetForSQLiteThrowsExceptionOnNamedPlaceholder(): void { $databasePlatform = $this->createMock(MockPlatform::class); @@ -415,9 +367,7 @@ final class ExpressionBuilderTest extends UnitTestCase $this->subject->inSet('aField', ':dcValue1'); } - /** - * @test - */ + #[Test] public function notInSetThrowsExceptionWithEmptyValue(): void { $this->expectException(\InvalidArgumentException::class); @@ -425,9 +375,7 @@ final class ExpressionBuilderTest extends UnitTestCase $this->subject->notInSet('aField', ''); } - /** - * @test - */ + #[Test] public function notInSetThrowsExceptionWithInvalidValue(): void { $this->expectException(\InvalidArgumentException::class); @@ -435,9 +383,7 @@ final class ExpressionBuilderTest extends UnitTestCase $this->subject->notInSet('aField', 'an,Invalid,Value'); } - /** - * @test - */ + #[Test] public function notInSetForMySQL(): void { $databasePlatform = $this->createMock(MockPlatform::class); @@ -454,9 +400,7 @@ final class ExpressionBuilderTest extends UnitTestCase self::assertSame('NOT FIND_IN_SET(\'1\', `aField`)', $result); } - /** - * @test - */ + #[Test] public function notInSetForPostgreSQL(): void { $databasePlatform = $this->createMock(MockPlatform::class); @@ -485,9 +429,7 @@ final class ExpressionBuilderTest extends UnitTestCase self::assertSame('\'1\' <> ALL(string_to_array("aField"::text, \',\'))', $result); } - /** - * @test - */ + #[Test] public function notInSetForPostgreSQLWithColumn(): void { $databasePlatform = $this->createMock(MockPlatform::class); @@ -505,9 +447,7 @@ final class ExpressionBuilderTest extends UnitTestCase self::assertSame('"testtable"."uid"::text <> ALL(string_to_array("aField"::text, \',\'))', $result); } - /** - * @test - */ + #[Test] public function notInSetForSQLite(): void { $databasePlatform = $this->createMock(MockPlatform::class); @@ -537,9 +477,7 @@ final class ExpressionBuilderTest extends UnitTestCase self::assertSame('instr(\',\'||"aField"||\',\', \'%,1,%\') = 0', $result); } - /** - * @test - */ + #[Test] public function notInSetForSQLiteWithQuoteCharactersInValue(): void { $databasePlatform = $this->createMock(MockPlatform::class); @@ -569,9 +507,7 @@ final class ExpressionBuilderTest extends UnitTestCase self::assertSame('instr(\',\'||"aField"||\',\', \',\'\'Some\'\'Value,\') = 0', $result); } - /** - * @test - */ + #[Test] public function notInSetForSQLiteThrowsExceptionOnPositionalPlaceholder(): void { $databasePlatform = $this->createMock(MockPlatform::class); @@ -586,9 +522,7 @@ final class ExpressionBuilderTest extends UnitTestCase $this->subject->notInSet('aField', '?'); } - /** - * @test - */ + #[Test] public function notInSetForSQLiteThrowsExceptionOnNamedPlaceholder(): void { $databasePlatform = $this->createMock(MockPlatform::class); @@ -603,9 +537,7 @@ final class ExpressionBuilderTest extends UnitTestCase $this->subject->inSet('aField', ':dcValue1'); } - /** - * @test - */ + #[Test] public function defaultBitwiseAnd(): void { $databasePlatform = $this->createMock(MockPlatform::class); @@ -619,9 +551,7 @@ final class ExpressionBuilderTest extends UnitTestCase self::assertSame('"aField" & 1', $this->subject->bitAnd('aField', 1)); } - /** - * @test - */ + #[Test] public function bitwiseAndForOracle(): void { $databasePlatform = $this->createMock(MockPlatform::class); @@ -636,9 +566,7 @@ final class ExpressionBuilderTest extends UnitTestCase self::assertSame('BITAND("aField", 1)', $this->subject->bitAnd('aField', 1)); } - /** - * @test - */ + #[Test] public function maxQuotesIdentifier(): void { $this->connectionMock->method('quoteIdentifier')->willReturnCallback(static function (string $identifier): string { @@ -652,9 +580,7 @@ final class ExpressionBuilderTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function minQuotesIdentifier(): void { $this->connectionMock->method('quoteIdentifier')->willReturnCallback(static function (string $identifier): string { @@ -668,9 +594,7 @@ final class ExpressionBuilderTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function sumQuotesIdentifier(): void { $this->connectionMock->method('quoteIdentifier')->willReturnCallback(static function (string $identifier): string { @@ -684,9 +608,7 @@ final class ExpressionBuilderTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function avgQuotesIdentifier(): void { $this->connectionMock->method('quoteIdentifier')->willReturnCallback(static function (string $identifier): string { @@ -700,9 +622,7 @@ final class ExpressionBuilderTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function countQuotesIdentifier(): void { $this->connectionMock->method('quoteIdentifier')->willReturnCallback(static function (string $identifier): string { @@ -716,9 +636,7 @@ final class ExpressionBuilderTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function lengthQuotesIdentifier(): void { $this->connectionMock->method('quoteIdentifier')->willReturnCallback(static function (string $identifier): string { @@ -732,9 +650,7 @@ final class ExpressionBuilderTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function trimQuotesIdentifierWithDefaultValues(): void { $platform = new MockPlatform(); @@ -778,10 +694,8 @@ final class ExpressionBuilderTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider trimQuotesIdentifierDataProvider - */ + #[DataProvider('trimQuotesIdentifierDataProvider')] + #[Test] public function trimQuotesIdentifier(int $position, string $char, string $expected): void { $platform = new MockPlatform(); @@ -804,9 +718,7 @@ final class ExpressionBuilderTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function literalQuotesValue(): void { $this->connectionMock->expects(self::atLeastOnce())->method('quote')->with('aField', Connection::PARAM_STR) diff --git a/typo3/sysext/core/Tests/Unit/Database/Query/QueryBuilderTest.php b/typo3/sysext/core/Tests/Unit/Database/Query/QueryBuilderTest.php index 3e154013fad8e8fd398702df91691be0307adf04..1e49dafbc7debe0b3fbda7da5f0772ce843da94a 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Query/QueryBuilderTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Query/QueryBuilderTest.php @@ -24,6 +24,8 @@ use Doctrine\DBAL\Platforms\PostgreSQL94Platform as PostgreSQLPlatform; use Doctrine\DBAL\Platforms\SqlitePlatform; use Doctrine\DBAL\Query\QueryBuilder as DoctrineQueryBuilder; use Doctrine\DBAL\Result; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Core\Database\Connection; use TYPO3\CMS\Core\Database\Query\Expression\ExpressionBuilder; @@ -57,9 +59,7 @@ final class QueryBuilderTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function exprReturnsExpressionBuilderForConnection(): void { $this->connection->expects(self::atLeastOnce())->method('getExpressionBuilder') @@ -67,9 +67,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->expr(); } - /** - * @test - */ + #[Test] public function getTypeDelegatesToConcreteQueryBuilder(): void { $this->concreteQueryBuilder->expects(self::atLeastOnce())->method('getType') @@ -77,9 +75,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->getType(); } - /** - * @test - */ + #[Test] public function getStateDelegatesToConcreteQueryBuilder(): void { $this->concreteQueryBuilder->expects(self::atLeastOnce())->method('getState') @@ -87,9 +83,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->getState(); } - /** - * @test - */ + #[Test] public function getSQLDelegatesToConcreteQueryBuilder(): void { $this->concreteQueryBuilder->expects(self::atLeastOnce())->method('getSQL') @@ -99,9 +93,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->getSQL(); } - /** - * @test - */ + #[Test] public function setParameterDelegatesToConcreteQueryBuilder(): void { $this->concreteQueryBuilder->expects(self::atLeastOnce())->method('setParameter')->with('aField', 5, self::anything()) @@ -109,9 +101,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->setParameter('aField', 5); } - /** - * @test - */ + #[Test] public function setParametersDelegatesToConcreteQueryBuilder(): void { $this->concreteQueryBuilder->expects(self::atLeastOnce())->method('setParameters')->with(['aField' => 'aValue'], []) @@ -119,9 +109,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->setParameters(['aField' => 'aValue']); } - /** - * @test - */ + #[Test] public function getParametersDelegatesToConcreteQueryBuilder(): void { $this->concreteQueryBuilder->expects(self::atLeastOnce())->method('getParameters') @@ -129,9 +117,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->getParameters(); } - /** - * @test - */ + #[Test] public function getParameterDelegatesToConcreteQueryBuilder(): void { $this->concreteQueryBuilder->expects(self::atLeastOnce())->method('getParameter')->with('aField') @@ -139,18 +125,14 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->getParameter('aField'); } - /** - * @test - */ + #[Test] public function getParameterTypesDelegatesToConcreteQueryBuilder(): void { $this->concreteQueryBuilder->expects(self::atLeastOnce())->method('getParameterTypes')->willReturn([]); $this->subject->getParameterTypes(); } - /** - * @test - */ + #[Test] public function getParameterTypeDelegatesToConcreteQueryBuilder(): void { $this->concreteQueryBuilder->expects(self::atLeastOnce())->method('getParameterType')->with('aField') @@ -158,9 +140,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->getParameterType('aField'); } - /** - * @test - */ + #[Test] public function setFirstResultDelegatesToConcreteQueryBuilder(): void { $this->concreteQueryBuilder->expects(self::atLeastOnce())->method('setFirstResult')->with(self::anything()) @@ -168,18 +148,14 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->setFirstResult(1); } - /** - * @test - */ + #[Test] public function getFirstResultDelegatesToConcreteQueryBuilder(): void { $this->concreteQueryBuilder->expects(self::atLeastOnce())->method('getFirstResult')->willReturn(1); $this->subject->getFirstResult(); } - /** - * @test - */ + #[Test] public function setMaxResultsDelegatesToConcreteQueryBuilder(): void { $this->concreteQueryBuilder->expects(self::atLeastOnce())->method('setMaxResults')->with(self::anything()) @@ -187,18 +163,14 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->setMaxResults(1); } - /** - * @test - */ + #[Test] public function getMaxResultsDelegatesToConcreteQueryBuilder(): void { $this->concreteQueryBuilder->expects(self::atLeastOnce())->method('getMaxResults')->willReturn(1); $this->subject->getMaxResults(); } - /** - * @test - */ + #[Test] public function addDelegatesToConcreteQueryBuilder(): void { $this->concreteQueryBuilder->expects(self::atLeastOnce())->method('add')->with('select', 'aField', self::anything()) @@ -206,9 +178,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->add('select', 'aField'); } - /** - * @test - */ + #[Test] public function countBuildsExpressionAndCallsSelect(): void { $this->connection->method('getDatabasePlatform')->willReturn(new MockPlatform()); @@ -217,9 +187,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->count('*'); } - /** - * @test - */ + #[Test] public function selectQuotesIdentifiersAndDelegatesToConcreteQueryBuilder(): void { $series = [ @@ -295,10 +263,8 @@ final class QueryBuilderTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider quoteIdentifiersForSelectDataProvider - */ + #[DataProvider('quoteIdentifiersForSelectDataProvider')] + #[Test] public function quoteIdentifiersForSelect(string $identifier, string $expectedResult): void { $this->connection->method('quoteIdentifier')->willReturnCallback( @@ -309,9 +275,7 @@ final class QueryBuilderTest extends UnitTestCase self::assertSame([$expectedResult], $this->subject->quoteIdentifiersForSelect([$identifier])); } - /** - * @test - */ + #[Test] public function quoteIdentifiersForSelectWithInvalidAlias(): void { $this->expectException(\InvalidArgumentException::class); @@ -324,9 +288,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->quoteIdentifiersForSelect(['aField AS anotherField,someField AS someThing']); } - /** - * @test - */ + #[Test] public function selectDoesNotQuoteStarPlaceholder(): void { $this->connection->expects(self::never())->method('quoteIdentifier')->with('*'); @@ -335,9 +297,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->select('*'); } - /** - * @test - */ + #[Test] public function addSelectQuotesIdentifiersAndDelegatesToConcreteQueryBuilder(): void { $series = [ @@ -355,9 +315,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->addSelect('aField', 'anotherField'); } - /** - * @test - */ + #[Test] public function addSelectDoesNotQuoteStarPlaceholder(): void { $this->connection->expects(self::never())->method('quoteIdentifier')->with('*'); @@ -366,9 +324,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->addSelect('*'); } - /** - * @test - */ + #[Test] public function selectLiteralDirectlyDelegatesToConcreteQueryBuilder(): void { $this->connection->expects(self::never())->method('quoteIdentifier')->with(self::anything()); @@ -377,9 +333,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->selectLiteral('MAX(aField) AS anAlias'); } - /** - * @test - */ + #[Test] public function addSelectLiteralDirectlyDelegatesToConcreteQueryBuilder(): void { $this->connection->expects(self::never())->method('quoteIdentifier')->with(self::anything()); @@ -389,9 +343,9 @@ final class QueryBuilderTest extends UnitTestCase } /** - * @test * @todo: Test with alias */ + #[Test] public function deleteQuotesIdentifierAndDelegatesToConcreteQueryBuilder(): void { $this->connection->expects(self::atLeastOnce())->method('quoteIdentifier')->with('aTable') @@ -401,9 +355,9 @@ final class QueryBuilderTest extends UnitTestCase } /** - * @test * @todo: Test with alias */ + #[Test] public function updateQuotesIdentifierAndDelegatesToConcreteQueryBuilder(): void { $this->connection->expects(self::atLeastOnce())->method('quoteIdentifier')->with('aTable') @@ -412,9 +366,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->update('aTable'); } - /** - * @test - */ + #[Test] public function insertQuotesIdentifierAndDelegatesToConcreteQueryBuilder(): void { $this->connection->expects(self::atLeastOnce())->method('quoteIdentifier')->with('aTable') @@ -424,9 +376,9 @@ final class QueryBuilderTest extends UnitTestCase } /** - * @test * @todo: Test with alias */ + #[Test] public function fromQuotesIdentifierAndDelegatesToConcreteQueryBuilder(): void { $this->connection->expects(self::atLeastOnce())->method('quoteIdentifier')->with('aTable') @@ -435,9 +387,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->from('aTable'); } - /** - * @test - */ + #[Test] public function joinQuotesIdentifiersAndDelegatesToConcreteQueryBuilder(): void { $series = [ @@ -456,9 +406,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->join('fromAlias', 'join', 'alias'); } - /** - * @test - */ + #[Test] public function innerJoinQuotesIdentifiersAndDelegatesToConcreteQueryBuilder(): void { $series = [ @@ -477,9 +425,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->innerJoin('fromAlias', 'join', 'alias'); } - /** - * @test - */ + #[Test] public function leftJoinQuotesIdentifiersAndDelegatesToConcreteQueryBuilder(): void { $series = [ @@ -500,9 +446,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->leftJoin('fromAlias', 'join', 'alias'); } - /** - * @test - */ + #[Test] public function rightJoinQuotesIdentifiersAndDelegatesToConcreteQueryBuilder(): void { $series = [ @@ -524,9 +468,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->rightJoin('fromAlias', 'join', 'alias'); } - /** - * @test - */ + #[Test] public function setQuotesIdentifierAndDelegatesToConcreteQueryBuilder(): void { $this->connection->expects(self::atLeastOnce())->method('quoteIdentifier')->with('aField') @@ -538,9 +480,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->set('aField', 'aValue'); } - /** - * @test - */ + #[Test] public function setWithoutNamedParameterQuotesIdentifierAndDelegatesToConcreteQueryBuilder(): void { $this->connection->expects(self::atLeastOnce())->method('quoteIdentifier')->with('aField') @@ -551,9 +491,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->set('aField', 'aValue', false); } - /** - * @test - */ + #[Test] public function whereDelegatesToConcreteQueryBuilder(): void { $this->concreteQueryBuilder->expects(self::atLeastOnce())->method('where')->with('uid=1', 'type=9') @@ -561,9 +499,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->where('uid=1', 'type=9'); } - /** - * @test - */ + #[Test] public function andWhereDelegatesToConcreteQueryBuilder(): void { $this->concreteQueryBuilder->expects(self::atLeastOnce())->method('andWhere')->with('uid=1', 'type=9') @@ -571,9 +507,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->andWhere('uid=1', 'type=9'); } - /** - * @test - */ + #[Test] public function orWhereDelegatesToConcreteQueryBuilder(): void { $this->concreteQueryBuilder->expects(self::atLeastOnce())->method('orWhere')->with('uid=1', 'type=9') @@ -581,9 +515,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->orWhere('uid=1', 'type=9'); } - /** - * @test - */ + #[Test] public function groupByQuotesIdentifierAndDelegatesToConcreteQueryBuilder(): void { $this->connection->expects(self::atLeastOnce())->method('quoteIdentifiers')->with(['aField', 'anotherField']) @@ -593,9 +525,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->groupBy('aField', 'anotherField'); } - /** - * @test - */ + #[Test] public function addGroupByQuotesIdentifierAndDelegatesToConcreteQueryBuilder(): void { $this->connection->expects(self::atLeastOnce())->method('quoteIdentifiers')->with(['aField', 'anotherField']) @@ -605,9 +535,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->addGroupBy('aField', 'anotherField'); } - /** - * @test - */ + #[Test] public function setValueQuotesIdentifierAndDelegatesToConcreteQueryBuilder(): void { $this->connection->expects(self::atLeastOnce())->method('quoteIdentifier')->with('aField') @@ -619,9 +547,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->setValue('aField', 'aValue'); } - /** - * @test - */ + #[Test] public function setValueWithoutNamedParameterQuotesIdentifierAndDelegatesToConcreteQueryBuilder(): void { $this->connection->expects(self::atLeastOnce())->method('quoteIdentifier')->with('aField') @@ -631,9 +557,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->setValue('aField', 'aValue', false); } - /** - * @test - */ + #[Test] public function valuesQuotesIdentifiersAndDelegatesToConcreteQueryBuilder(): void { $this->connection->expects(self::atLeastOnce())->method('quoteColumnValuePairs') @@ -653,9 +577,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->values(['aField' => 1, 'aValue' => 2]); } - /** - * @test - */ + #[Test] public function valuesWithoutNamedParametersQuotesIdentifiersAndDelegatesToConcreteQueryBuilder(): void { $this->connection->expects(self::atLeastOnce())->method('quoteColumnValuePairs') @@ -665,9 +587,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->values(['aField' => 1, 'aValue' => 2], false); } - /** - * @test - */ + #[Test] public function havingDelegatesToConcreteQueryBuilder(): void { $this->concreteQueryBuilder->expects(self::atLeastOnce())->method('having')->with('uid=1', 'type=9') @@ -675,9 +595,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->having('uid=1', 'type=9'); } - /** - * @test - */ + #[Test] public function andHavingDelegatesToConcreteQueryBuilder(): void { $this->concreteQueryBuilder->expects(self::atLeastOnce())->method('andHaving')->with('uid=1', 'type=9') @@ -685,9 +603,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->andHaving('uid=1', 'type=9'); } - /** - * @test - */ + #[Test] public function orHavingDelegatesToConcreteQueryBuilder(): void { $this->concreteQueryBuilder->expects(self::atLeastOnce())->method('orHaving')->with('uid=1', 'type=9') @@ -695,9 +611,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->orHaving('uid=1', 'type=9'); } - /** - * @test - */ + #[Test] public function orderByQuotesIdentifierAndDelegatesToConcreteQueryBuilder(): void { $this->connection->expects(self::atLeastOnce())->method('quoteIdentifier')->with('aField') @@ -707,9 +621,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->orderBy('aField'); } - /** - * @test - */ + #[Test] public function addOrderByQuotesIdentifierAndDelegatesToConcreteQueryBuilder(): void { $this->connection->expects(self::atLeastOnce())->method('quoteIdentifier')->with('aField') @@ -719,9 +631,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->addOrderBy('aField', 'DESC'); } - /** - * @test - */ + #[Test] public function getQueryPartDelegatesToConcreteQueryBuilder(): void { $this->concreteQueryBuilder->expects(self::atLeastOnce())->method('getQueryPart')->with('from') @@ -729,9 +639,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->getQueryPart('from'); } - /** - * @test - */ + #[Test] public function getQueryPartsDelegatesToConcreteQueryBuilder(): void { $this->concreteQueryBuilder->expects(self::atLeastOnce())->method('getQueryParts') @@ -739,9 +647,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->getQueryParts(); } - /** - * @test - */ + #[Test] public function resetQueryPartsDelegatesToConcreteQueryBuilder(): void { $this->concreteQueryBuilder->expects(self::atLeastOnce())->method('resetQueryParts')->with(['select', 'from']) @@ -749,9 +655,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->resetQueryParts(['select', 'from']); } - /** - * @test - */ + #[Test] public function resetQueryPartDelegatesToConcreteQueryBuilder(): void { $this->concreteQueryBuilder->expects(self::atLeastOnce())->method('resetQueryPart')->with('select') @@ -759,9 +663,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->resetQueryPart('select'); } - /** - * @test - */ + #[Test] public function createNamedParameterDelegatesToConcreteQueryBuilder(): void { $this->concreteQueryBuilder->expects(self::atLeastOnce())->method('createNamedParameter') @@ -769,9 +671,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->createNamedParameter(5); } - /** - * @test - */ + #[Test] public function createPositionalParameterDelegatesToConcreteQueryBuilder(): void { $this->concreteQueryBuilder->expects(self::atLeastOnce())->method('createPositionalParameter') @@ -779,9 +679,7 @@ final class QueryBuilderTest extends UnitTestCase $this->subject->createPositionalParameter(5); } - /** - * @test - */ + #[Test] public function queryRestrictionsAreAddedForSelectOnExecuteQuery(): void { $GLOBALS['TCA']['pages']['ctrl'] = [ @@ -824,9 +722,7 @@ final class QueryBuilderTest extends UnitTestCase $subject->executeQuery(); } - /** - * @test - */ + #[Test] public function queryRestrictionsAreAddedForCountOnExecuteQuery(): void { $GLOBALS['TCA']['pages']['ctrl'] = [ @@ -869,9 +765,7 @@ final class QueryBuilderTest extends UnitTestCase $subject->executeQuery(); } - /** - * @test - */ + #[Test] public function queryRestrictionsAreReevaluatedOnSettingsChangeForGetSQL(): void { $GLOBALS['TCA']['pages']['ctrl'] = [ @@ -915,9 +809,7 @@ final class QueryBuilderTest extends UnitTestCase self::assertSame($expectedSQL, $subject->getSQL()); } - /** - * @test - */ + #[Test] public function queryRestrictionsAreReevaluatedOnSettingsChangeForExecuteQuery(): void { $GLOBALS['TCA']['pages']['ctrl'] = [ @@ -974,9 +866,7 @@ final class QueryBuilderTest extends UnitTestCase $subject->executeQuery(); } - /** - * @test - */ + #[Test] public function getQueriedTablesReturnsSameTableTwiceForInnerJoin(): void { $this->connection->method('getDatabasePlatform')->willReturn(new MockPlatform()); @@ -1036,7 +926,7 @@ final class QueryBuilderTest extends UnitTestCase 'expected' => 'anIdentifier', ], 'postgres' => [ - 'platform' => PostgreSqlPlatform::class, + 'platform' => PostgreSQLPlatform::class, 'quoteChar' => '"', 'input' => '"anIdentifier"', 'expected' => 'anIdentifier', @@ -1044,10 +934,8 @@ final class QueryBuilderTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider unquoteSingleIdentifierUnquotesCorrectlyOnDifferentPlatformsDataProvider - */ + #[DataProvider('unquoteSingleIdentifierUnquotesCorrectlyOnDifferentPlatformsDataProvider')] + #[Test] public function unquoteSingleIdentifierUnquotesCorrectlyOnDifferentPlatforms(string $platform, string $quoteChar, string $input, string $expected): void { $connectionMock = $this->createMock(Connection::class); @@ -1059,18 +947,14 @@ final class QueryBuilderTest extends UnitTestCase self::assertEquals($expected, $result); } - /** - * @test - */ + #[Test] public function cloningQueryBuilderClonesConcreteQueryBuilder(): void { $clonedQueryBuilder = clone $this->subject; self::assertNotSame($this->subject->getConcreteQueryBuilder(), $clonedQueryBuilder->getConcreteQueryBuilder()); } - /** - * @test - */ + #[Test] public function changingClonedQueryBuilderDoesNotInfluenceSourceOne(): void { $GLOBALS['TCA']['pages']['ctrl'] = [ @@ -1128,9 +1012,7 @@ final class QueryBuilderTest extends UnitTestCase self::assertSame($expectedCountSQL, $clonedQueryBuilder->getSQL()); } - /** - * @test - */ + #[Test] public function settingRestrictionContainerWillAddAdditionalRestrictionsFromConstructor(): void { $restrictionClass = get_class($this->createMock(QueryRestrictionInterface::class)); @@ -1149,9 +1031,7 @@ final class QueryBuilderTest extends UnitTestCase $queryBuilder->setRestrictions($container); } - /** - * @test - */ + #[Test] public function settingRestrictionContainerWillAddAdditionalRestrictionsFromConfiguration(): void { $restrictionClass = get_class($this->createMock(QueryRestrictionInterface::class)); @@ -1168,9 +1048,7 @@ final class QueryBuilderTest extends UnitTestCase $queryBuilder->setRestrictions($container); } - /** - * @test - */ + #[Test] public function settingRestrictionContainerWillNotAddAdditionalRestrictionsFromConfigurationIfNotDisabled(): void { $restrictionClass = get_class($this->createMock(QueryRestrictionInterface::class)); @@ -1187,9 +1065,7 @@ final class QueryBuilderTest extends UnitTestCase $queryBuilder->setRestrictions($container); } - /** - * @test - */ + #[Test] public function resettingToDefaultRestrictionContainerWillAddAdditionalRestrictionsFromConfiguration(): void { $restrictionClass = get_class($this->createMock(QueryRestrictionInterface::class)); @@ -1210,10 +1086,10 @@ final class QueryBuilderTest extends UnitTestCase } /** - * @test - * @dataProvider createNamedParameterInput * @param mixed $input */ + #[DataProvider('createNamedParameterInput')] + #[Test] public function setWithNamedParameterPassesGivenTypeToCreateNamedParameter($input, int $type): void { $this->connection->method('quoteIdentifier')->with('aField') @@ -1255,7 +1131,7 @@ final class QueryBuilderTest extends UnitTestCase 'CONVERT(aField, CHAR)', ], 'Test cast for PostgreSqlPlatform' => [ - new PostgreSqlPlatform(), + new PostgreSQLPlatform(), 'aField::text', ], 'Test cast for SqlitePlatform' => [ @@ -1269,10 +1145,8 @@ final class QueryBuilderTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider castFieldToTextTypeDataProvider - */ + #[DataProvider('castFieldToTextTypeDataProvider')] + #[Test] public function castFieldToTextType(AbstractPlatform $platform, string $expectation): void { $this->connection->expects(self::atLeastOnce())->method('quoteIdentifier')->with('aField') @@ -1288,9 +1162,7 @@ final class QueryBuilderTest extends UnitTestCase self::assertSame($expectation, $result); } - /** - * @test - */ + #[Test] public function limitRestrictionsToTablesLimitsRestrictionsInTheContainerToTheGivenTables(): void { $GLOBALS['TCA']['tt_content']['ctrl'] = $GLOBALS['TCA']['pages']['ctrl'] = [ @@ -1337,9 +1209,7 @@ final class QueryBuilderTest extends UnitTestCase $subject->executeQuery(); } - /** - * @test - */ + #[Test] public function restrictionsCanStillBeRemovedAfterTheyHaveBeenLimitedToTables(): void { $GLOBALS['TCA']['tt_content']['ctrl'] = $GLOBALS['TCA']['pages']['ctrl'] = [ @@ -1387,9 +1257,7 @@ final class QueryBuilderTest extends UnitTestCase $subject->executeQuery(); } - /** - * @test - */ + #[Test] public function restrictionsAreAppliedInJoinConditionForLeftJoins(): void { $GLOBALS['TCA']['tt_content']['ctrl'] = $GLOBALS['TCA']['pages']['ctrl'] = [ @@ -1435,9 +1303,7 @@ final class QueryBuilderTest extends UnitTestCase $subject->executeQuery(); } - /** - * @test - */ + #[Test] public function restrictionsAreAppliedInJoinConditionForRightJoins(): void { $GLOBALS['TCA']['tt_content']['ctrl'] = $GLOBALS['TCA']['pages']['ctrl'] = [ diff --git a/typo3/sysext/core/Tests/Unit/Database/Query/QueryHelperTest.php b/typo3/sysext/core/Tests/Unit/Database/Query/QueryHelperTest.php index 547bebc20921b60f81f70f9be383aed1eb43ceea..c268242796324b02c466551c9d6d4176e9faf808 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Query/QueryHelperTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Query/QueryHelperTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Query; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Connection; use TYPO3\CMS\Core\Database\Query\QueryHelper; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -46,10 +48,8 @@ final class QueryHelperTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider stripLogicalOperatorPrefixDataProvider - */ + #[DataProvider('stripLogicalOperatorPrefixDataProvider')] + #[Test] public function stripLogicalOperatorPrefixRemovesConstraintPrefixes(string $input, string $expectedSql): void { self::assertSame($expectedSql, QueryHelper::stripLogicalOperatorPrefix($input)); @@ -128,10 +128,8 @@ final class QueryHelperTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider parseOrderByDataProvider - */ + #[DataProvider('parseOrderByDataProvider')] + #[Test] public function parseOrderByTest(string $input, array $expectedResult): void { self::assertSame($expectedResult, QueryHelper::parseOrderBy($input)); @@ -200,10 +198,8 @@ final class QueryHelperTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider parseTableListDataProvider - */ + #[DataProvider('parseTableListDataProvider')] + #[Test] public function parseTableListTest(string $input, array $expectedResult): void { self::assertSame($expectedResult, QueryHelper::parseTableList($input)); @@ -246,10 +242,8 @@ final class QueryHelperTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider parseGroupByDataProvider - */ + #[DataProvider('parseGroupByDataProvider')] + #[Test] public function parseGroupByTest(string $input, array $expectedResult): void { self::assertSame($expectedResult, QueryHelper::parseGroupBy($input)); @@ -416,10 +410,8 @@ final class QueryHelperTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider parseJoinDataProvider - */ + #[DataProvider('parseJoinDataProvider')] + #[Test] public function parseJoinSplitsStatement(string $input, array $expected): void { self::assertSame($expected, QueryHelper::parseJoin($input)); @@ -450,10 +442,8 @@ final class QueryHelperTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider quoteDatabaseIdentifierDataProvider - */ + #[DataProvider('quoteDatabaseIdentifierDataProvider')] + #[Test] public function quoteDatabaseIdentifiers(string $input, string $expected): void { $connectionMock = $this->createMock(Connection::class); diff --git a/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/AbstractRestrictionContainerTest.php b/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/AbstractRestrictionContainerTest.php index a3d60dd8e242332285fde3a7b329eb558b8f3710..e2bf7c4a4c2c8bba70c7da52f893198214711167 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/AbstractRestrictionContainerTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/AbstractRestrictionContainerTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Query\Restriction; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Query\Expression\CompositeExpression; use TYPO3\CMS\Core\Tests\Unit\Database\Mocks\InstantiatableAbstractRestrictionContainer; use TYPO3\CMS\Core\Tests\Unit\Database\Mocks\MockEnforceableQueryRestriction; @@ -24,9 +25,7 @@ use TYPO3\CMS\Core\Tests\Unit\Database\Mocks\MockQueryRestriction; final class AbstractRestrictionContainerTest extends AbstractRestrictionTestCase { - /** - * @test - */ + #[Test] public function enforceableRestrictionsAreKeptWhenRemoveAllIsCalled(): void { $restriction = $this->createMock(MockEnforceableQueryRestriction::class); @@ -42,9 +41,7 @@ final class AbstractRestrictionContainerTest extends AbstractRestrictionTestCase self::assertSame('"aTable"."pid" = 0', (string)$expression); } - /** - * @test - */ + #[Test] public function enforceableRestrictionsWillBeRemovedWhenRemovedByType(): void { $restriction = $this->createMock(MockEnforceableQueryRestriction::class); @@ -59,9 +56,7 @@ final class AbstractRestrictionContainerTest extends AbstractRestrictionTestCase self::assertSame('', (string)$expression); } - /** - * @test - */ + #[Test] public function enforceableRestrictionsWillBeRemovedWhenRemovedByTypeAndRemovedAllIsAdditionallyCalled(): void { $restriction = $this->createMock(MockEnforceableQueryRestriction::class); @@ -77,9 +72,7 @@ final class AbstractRestrictionContainerTest extends AbstractRestrictionTestCase self::assertSame('', (string)$expression); } - /** - * @test - */ + #[Test] public function notEnforceableRestrictionsAreRemovedWhenRemoveAllIsCalled(): void { $restriction = $this->createMock(MockQueryRestriction::class); @@ -93,9 +86,7 @@ final class AbstractRestrictionContainerTest extends AbstractRestrictionTestCase self::assertSame('', (string)$expression); } - /** - * @test - */ + #[Test] public function enforceableRestrictionsThatDeclareThemselvesNonStickyAreRemovedWhenRemoveAllIsCalled(): void { $restriction = $this->createMock(MockEnforceableQueryRestriction::class); diff --git a/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/DefaultRestrictionContainerTest.php b/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/DefaultRestrictionContainerTest.php index 76b01f0738534049db99f31aff02d77ed123ce7e..16a4b497bd445626694e4047fa670cc3379cab81 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/DefaultRestrictionContainerTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/DefaultRestrictionContainerTest.php @@ -17,13 +17,12 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Query\Restriction; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Query\Restriction\DefaultRestrictionContainer; final class DefaultRestrictionContainerTest extends AbstractRestrictionTestCase { - /** - * @test - */ + #[Test] public function buildRestrictionsAddsAllDefaultRestrictions(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ diff --git a/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/DeletedRestrictionTest.php b/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/DeletedRestrictionTest.php index db1b2f2fcb182ab73a473adf6841d4154ea93d3a..f2f9ef7b962082bf96771b018845a594d9d6490d 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/DeletedRestrictionTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/DeletedRestrictionTest.php @@ -17,13 +17,12 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Query\Restriction; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Query\Restriction\DeletedRestriction; final class DeletedRestrictionTest extends AbstractRestrictionTestCase { - /** - * @test - */ + #[Test] public function buildRestrictionsAddsDeletedWhereClause(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ diff --git a/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/DocumentTypeExclusionRestrictionTest.php b/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/DocumentTypeExclusionRestrictionTest.php index 07d9f5f964a208550a44fe4fc6c9f518be4e011f..8e133acdff74e9fdeafc2c19a8f5003db400135f 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/DocumentTypeExclusionRestrictionTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/DocumentTypeExclusionRestrictionTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Query\Restriction; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Query\Restriction\DocumentTypeExclusionRestriction; final class DocumentTypeExclusionRestrictionTest extends AbstractRestrictionTestCase @@ -39,11 +41,8 @@ final class DocumentTypeExclusionRestrictionTest extends AbstractRestrictionTest ]; } - /** - * @test - * - * @dataProvider buildRestrictionsAddsDoktypeWhereClauseDataProvider - */ + #[DataProvider('buildRestrictionsAddsDoktypeWhereClauseDataProvider')] + #[Test] public function buildRestrictionsAddsDoktypeWhereClause($excludedDocumentTypes, string $expected): void { $subject = new DocumentTypeExclusionRestriction($excludedDocumentTypes); diff --git a/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/EndTimeRestrictionTest.php b/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/EndTimeRestrictionTest.php index d87b28f8424adffee33884a8cee8ab4d74197bd1..98d18c9b90e1d2da9b6623a7c5bb534d4aa9197e 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/EndTimeRestrictionTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/EndTimeRestrictionTest.php @@ -17,13 +17,12 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Query\Restriction; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Query\Restriction\EndTimeRestriction; final class EndTimeRestrictionTest extends AbstractRestrictionTestCase { - /** - * @test - */ + #[Test] public function buildRestrictionsThrowsExceptionInStartTimeIfGlobalsAccessTimeIsMissing(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ @@ -40,9 +39,7 @@ final class EndTimeRestrictionTest extends AbstractRestrictionTestCase $subject->buildExpression(['aTable' => 'aTable'], $this->expressionBuilder); } - /** - * @test - */ + #[Test] public function buildRestrictionsAddsStartTimeWhereClause(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ diff --git a/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/FrontendGroupRestrictionTest.php b/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/FrontendGroupRestrictionTest.php index fb22b15f4eeb3b75e9a8439b3a550c936b7d8d59..e6af823c2fda5d040cc503ddb593f45a6ceb3b83 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/FrontendGroupRestrictionTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/FrontendGroupRestrictionTest.php @@ -17,13 +17,12 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Query\Restriction; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Query\Restriction\FrontendGroupRestriction; final class FrontendGroupRestrictionTest extends AbstractRestrictionTestCase { - /** - * @test - */ + #[Test] public function buildExpressionAddsNoAccessGroupWhereClause(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ @@ -36,9 +35,7 @@ final class FrontendGroupRestrictionTest extends AbstractRestrictionTestCase self::assertSame('(("aTable"."myGroupField" IS NULL) OR ("aTable"."myGroupField" = \'\') OR ("aTable"."myGroupField" = \'0\'))', (string)$expression); } - /** - * @test - */ + #[Test] public function buildExpressionAddsGroupWhereClause(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ diff --git a/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/FrontendRestrictionContainerTest.php b/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/FrontendRestrictionContainerTest.php index fa13e5bf724aaf28ae2f23e7927d920a334710af..89b1e31569d2d769fdf9c3b021c96cd89c3a770a 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/FrontendRestrictionContainerTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/FrontendRestrictionContainerTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Query\Restriction; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Context\Context; use TYPO3\CMS\Core\Context\UserAspect; use TYPO3\CMS\Core\Context\VisibilityAspect; @@ -135,10 +137,8 @@ final class FrontendRestrictionContainerTest extends AbstractRestrictionTestCase ]; } - /** - * @test - * @dataProvider frontendStatesDataProvider - */ + #[DataProvider('frontendStatesDataProvider')] + #[Test] public function buildExpressionAddsCorrectClause( string $tableName, string $tableAlias, diff --git a/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/HiddenRestrictionTest.php b/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/HiddenRestrictionTest.php index fbf773f59879de2a610c917476cb28c3d44fe890..fe6f98c88909cefd0775003c7c654c30eda4f87c 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/HiddenRestrictionTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/HiddenRestrictionTest.php @@ -17,13 +17,12 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Query\Restriction; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Query\Restriction\HiddenRestriction; final class HiddenRestrictionTest extends AbstractRestrictionTestCase { - /** - * @test - */ + #[Test] public function buildRestrictionsAddsHiddenWhereClause(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ diff --git a/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/LimitToTablesRestrictionContainerTest.php b/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/LimitToTablesRestrictionContainerTest.php index 246486f2f60c5e367e23b00ee464fd3ec65415df..8aad415e233c18e55ee67aa4557c622493339746 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/LimitToTablesRestrictionContainerTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/LimitToTablesRestrictionContainerTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Query\Restriction; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Query\Restriction\DefaultRestrictionContainer; use TYPO3\CMS\Core\Database\Query\Restriction\DeletedRestriction; use TYPO3\CMS\Core\Database\Query\Restriction\HiddenRestriction; @@ -25,9 +26,7 @@ use TYPO3\CMS\Core\Database\Query\Restriction\QueryRestrictionContainerInterface final class LimitToTablesRestrictionContainerTest extends AbstractRestrictionTestCase { - /** - * @test - */ + #[Test] public function buildExpressionAddsRestrictionsOnlyToGivenAlias(): void { $GLOBALS['TCA']['bTable']['ctrl']['enablecolumns']['disabled'] = 'hidden'; @@ -38,9 +37,7 @@ final class LimitToTablesRestrictionContainerTest extends AbstractRestrictionTes self::assertSame('"bt"."hidden" = 0', (string)$expression); } - /** - * @test - */ + #[Test] public function buildExpressionAddsRestrictionsOfDefaultRestrictionContainerOnlyToGivenAlias(): void { $GLOBALS['TCA']['bTable']['ctrl']['enablecolumns']['disabled'] = 'hidden'; @@ -52,9 +49,7 @@ final class LimitToTablesRestrictionContainerTest extends AbstractRestrictionTes self::assertSame('(("bt"."deleted" = 0) AND ("bt"."hidden" = 0))', (string)$expression); } - /** - * @test - */ + #[Test] public function removeByTypeRemovesRestrictionsByTypeAlsoFromDefaultRestrictionContainer(): void { $GLOBALS['TCA']['bTable']['ctrl']['enablecolumns']['disabled'] = 'hidden'; @@ -67,9 +62,7 @@ final class LimitToTablesRestrictionContainerTest extends AbstractRestrictionTes self::assertSame('"bt"."hidden" = 0', (string)$expression); } - /** - * @test - */ + #[Test] public function removeByTypeRemovesRestrictionsByTypeAlsoFromAnyRestrictionContainer(): void { $GLOBALS['TCA']['bTable']['ctrl']['enablecolumns']['disabled'] = 'hidden'; diff --git a/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/PageIdListRestrictionTest.php b/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/PageIdListRestrictionTest.php index 3e2962022939299d4b35a9b4654d32e93972c62d..81dccdaf4bdee706af420f69da0c6d5a9b0fe842 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/PageIdListRestrictionTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/PageIdListRestrictionTest.php @@ -17,13 +17,12 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Query\Restriction; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Query\Restriction\PageIdListRestriction; final class PageIdListRestrictionTest extends AbstractRestrictionTestCase { - /** - * @test - */ + #[Test] public function buildRestrictionsAddsPidWhereClause(): void { $subject = new PageIdListRestriction([], [0]); @@ -31,9 +30,7 @@ final class PageIdListRestrictionTest extends AbstractRestrictionTestCase self::assertSame('"aTable"."pid" IN (0)', (string)$expression); } - /** - * @test - */ + #[Test] public function buildRestrictionsAddsAliasedPidWhereClause(): void { $subject = new PageIdListRestriction([], [13, 14]); @@ -41,9 +38,7 @@ final class PageIdListRestrictionTest extends AbstractRestrictionTestCase self::assertSame('"aTableAlias"."pid" IN (13, 14)', (string)$expression); } - /** - * @test - */ + #[Test] public function buildRestrictionsAddsPidWhereClauseIfTableIsSpecified(): void { $subject = new PageIdListRestriction(['aTable'], [13, 14]); @@ -51,9 +46,7 @@ final class PageIdListRestrictionTest extends AbstractRestrictionTestCase self::assertSame('"aTable"."pid" IN (13, 14)', (string)$expression); } - /** - * @test - */ + #[Test] public function buildRestrictionsAddsAliasedPidWhereClauseIfAliasIsSpecified(): void { $subject = new PageIdListRestriction(['aTableAlias'], [13, 14]); @@ -61,9 +54,7 @@ final class PageIdListRestrictionTest extends AbstractRestrictionTestCase self::assertSame('"aTableAlias"."pid" IN (13, 14)', (string)$expression); } - /** - * @test - */ + #[Test] public function buildRestrictionsConvertsToIntegers(): void { $subject = new PageIdListRestriction(['aTableAlias'], ['13', '14']); @@ -71,9 +62,7 @@ final class PageIdListRestrictionTest extends AbstractRestrictionTestCase self::assertSame('"aTableAlias"."pid" IN (13, 14)', (string)$expression); } - /** - * @test - */ + #[Test] public function buildRestrictionsSkipsUnrestrictedTablesIfOtherTableIsSpecifiedThanUsedInTheQuery(): void { $subject = new PageIdListRestriction(['aTable'], [13, 14]); diff --git a/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/PagePermissionRestrictionTest.php b/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/PagePermissionRestrictionTest.php index dec15deb31c3ee722cf458ba7f77cb1ccf12c1d7..7da4877082b80729f313e6ba75ae63db917d7991 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/PagePermissionRestrictionTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/PagePermissionRestrictionTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Query\Restriction; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Context\UserAspect; use TYPO3\CMS\Core\Database\Query\Restriction\PagePermissionRestriction; use TYPO3\CMS\Core\Type\Bitmask\Permission; @@ -62,9 +63,7 @@ final class PagePermissionRestrictionTest extends AbstractRestrictionTestCase }; } - /** - * @test - */ + #[Test] public function buildRestrictionsOnlyWorksOnPagesTable(): void { $aspect = $this->getPreparedUserAspect(true, false, 2, [13]); @@ -75,9 +74,7 @@ final class PagePermissionRestrictionTest extends AbstractRestrictionTestCase self::assertEmpty((string)$expression); } - /** - * @test - */ + #[Test] public function buildRestrictionsReturnsAZeroReturnSetWhenNotLoggedIn(): void { $aspect = $this->getPreparedUserAspect(false, false, 2, [13]); @@ -86,9 +83,7 @@ final class PagePermissionRestrictionTest extends AbstractRestrictionTestCase self::assertSame('1 = 0', (string)$expression); } - /** - * @test - */ + #[Test] public function buildRestrictionsIsSkippedForAdmins(): void { $aspect = $this->getPreparedUserAspect(true, true, 2, [13]); @@ -97,9 +92,7 @@ final class PagePermissionRestrictionTest extends AbstractRestrictionTestCase self::assertEmpty((string)$expression); } - /** - * @test - */ + #[Test] public function buildRestrictionsContainsNonAdminUserIdAsOwnerAndGroupIdsAsOwnerGroup(): void { $aspect = $this->getPreparedUserAspect(true, false, 2, [13, 14, 15, 16]); @@ -108,9 +101,7 @@ final class PagePermissionRestrictionTest extends AbstractRestrictionTestCase self::assertEquals('(("pages"."perms_everybody" & 1 = 1) OR ((("pages"."perms_userid" = 2) AND ("pages"."perms_user" & 1 = 1))) OR ((("pages"."perms_groupid" IN (13, 14, 15, 16)) AND ("pages"."perms_group" & 1 = 1))))', (string)$expression); } - /** - * @test - */ + #[Test] public function buildRestrictionsChecksForDeletionPermission(): void { $aspect = $this->getPreparedUserAspect(true, false, 42, [13, 14, 15, 16]); diff --git a/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/RootLevelRestrictionTest.php b/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/RootLevelRestrictionTest.php index 65259467549e0a41610dd282ed2e04f053c4aec8..20e5654047d6dfcccd53c238bc8c5794b4f7735d 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/RootLevelRestrictionTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/RootLevelRestrictionTest.php @@ -17,13 +17,12 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Query\Restriction; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Query\Restriction\RootLevelRestriction; final class RootLevelRestrictionTest extends AbstractRestrictionTestCase { - /** - * @test - */ + #[Test] public function buildRestrictionsAddsPidWhereClause(): void { $subject = new RootLevelRestriction(); @@ -31,9 +30,7 @@ final class RootLevelRestrictionTest extends AbstractRestrictionTestCase self::assertSame('"aTable"."pid" = 0', (string)$expression); } - /** - * @test - */ + #[Test] public function buildRestrictionsAddsAliasedPidWhereClause(): void { $subject = new RootLevelRestriction(); @@ -41,9 +38,7 @@ final class RootLevelRestrictionTest extends AbstractRestrictionTestCase self::assertSame('"aTableAlias"."pid" = 0', (string)$expression); } - /** - * @test - */ + #[Test] public function buildRestrictionsAddsPidWhereClauseIfTableIsSpecified(): void { $subject = new RootLevelRestriction(['aTable']); @@ -51,9 +46,7 @@ final class RootLevelRestrictionTest extends AbstractRestrictionTestCase self::assertSame('"aTable"."pid" = 0', (string)$expression); } - /** - * @test - */ + #[Test] public function buildRestrictionsAddsAliasedPidWhereClauseIfAliasIsSpecified(): void { $subject = new RootLevelRestriction(['aTableAlias']); @@ -61,9 +54,7 @@ final class RootLevelRestrictionTest extends AbstractRestrictionTestCase self::assertSame('"aTableAlias"."pid" = 0', (string)$expression); } - /** - * @test - */ + #[Test] public function buildRestrictionsSkipsUnrestrictedTablesIfOtherTableIsSpecifiedThanUsedInTheQuery(): void { $subject = new RootLevelRestriction(['aTable']); diff --git a/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/StartTimeRestrictionTest.php b/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/StartTimeRestrictionTest.php index 97e1b55d0807aac9bcad5057d4dcd18d58b02904..ba691e934fc2c48cc1c46942e56d79ac88146a3f 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/StartTimeRestrictionTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/StartTimeRestrictionTest.php @@ -17,13 +17,12 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Query\Restriction; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Query\Restriction\StartTimeRestriction; final class StartTimeRestrictionTest extends AbstractRestrictionTestCase { - /** - * @test - */ + #[Test] public function buildRestrictionsThrowsExceptionInStartTimeIfGlobalsAccessTimeIsMissing(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ @@ -40,9 +39,7 @@ final class StartTimeRestrictionTest extends AbstractRestrictionTestCase $subject->buildExpression(['aTable' => 'aTable'], $this->expressionBuilder); } - /** - * @test - */ + #[Test] public function buildRestrictionsAddsStartTimeWhereClause(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ diff --git a/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/WorkspaceRestrictionTest.php b/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/WorkspaceRestrictionTest.php index 75790da9f183e898ba2103e0067172cfc0910009..c0f65c667b79900fb364edfb272d480a420f3615 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/WorkspaceRestrictionTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Query/Restriction/WorkspaceRestrictionTest.php @@ -17,13 +17,12 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Query\Restriction; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Query\Restriction\WorkspaceRestriction; final class WorkspaceRestrictionTest extends AbstractRestrictionTestCase { - /** - * @test - */ + #[Test] public function buildExpressionAddsLiveWorkspaceWhereClause(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ @@ -34,9 +33,7 @@ final class WorkspaceRestrictionTest extends AbstractRestrictionTestCase self::assertSame('(("aTable"."t3ver_wsid" = 0) AND ((("aTable"."t3ver_oid" = 0) OR ("aTable"."t3ver_state" = 4))))', (string)$expression); } - /** - * @test - */ + #[Test] public function buildExpressionAddsNonLiveWorkspaceWhereClause(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ @@ -47,9 +44,7 @@ final class WorkspaceRestrictionTest extends AbstractRestrictionTestCase self::assertSame('(("aTable"."t3ver_wsid" IN (0, 42)) AND ((("aTable"."t3ver_oid" = 0) OR ("aTable"."t3ver_state" = 4))))', (string)$expression); } - /** - * @test - */ + #[Test] public function buildExpressionAddsLiveWorkspaceLimitedWhereClause(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ @@ -60,9 +55,7 @@ final class WorkspaceRestrictionTest extends AbstractRestrictionTestCase self::assertSame('', (string)$expression); } - /** - * @test - */ + #[Test] public function buildExpressionAddsNonLiveWorkspaceLimitedWhereClause(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ @@ -73,9 +66,7 @@ final class WorkspaceRestrictionTest extends AbstractRestrictionTestCase self::assertSame('', (string)$expression); } - /** - * @test - */ + #[Test] public function buildExpressionQueriesAllVersionedRecordsWithinAWorkspaceAsWell(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ @@ -85,9 +76,7 @@ final class WorkspaceRestrictionTest extends AbstractRestrictionTestCase $expression = $subject->buildExpression(['aTable' => 'aTable'], $this->expressionBuilder); self::assertSame('(("aTable"."t3ver_wsid" IN (0, 42)) AND ("t3ver_state" <> 2))', (string)$expression); } - /** - * @test - */ + #[Test] public function buildExpressionQueriesAllVersionedRecordsWithinLiveStillRemovesDeletedState(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ diff --git a/typo3/sysext/core/Tests/Unit/Database/RelationHandlerTest.php b/typo3/sysext/core/Tests/Unit/Database/RelationHandlerTest.php index 140883dcd2415bef7d2d812ec48b9fc6c4545fd2..a6751368ace4b88f36822dab0b168befa2229f97 100644 --- a/typo3/sysext/core/Tests/Unit/Database/RelationHandlerTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/RelationHandlerTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Core\Database\RelationHandler; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -33,9 +34,7 @@ final class RelationHandlerTest extends UnitTestCase ->getMock(); } - /** - * @test - */ + #[Test] public function purgeItemArrayReturnsFalseIfVersioningForTableIsDisabled(): void { $GLOBALS['TCA']['sys_category']['ctrl']['versioningWS'] = false; @@ -47,9 +46,7 @@ final class RelationHandlerTest extends UnitTestCase self::assertFalse($this->subject->purgeItemArray(0)); } - /** - * @test - */ + #[Test] public function purgeItemArrayReturnsTrueIfItemsHaveBeenPurged(): void { $GLOBALS['TCA']['sys_category']['ctrl']['versioningWS'] = true; diff --git a/typo3/sysext/core/Tests/Unit/Database/Schema/ConnectionMigratorTest.php b/typo3/sysext/core/Tests/Unit/Database/Schema/ConnectionMigratorTest.php index 70a210b1c3697b1e96a4b35b1aaeb5dedd022dff..74af9351159f8f208fd9b592b565a2c0bc34e19c 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Schema/ConnectionMigratorTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Schema/ConnectionMigratorTest.php @@ -23,6 +23,7 @@ use Doctrine\DBAL\Schema\SchemaDiff; use Doctrine\DBAL\Schema\Table; use Doctrine\DBAL\Schema\TableDiff; use Doctrine\DBAL\Types\Type; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Core\Database\Connection; use TYPO3\CMS\Core\Database\Platform\PlatformInformation; @@ -54,9 +55,7 @@ final class ConnectionMigratorTest extends UnitTestCase $this->subject->_set('connection', $connectionMock); } - /** - * @test - */ + #[Test] public function tableNamesStickToTheMaximumCharactersWhenPrefixedForRemoval(): void { $originalSchemaDiff = new SchemaDiff([], [], [$this->getTable()]); @@ -69,9 +68,7 @@ final class ConnectionMigratorTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function columnNamesStickToTheMaximumCharactersWhenPrefixedForRemoval(): void { $table = $this->getTable(); diff --git a/typo3/sysext/core/Tests/Unit/Database/Schema/DefaultTcaSchemaTest.php b/typo3/sysext/core/Tests/Unit/Database/Schema/DefaultTcaSchemaTest.php index 6f413acde3f341599ed798ff651ca05655951881..86c85ccb166ea89bc0afb4051b9694427342b1ed 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Schema/DefaultTcaSchemaTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Schema/DefaultTcaSchemaTest.php @@ -24,6 +24,7 @@ use Doctrine\DBAL\Schema\Table; use Doctrine\DBAL\Types\IntegerType; use Doctrine\DBAL\Types\StringType; use Doctrine\DBAL\Types\Type; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Schema\DefaultTcaSchema; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -39,18 +40,14 @@ final class DefaultTcaSchemaTest extends UnitTestCase $this->defaultTable = new Table('aTable'); } - /** - * @test - */ + #[Test] public function enrichKeepsGivenTablesArrayWithEmptyTca(): void { $GLOBALS['TCA'] = []; self::assertEquals([$this->defaultTable], $this->subject->enrich([$this->defaultTable])); } - /** - * @test - */ + #[Test] public function enrichDoesNotAddColumnIfExists(): void { $GLOBALS['TCA']['aTable']['ctrl'] = []; @@ -70,9 +67,7 @@ final class DefaultTcaSchemaTest extends UnitTestCase self::assertEquals($expected, $this->subject->enrich($input)); } - /** - * @test - */ + #[Test] public function enrichDoesNotAddColumnIfTableExistsMultipleTimesAndUidExists(): void { $GLOBALS['TCA']['aTable']['ctrl'] = []; @@ -98,9 +93,7 @@ final class DefaultTcaSchemaTest extends UnitTestCase self::assertEquals($expected, $this->subject->enrich($input)); } - /** - * @test - */ + #[Test] public function enrichAddsFieldToFirstTableDefinitionOfThatName(): void { $GLOBALS['TCA']['aTable']['ctrl'] = []; @@ -118,9 +111,7 @@ final class DefaultTcaSchemaTest extends UnitTestCase self::assertInstanceOf(Column::class, $result[0]->getColumn('uid')); } - /** - * @test - */ + #[Test] public function enrichAddsUidAndPrimaryKey(): void { $GLOBALS['TCA']['aTable']['ctrl'] = []; @@ -139,9 +130,7 @@ final class DefaultTcaSchemaTest extends UnitTestCase self::assertEquals($expectedPrimaryKey, $result[0]->getPrimaryKey()); } - /** - * @test - */ + #[Test] public function enrichAddsPid(): void { $GLOBALS['TCA']['aTable']['ctrl'] = []; @@ -158,9 +147,7 @@ final class DefaultTcaSchemaTest extends UnitTestCase self::assertEquals($expectedPidColumn, $result[0]->getColumn('pid')); } - /** - * @test - */ + #[Test] public function enrichAddsTstamp(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ @@ -179,9 +166,7 @@ final class DefaultTcaSchemaTest extends UnitTestCase self::assertEquals($expectedColumn, $result[0]->getColumn('updatedon')); } - /** - * @test - */ + #[Test] public function enrichAddsCrdate(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ @@ -200,9 +185,7 @@ final class DefaultTcaSchemaTest extends UnitTestCase self::assertEquals($expectedColumn, $result[0]->getColumn('createdon')); } - /** - * @test - */ + #[Test] public function enrichAddsDeleted(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ @@ -221,9 +204,7 @@ final class DefaultTcaSchemaTest extends UnitTestCase self::assertEquals($expectedColumn, $result[0]->getColumn('deleted')); } - /** - * @test - */ + #[Test] public function enrichAddsDisabled(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ @@ -244,9 +225,7 @@ final class DefaultTcaSchemaTest extends UnitTestCase self::assertEquals($expectedColumn, $result[0]->getColumn('disabled')); } - /** - * @test - */ + #[Test] public function enrichAddsStarttime(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ @@ -267,9 +246,7 @@ final class DefaultTcaSchemaTest extends UnitTestCase self::assertEquals($expectedColumn, $result[0]->getColumn('starttime')); } - /** - * @test - */ + #[Test] public function enrichAddsEndtime(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ @@ -290,9 +267,7 @@ final class DefaultTcaSchemaTest extends UnitTestCase self::assertEquals($expectedColumn, $result[0]->getColumn('endtime')); } - /** - * @test - */ + #[Test] public function enrichAddsFegroup(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ @@ -313,9 +288,7 @@ final class DefaultTcaSchemaTest extends UnitTestCase self::assertEquals($expectedColumn, $result[0]->getColumn('fe_group')); } - /** - * @test - */ + #[Test] public function enrichAddsSorting(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ @@ -334,9 +307,7 @@ final class DefaultTcaSchemaTest extends UnitTestCase self::assertEquals($expectedColumn, $result[0]->getColumn('sorting')); } - /** - * @test - */ + #[Test] public function enrichAddsParentKey(): void { $GLOBALS['TCA']['aTable']['ctrl'] = []; @@ -345,9 +316,7 @@ final class DefaultTcaSchemaTest extends UnitTestCase self::assertEquals($expectedIndex, $result[0]->getIndex('parent')); } - /** - * @test - */ + #[Test] public function enrichAddsParentKeyWithDelete(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ @@ -358,9 +327,7 @@ final class DefaultTcaSchemaTest extends UnitTestCase self::assertEquals($expectedIndex, $result[0]->getIndex('parent')); } - /** - * @test - */ + #[Test] public function enrichAddsParentKeyWithDisabled(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ @@ -373,9 +340,7 @@ final class DefaultTcaSchemaTest extends UnitTestCase self::assertEquals($expectedIndex, $result[0]->getIndex('parent')); } - /** - * @test - */ + #[Test] public function enrichAddsParentKeyInCorrectOrder(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ @@ -389,9 +354,7 @@ final class DefaultTcaSchemaTest extends UnitTestCase self::assertEquals($expectedIndex, $result[0]->getIndex('parent')); } - /** - * @test - */ + #[Test] public function enrichAddsSysLanguageUid(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ @@ -410,9 +373,7 @@ final class DefaultTcaSchemaTest extends UnitTestCase self::assertEquals($expectedColumn, $result[0]->getColumn('sys_language_uid')); } - /** - * @test - */ + #[Test] public function enrichAddsL10nParent(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ @@ -432,9 +393,7 @@ final class DefaultTcaSchemaTest extends UnitTestCase self::assertEquals($expectedColumn, $result[0]->getColumn('l10n_parent')); } - /** - * @test - */ + #[Test] public function enrichDoesNotAddL10nParentIfLanguageFieldIsNotDefined(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ @@ -445,9 +404,7 @@ final class DefaultTcaSchemaTest extends UnitTestCase $result[0]->getColumn('l10n_parent'); } - /** - * @test - */ + #[Test] public function enrichAddsDescription(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ @@ -465,9 +422,7 @@ final class DefaultTcaSchemaTest extends UnitTestCase self::assertEquals($expectedColumn, $result[0]->getColumn('rowDescription')); } - /** - * @test - */ + #[Test] public function enrichAddsEditlock(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ @@ -486,9 +441,7 @@ final class DefaultTcaSchemaTest extends UnitTestCase self::assertEquals($expectedColumn, $result[0]->getColumn('editlock')); } - /** - * @test - */ + #[Test] public function enrichAddsL10nSource(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ @@ -508,9 +461,7 @@ final class DefaultTcaSchemaTest extends UnitTestCase self::assertEquals($expectedColumn, $result[0]->getColumn('l10n_source')); } - /** - * @test - */ + #[Test] public function enrichDoesNotAddL10nSourceIfLanguageFieldIsNotDefined(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ @@ -521,9 +472,7 @@ final class DefaultTcaSchemaTest extends UnitTestCase $result[0]->getColumn('l10n_source'); } - /** - * @test - */ + #[Test] public function enrichAddsL10nState(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ @@ -542,9 +491,7 @@ final class DefaultTcaSchemaTest extends UnitTestCase self::assertEquals($expectedColumn, $result[0]->getColumn('l10n_state')); } - /** - * @test - */ + #[Test] public function enrichDoesNotAddL10nStateIfLanguageFieldIsNotDefined(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ @@ -555,9 +502,7 @@ final class DefaultTcaSchemaTest extends UnitTestCase $result[0]->getColumn('l10n_state'); } - /** - * @test - */ + #[Test] public function enrichDoesNotAddL10nStateIfTransOrigPointerFieldIsNotDefined(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ @@ -568,9 +513,7 @@ final class DefaultTcaSchemaTest extends UnitTestCase $result[0]->getColumn('l10n_state'); } - /** - * @test - */ + #[Test] public function enrichAddsT3origUid(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ @@ -589,9 +532,7 @@ final class DefaultTcaSchemaTest extends UnitTestCase self::assertEquals($expectedColumn, $result[0]->getColumn('t3_origuid')); } - /** - * @test - */ + #[Test] public function enrichAddsL10nDiffsource(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ @@ -609,9 +550,7 @@ final class DefaultTcaSchemaTest extends UnitTestCase self::assertEquals($expectedColumn, $result[0]->getColumn('l18n_diffsource')); } - /** - * @test - */ + #[Test] public function enrichAddsT3verOid(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ @@ -630,9 +569,7 @@ final class DefaultTcaSchemaTest extends UnitTestCase self::assertEquals($expectedColumn, $result[0]->getColumn('t3ver_oid')); } - /** - * @test - */ + #[Test] public function enrichAddsT3verWsid(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ @@ -651,9 +588,7 @@ final class DefaultTcaSchemaTest extends UnitTestCase self::assertEquals($expectedColumn, $result[0]->getColumn('t3ver_wsid')); } - /** - * @test - */ + #[Test] public function enrichAddsT3verState(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ @@ -672,9 +607,7 @@ final class DefaultTcaSchemaTest extends UnitTestCase self::assertEquals($expectedColumn, $result[0]->getColumn('t3ver_state')); } - /** - * @test - */ + #[Test] public function enrichAddsT3verStage(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ @@ -693,9 +626,7 @@ final class DefaultTcaSchemaTest extends UnitTestCase self::assertEquals($expectedColumn, $result[0]->getColumn('t3ver_stage')); } - /** - * @test - */ + #[Test] public function enrichAddsT3verOidIndex(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ @@ -706,9 +637,7 @@ final class DefaultTcaSchemaTest extends UnitTestCase self::assertEquals($expectedIndex, $result[0]->getIndex('t3ver_oid')); } - /** - * @test - */ + #[Test] public function enrichAddsSimpleMmForSelect(): void { $GLOBALS['TCA']['aTable']['columns']['aField']['config'] = [ @@ -772,9 +701,7 @@ final class DefaultTcaSchemaTest extends UnitTestCase self::assertEquals($expectedMmTable, $result[1]); } - /** - * @test - */ + #[Test] public function enrichAddsMmWithTcaHasUid(): void { $GLOBALS['TCA']['aTable']['columns']['aField']['config'] = [ @@ -848,9 +775,7 @@ final class DefaultTcaSchemaTest extends UnitTestCase self::assertEquals($expectedMmTable, $result[1]); } - /** - * @test - */ + #[Test] public function enrichAddsMmWithTablenamesAndFieldname(): void { $GLOBALS['TCA']['aTable']['columns']['aField']['config'] = [ @@ -935,9 +860,7 @@ final class DefaultTcaSchemaTest extends UnitTestCase self::assertEquals($expectedMmTable, $result[1]); } - /** - * @test - */ + #[Test] public function enrichAddsSlug(): void { $GLOBALS['TCA']['aTable']['columns']['slug'] = [ diff --git a/typo3/sysext/core/Tests/Unit/Database/Schema/EventListener/SchemaColumnDefinitionListenerTest.php b/typo3/sysext/core/Tests/Unit/Database/Schema/EventListener/SchemaColumnDefinitionListenerTest.php index 0a2891476eb952444e18f83e446f37d2398fca4c..67d3f2342a45e63e170fc51733a12b9981ca98a0 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Schema/EventListener/SchemaColumnDefinitionListenerTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Schema/EventListener/SchemaColumnDefinitionListenerTest.php @@ -21,6 +21,7 @@ use Doctrine\DBAL\Event\SchemaColumnDefinitionEventArgs; use Doctrine\DBAL\Platforms\AbstractPlatform; use Doctrine\DBAL\Schema\Column; use Doctrine\DBAL\Types\Type; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Core\Database\Connection; use TYPO3\CMS\Core\Database\Schema\EventListener\SchemaColumnDefinitionListener; @@ -41,9 +42,7 @@ final class SchemaColumnDefinitionListenerTest extends UnitTestCase $this->connectionMock = $this->createMock(Connection::class); } - /** - * @test - */ + #[Test] public function isInactiveForStandardColumnTypes(): void { $event = new SchemaColumnDefinitionEventArgs( @@ -58,9 +57,7 @@ final class SchemaColumnDefinitionListenerTest extends UnitTestCase self::assertNull($event->getColumn()); } - /** - * @test - */ + #[Test] public function buildsColumnForEnumDataType(): void { if (Type::hasType('enum')) { @@ -86,9 +83,7 @@ final class SchemaColumnDefinitionListenerTest extends UnitTestCase self::assertSame(['value1', 'value2', 'value3'], $event->getColumn()->getPlatformOption('unquotedValues')); } - /** - * @test - */ + #[Test] public function buildsColumnForSetDataType(): void { if (Type::hasType('set')) { diff --git a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/ColumnDefinitionAttributesTest.php b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/ColumnDefinitionAttributesTest.php index bae59261946db9e783e075cc84c1e1a17feabb70..fbe9b94c98e06e533647aa62d74d37e4e7363bd6 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/ColumnDefinitionAttributesTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/ColumnDefinitionAttributesTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Schema\Parser; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Schema\Parser\AST\CreateColumnDefinitionItem; use TYPO3\CMS\Core\Database\Schema\Parser\AST\CreateTableStatement; use TYPO3\CMS\Core\Database\Schema\Parser\Parser; @@ -334,10 +336,10 @@ final class ColumnDefinitionAttributesTest extends UnitTestCase } /** - * @test - * @dataProvider canParseColumnDefinitionAttributesDataProvider * @param mixed $defaultValue */ + #[DataProvider('canParseColumnDefinitionAttributesDataProvider')] + #[Test] public function canParseColumnDefinitionAttributes( string $columnAttribute, bool $allowNull, diff --git a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/ColumnDefinitionItemTest.php b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/ColumnDefinitionItemTest.php index e34ee142a487a96b0fb67a4c5ec5c1991f04036f..2a708465a195d366c53151e3e765f75ba7a0fdc2 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/ColumnDefinitionItemTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/ColumnDefinitionItemTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Schema\Parser; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Schema\Parser\AST\CreateColumnDefinitionItem; use TYPO3\CMS\Core\Database\Schema\Parser\AST\CreateTableStatement; use TYPO3\CMS\Core\Database\Schema\Parser\Parser; @@ -27,9 +28,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; */ final class ColumnDefinitionItemTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function canParseUnquotedMysqlKeywordAsTableName(): void { $subject = $this->createSubject('CREATE TABLE `aTable`(checksum VARCHAR(64));'); @@ -42,9 +41,8 @@ final class ColumnDefinitionItemTest extends UnitTestCase * The old regular expression based create table parser processed invalid dump files * where the last column/index definition included a comma before the closing parenthesis. * Emulate this behaviour to avoid breaking lots of (partial) dump files. - * - * @test */ + #[Test] public function canParseCreateDefinitionWithTrailingComma(): void { $subject = $this->createSubject('CREATE TABLE `aTable`(aField VARCHAR(64), );'); diff --git a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/CreateTableFragmentTest.php b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/CreateTableFragmentTest.php index 01a886c2ae931c9bd198c78b59bda1129bdc8bfa..e7af6294aedcfe10487495d5f479795af2678fb3 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/CreateTableFragmentTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/CreateTableFragmentTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Schema\Parser; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Schema\Parser\AST\AbstractCreateStatement; use TYPO3\CMS\Core\Database\Schema\Parser\AST\CreateTableStatement; use TYPO3\CMS\Core\Database\Schema\Parser\Parser; @@ -79,10 +81,8 @@ final class CreateTableFragmentTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider canParseCreateTableFragmentDataProvider - */ + #[DataProvider('canParseCreateTableFragmentDataProvider')] + #[Test] public function canParseCreateTableFragment(string $statement, string $tableName, bool $isTemporary): void { $subject = $this->createSubject($statement); diff --git a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypeAttributes/CharacterTypeAttributesTest.php b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypeAttributes/CharacterTypeAttributesTest.php index 7c63b22325f38616f146be42ed32fbeab839137b..27c0acc65b26aef1ebcab37c146cc2690526bf6f 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypeAttributes/CharacterTypeAttributesTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypeAttributes/CharacterTypeAttributesTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Schema\Parser\DataTypeAttributes; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Tests\Unit\Database\Schema\Parser\AbstractDataTypeBaseTestCase; /** @@ -54,10 +56,8 @@ final class CharacterTypeAttributesTest extends AbstractDataTypeBaseTestCase ]; } - /** - * @test - * @dataProvider canParseCharacterDataTypeAttributesProvider - */ + #[DataProvider('canParseCharacterDataTypeAttributesProvider')] + #[Test] public function canParseDataType(string $columnDefinition, array $options): void { $subject = $this->createSubject($columnDefinition); diff --git a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypeAttributes/EnumerationTypeAttributesTest.php b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypeAttributes/EnumerationTypeAttributesTest.php index 04695abcd9c7f3d18e79d5565cbb384a77bbd35f..f8f4c42e22438167977dda8d66a580d873373bd0 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypeAttributes/EnumerationTypeAttributesTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypeAttributes/EnumerationTypeAttributesTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Schema\Parser\DataTypeAttributes; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Tests\Unit\Database\Schema\Parser\AbstractDataTypeBaseTestCase; /** @@ -46,10 +48,8 @@ final class EnumerationTypeAttributesTest extends AbstractDataTypeBaseTestCase ]; } - /** - * @test - * @dataProvider canParseEnumerationDataTypeAttributesProvider - */ + #[DataProvider('canParseEnumerationDataTypeAttributesProvider')] + #[Test] public function canParseDataType(string $columnDefinition, array $options): void { $subject = $this->createSubject($columnDefinition); diff --git a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypeAttributes/NumericTypeAttributesTest.php b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypeAttributes/NumericTypeAttributesTest.php index 9253d8da5f0c83ea0969a4201d189aedbbad600b..396aa0190e05572789fb5cb67a3c6f91e3a47dec 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypeAttributes/NumericTypeAttributesTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypeAttributes/NumericTypeAttributesTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Schema\Parser\DataTypeAttributes; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Tests\Unit\Database\Schema\Parser\AbstractDataTypeBaseTestCase; /** @@ -46,10 +48,8 @@ final class NumericTypeAttributesTest extends AbstractDataTypeBaseTestCase ]; } - /** - * @test - * @dataProvider canParseNumericDataTypeAttributesProvider - */ + #[DataProvider('canParseNumericDataTypeAttributesProvider')] + #[Test] public function canParseDataType(string $columnDefinition, array $options): void { $subject = $this->createSubject($columnDefinition); diff --git a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/BinaryDataTypeTest.php b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/BinaryDataTypeTest.php index 16bec2b980859ae029a982d282bfe07611a331bd..41829dab3bca421e30c0d899e9712f36a9942d39 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/BinaryDataTypeTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/BinaryDataTypeTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Schema\Parser\DataTypes; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Schema\Exception\StatementException; use TYPO3\CMS\Core\Database\Schema\Parser\AST\DataType\BinaryDataType; use TYPO3\CMS\Core\Database\Schema\Parser\AST\DataType\VarBinaryDataType; @@ -52,10 +54,8 @@ final class BinaryDataTypeTest extends AbstractDataTypeBaseTestCase ]; } - /** - * @test - * @dataProvider canParseBinaryDataTypeProvider - */ + #[DataProvider('canParseBinaryDataTypeProvider')] + #[Test] public function canParseDataType(string $columnDefinition, string $className, int $length): void { $subject = $this->createSubject($columnDefinition); @@ -64,9 +64,7 @@ final class BinaryDataTypeTest extends AbstractDataTypeBaseTestCase self::assertSame($length, $subject->dataType->getLength()); } - /** - * @test - */ + #[Test] public function lengthIsRequiredForVarBinaryType(): void { $this->expectException(StatementException::class); diff --git a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/BitDataTypeTest.php b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/BitDataTypeTest.php index 5715ea5e12659c02171d0e0f470a171e41eb3236..504fbd932034eee443b9ff41e05f0e2ec80f3efb 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/BitDataTypeTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/BitDataTypeTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Schema\Parser\DataTypes; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Schema\Parser\AST\DataType\BitDataType; use TYPO3\CMS\Core\Tests\Unit\Database\Schema\Parser\AbstractDataTypeBaseTestCase; @@ -44,10 +46,8 @@ final class BitDataTypeTest extends AbstractDataTypeBaseTestCase ]; } - /** - * @test - * @dataProvider canParseBitDataTypeProvider - */ + #[DataProvider('canParseBitDataTypeProvider')] + #[Test] public function canParseDataType(string $columnDefinition, string $className, int $length): void { $subject = $this->createSubject($columnDefinition); diff --git a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/BlobTypesTest.php b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/BlobTypesTest.php index 2613211ce68ef8e21f63c16e4c29e5a05afabeed..9c850d8d8ab034c639186a1f76268ad68ae27b7c 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/BlobTypesTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/BlobTypesTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Schema\Parser\DataTypes; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Schema\Parser\AST\DataType\BlobDataType; use TYPO3\CMS\Core\Database\Schema\Parser\AST\DataType\LongBlobDataType; use TYPO3\CMS\Core\Database\Schema\Parser\AST\DataType\MediumBlobDataType; @@ -53,10 +55,8 @@ final class BlobTypesTest extends AbstractDataTypeBaseTestCase ]; } - /** - * @test - * @dataProvider canParseBlobDataTypeProvider - */ + #[DataProvider('canParseBlobDataTypeProvider')] + #[Test] public function canParseDataType(string $columnDefinition, string $className): void { $subject = $this->createSubject($columnDefinition); diff --git a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/CharDataTypeTest.php b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/CharDataTypeTest.php index ad0e93f86839a875e29b4797fa8985e77f1df389..6e20987e69d304232e498b7e7b1eed4a6c2c53d8 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/CharDataTypeTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/CharDataTypeTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Schema\Parser\DataTypes; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Schema\Exception\StatementException; use TYPO3\CMS\Core\Database\Schema\Parser\AST\DataType\CharDataType; use TYPO3\CMS\Core\Database\Schema\Parser\AST\DataType\VarCharDataType; @@ -52,10 +54,8 @@ final class CharDataTypeTest extends AbstractDataTypeBaseTestCase ]; } - /** - * @test - * @dataProvider canParseBinaryDataTypeProvider - */ + #[DataProvider('canParseBinaryDataTypeProvider')] + #[Test] public function canParseDataType(string $columnDefinition, string $className, int $length): void { $subject = $this->createSubject($columnDefinition); @@ -64,9 +64,7 @@ final class CharDataTypeTest extends AbstractDataTypeBaseTestCase self::assertSame($length, $subject->dataType->getLength()); } - /** - * @test - */ + #[Test] public function lengthIsRequiredForVarCharType(): void { $this->expectException(StatementException::class); diff --git a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/DateTimeTypesTest.php b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/DateTimeTypesTest.php index 8e8727be37c15bbd44fef51516751a50c4570cef..df23138cccf94f5aee245e4ddf7a78c8b42e8442 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/DateTimeTypesTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/DateTimeTypesTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Schema\Parser\DataTypes; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Schema\Exception\StatementException; use TYPO3\CMS\Core\Database\Schema\Parser\AST\DataType\DateDataType; use TYPO3\CMS\Core\Database\Schema\Parser\AST\DataType\DateTimeDataType; @@ -79,10 +81,8 @@ final class DateTimeTypesTest extends AbstractDataTypeBaseTestCase ]; } - /** - * @test - * @dataProvider canParseDateTimeTypeProvider - */ + #[DataProvider('canParseDateTimeTypeProvider')] + #[Test] public function canParseDataType(string $columnDefinition, string $className, int $length = null): void { $subject = $this->createSubject($columnDefinition); @@ -95,9 +95,7 @@ final class DateTimeTypesTest extends AbstractDataTypeBaseTestCase } } - /** - * @test - */ + #[Test] public function parseDateTimeTypeWithInvalidLowerBound(): void { $this->expectException(StatementException::class); @@ -107,9 +105,7 @@ final class DateTimeTypesTest extends AbstractDataTypeBaseTestCase $this->createSubject('TIME(-1)'); } - /** - * @test - */ + #[Test] public function parseDateTimeTypeWithInvalidUpperBound(): void { $this->expectException(StatementException::class); diff --git a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/EnumDataTypeTest.php b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/EnumDataTypeTest.php index 7aa41fd395eb5c19b18377a0fecb201ec2ca1c7a..2705689e3101e24bba26c7c96d9bb6aeaf11876b 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/EnumDataTypeTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/EnumDataTypeTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Schema\Parser\DataTypes; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Schema\Parser\AST\DataType\EnumDataType; use TYPO3\CMS\Core\Tests\Unit\Database\Schema\Parser\AbstractDataTypeBaseTestCase; @@ -49,10 +51,8 @@ final class EnumDataTypeTest extends AbstractDataTypeBaseTestCase ]; } - /** - * @test - * @dataProvider canParseEnumDataTypeProvider - */ + #[DataProvider('canParseEnumDataTypeProvider')] + #[Test] public function canParseDataType(string $columnDefinition, string $className, array $values): void { $subject = $this->createSubject($columnDefinition); diff --git a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/FixedPointTypesTest.php b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/FixedPointTypesTest.php index 7a76ec1b147e534bc87a953813250a400e4783b6..6e23a3ae1fede6d71d3e00f3ee7884997ca889cb 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/FixedPointTypesTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/FixedPointTypesTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Schema\Parser\DataTypes; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Schema\Parser\AST\DataType\DecimalDataType; use TYPO3\CMS\Core\Database\Schema\Parser\AST\DataType\NumericDataType; use TYPO3\CMS\Core\Tests\Unit\Database\Schema\Parser\AbstractDataTypeBaseTestCase; @@ -71,10 +73,8 @@ final class FixedPointTypesTest extends AbstractDataTypeBaseTestCase ]; } - /** - * @test - * @dataProvider canParseFixedPointTypesProvider - */ + #[DataProvider('canParseFixedPointTypesProvider')] + #[Test] public function canParseDataType( string $columnDefinition, string $className, diff --git a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/FloatingPointTypesTest.php b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/FloatingPointTypesTest.php index 4b12ccaf149831107438f7c5e33b250336264d79..5507bec5ba107a4a5916a754882350ec80af0ff0 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/FloatingPointTypesTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/FloatingPointTypesTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Schema\Parser\DataTypes; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Schema\Parser\AST\DataType\DoubleDataType; use TYPO3\CMS\Core\Database\Schema\Parser\AST\DataType\FloatDataType; use TYPO3\CMS\Core\Database\Schema\Parser\AST\DataType\RealDataType; @@ -90,10 +92,8 @@ final class FloatingPointTypesTest extends AbstractDataTypeBaseTestCase ]; } - /** - * @test - * @dataProvider canParseFloatingPointTypesProvider - */ + #[DataProvider('canParseFloatingPointTypesProvider')] + #[Test] public function canParseDataType( string $columnDefinition, string $className, diff --git a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/IntegerTypesTest.php b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/IntegerTypesTest.php index 0acfc5370d49c1fe7a31c43cef3940b9e9eedcfe..582bf98f76ebfb1d25ac644df348c47807d32649 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/IntegerTypesTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/IntegerTypesTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Schema\Parser\DataTypes; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Schema\Parser\AST\DataType\BigIntDataType; use TYPO3\CMS\Core\Database\Schema\Parser\AST\DataType\IntegerDataType; use TYPO3\CMS\Core\Database\Schema\Parser\AST\DataType\MediumIntDataType; @@ -102,10 +104,8 @@ final class IntegerTypesTest extends AbstractDataTypeBaseTestCase ]; } - /** - * @test - * @dataProvider canParseIntegerDataTypeProvider - */ + #[DataProvider('canParseIntegerDataTypeProvider')] + #[Test] public function canParseDataType(string $columnDefinition, string $className, int $length): void { $subject = $this->createSubject($columnDefinition); diff --git a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/JsonDataTypeTest.php b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/JsonDataTypeTest.php index 2d6a473683a7420ee5ac1d637fadfb8c5335f922..37db67b186e7d6d21b913d0b5f55398809e89b7a 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/JsonDataTypeTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/JsonDataTypeTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Schema\Parser\DataTypes; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Schema\Parser\AST\DataType\JsonDataType; use TYPO3\CMS\Core\Tests\Unit\Database\Schema\Parser\AbstractDataTypeBaseTestCase; @@ -25,9 +26,7 @@ use TYPO3\CMS\Core\Tests\Unit\Database\Schema\Parser\AbstractDataTypeBaseTestCas */ final class JsonDataTypeTest extends AbstractDataTypeBaseTestCase { - /** - * @test - */ + #[Test] public function canParseBitDataType(): void { $subject = $this->createSubject('JSON'); diff --git a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/SetDataTypeTest.php b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/SetDataTypeTest.php index eee09bc09b7d35e1081957eca6f50cbd0003a610..5f7378713c698aa0bb5a90ddb63937755164271f 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/SetDataTypeTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/SetDataTypeTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Schema\Parser\DataTypes; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Schema\Parser\AST\DataType\SetDataType; use TYPO3\CMS\Core\Tests\Unit\Database\Schema\Parser\AbstractDataTypeBaseTestCase; @@ -49,10 +51,8 @@ final class SetDataTypeTest extends AbstractDataTypeBaseTestCase ]; } - /** - * @test - * @dataProvider canParseSetDataTypeProvider - */ + #[DataProvider('canParseSetDataTypeProvider')] + #[Test] public function canParseDataType(string $columnDefinition, string $className, array $values): void { $subject = $this->createSubject($columnDefinition); diff --git a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/TextTypesTest.php b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/TextTypesTest.php index 99ef918dd4fd9c851639c29fe2f25368de3f9661..1a2a73b2a2585df25c8c31373035e10ea9d3fc4f 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/TextTypesTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/DataTypes/TextTypesTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Schema\Parser\DataTypes; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Schema\Parser\AST\DataType\LongTextDataType; use TYPO3\CMS\Core\Database\Schema\Parser\AST\DataType\MediumTextDataType; use TYPO3\CMS\Core\Database\Schema\Parser\AST\DataType\TextDataType; @@ -53,10 +55,8 @@ final class TextTypesTest extends AbstractDataTypeBaseTestCase ]; } - /** - * @test - * @dataProvider canParseTextDataTypeProvider - */ + #[DataProvider('canParseTextDataTypeProvider')] + #[Test] public function canParseDataType(string $columnDefinition, string $className): void { $subject = $this->createSubject($columnDefinition); diff --git a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/ForeignKeyDefinitionTest.php b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/ForeignKeyDefinitionTest.php index 68a54cfa49673c69d6b76be2457497a4c78519ae..deb75e3cbfffc79f7b9f7f3bf7150ca1860faedb 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/ForeignKeyDefinitionTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/ForeignKeyDefinitionTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Schema\Parser; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Schema\Parser\AST\CreateForeignKeyDefinitionItem; use TYPO3\CMS\Core\Database\Schema\Parser\AST\CreateTableStatement; use TYPO3\CMS\Core\Database\Schema\Parser\Parser; @@ -63,10 +65,8 @@ final class ForeignKeyDefinitionTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider canParseForeignKeyDefinitionDataProvider - */ + #[DataProvider('canParseForeignKeyDefinitionDataProvider')] + #[Test] public function canParseForeignKeyDefinition( string $indexDefinition, string $indexName, diff --git a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/IndexDefinitionTest.php b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/IndexDefinitionTest.php index 07a985ecd3727202c4e872a653862662ebd4b03d..e9f2923d9c8934141780d15529299505f2a7f7a3 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/IndexDefinitionTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/IndexDefinitionTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Schema\Parser; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Schema\Parser\AST\CreateIndexDefinitionItem; use TYPO3\CMS\Core\Database\Schema\Parser\AST\CreateTableStatement; use TYPO3\CMS\Core\Database\Schema\Parser\AST\Identifier; @@ -515,10 +517,8 @@ final class IndexDefinitionTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider canParseIndexDefinitionDataProvider - */ + #[DataProvider('canParseIndexDefinitionDataProvider')] + #[Test] public function canParseIndexDefinition( string $indexDefinition, string $indexName, diff --git a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/ReferenceDefinitionTest.php b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/ReferenceDefinitionTest.php index d9bf92db056c37bc9161fae43c7c79937381089f..88aa24a36ad93696a67353de5c7f9061796af247 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/ReferenceDefinitionTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/ReferenceDefinitionTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Schema\Parser; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Schema\Parser\AST\CreateTableStatement; use TYPO3\CMS\Core\Database\Schema\Parser\AST\ReferenceDefinition; use TYPO3\CMS\Core\Database\Schema\Parser\Parser; @@ -170,10 +172,8 @@ final class ReferenceDefinitionTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider canParseReferenceDefinitionDataProvider - */ + #[DataProvider('canParseReferenceDefinitionDataProvider')] + #[Test] public function canParseReferenceDefinition( string $columnAttribute, string $table, diff --git a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/TableBuilderTest.php b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/TableBuilderTest.php index c62634716edc7a276a6af0276edb40f3bfedc3c2..052093deb6a749f5a01c25ed0a586f80b4d3eba5 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/TableBuilderTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/TableBuilderTest.php @@ -23,6 +23,7 @@ use Doctrine\DBAL\Schema\Table; use Doctrine\DBAL\Types\IntegerType; use Doctrine\DBAL\Types\SmallIntType; use Doctrine\DBAL\Types\TextType; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Schema\Parser\Parser; use TYPO3\CMS\Core\Database\Schema\SqlReader; use TYPO3\CMS\Core\EventDispatcher\NoopEventDispatcher; @@ -46,62 +47,48 @@ final class TableBuilderTest extends UnitTestCase $this->table = $parser->parse()[0]; } - /** - * @test - */ + #[Test] public function hasExpectedTableName(): void { self::assertSame('aTestTable', $this->table->getName()); } - /** - * @test - */ + #[Test] public function hasExpectedTableEngine(): void { self::assertTrue($this->table->hasOption('engine')); self::assertSame('MyISAM', $this->table->getOption('engine')); } - /** - * @test - */ + #[Test] public function hasExpectedTableCollation(): void { self::assertTrue($this->table->hasOption('charset')); self::assertSame('latin1', $this->table->getOption('charset')); } - /** - * @test - */ + #[Test] public function hasExpectedTableCharacterSet(): void { self::assertTrue($this->table->hasOption('collate')); self::assertSame('latin1_german_cs', $this->table->getOption('collate')); } - /** - * @test - */ + #[Test] public function hasExpectedTableRowFormat(): void { self::assertTrue($this->table->hasOption('row_format')); self::assertSame('DYNAMIC', $this->table->getOption('row_format')); } - /** - * @test - */ + #[Test] public function hasExpectedTableAutoIncrementValue(): void { self::assertTrue($this->table->hasOption('auto_increment')); self::assertSame('1', $this->table->getOption('auto_increment')); } - /** - * @test - */ + #[Test] public function isExpectedUidColumn(): void { $subject = $this->table->getColumn('uid'); @@ -113,9 +100,7 @@ final class TableBuilderTest extends UnitTestCase self::assertTrue($subject->getAutoincrement()); } - /** - * @test - */ + #[Test] public function isExpectedPidColumn(): void { $subject = $this->table->getColumn('pid'); @@ -127,9 +112,7 @@ final class TableBuilderTest extends UnitTestCase self::assertSame('0', $subject->getDefault()); } - /** - * @test - */ + #[Test] public function isExpectedTstampColumn(): void { $subject = $this->table->getColumn('tstamp'); @@ -141,9 +124,7 @@ final class TableBuilderTest extends UnitTestCase self::assertSame('0', $subject->getDefault()); } - /** - * @test - */ + #[Test] public function isExpectedSortingColumn(): void { $subject = $this->table->getColumn('sorting'); @@ -155,9 +136,7 @@ final class TableBuilderTest extends UnitTestCase self::assertSame(0, $subject->getDefault()); } - /** - * @test - */ + #[Test] public function isExpectedDeletedColumn(): void { $subject = $this->table->getColumn('deleted'); @@ -169,9 +148,7 @@ final class TableBuilderTest extends UnitTestCase self::assertSame('0', $subject->getDefault()); } - /** - * @test - */ + #[Test] public function isExpectedTSconfigColumn(): void { $subject = $this->table->getColumn('TSconfig'); @@ -181,9 +158,7 @@ final class TableBuilderTest extends UnitTestCase self::assertNull($subject->getDefault()); } - /** - * @test - */ + #[Test] public function isExpectedNoCacheColumn(): void { $subject = $this->table->getColumn('no_cache'); @@ -195,9 +170,7 @@ final class TableBuilderTest extends UnitTestCase self::assertSame('0', $subject->getDefault()); } - /** - * @test - */ + #[Test] public function isExpectedPrimaryKey(): void { $subject = $this->table->getPrimaryKey(); @@ -206,9 +179,7 @@ final class TableBuilderTest extends UnitTestCase self::assertSame(['`uid`'], $subject->getColumns()); } - /** - * @test - */ + #[Test] public function isExpectedParentKey(): void { $subject = $this->table->getIndex('parent'); @@ -217,9 +188,7 @@ final class TableBuilderTest extends UnitTestCase self::assertSame(['`pid`', '`deleted`', '`sorting`'], $subject->getColumns()); } - /** - * @test - */ + #[Test] public function isExpectedNoCacheKey(): void { $subject = $this->table->getIndex('noCache'); @@ -228,9 +197,7 @@ final class TableBuilderTest extends UnitTestCase self::assertSame(['`no_cache`'], $subject->getColumns()); } - /** - * @test - */ + #[Test] public function isExpectedForeignKey(): void { $subject = $this->table->getForeignKey('fk_overlay'); @@ -241,9 +208,7 @@ final class TableBuilderTest extends UnitTestCase self::assertSame('any_foreign_table', $subject->getForeignTableName()); } - /** - * @test - */ + #[Test] public function hasColumnLengthOnIndex(): void { $subject = $this->table->getIndex('substring'); diff --git a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/TableOptionsTest.php b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/TableOptionsTest.php index 670877a75262e471eae6330011e1576597467195..b1eee0d1f5dde12aec6cb53830e18e5e68628913 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/TableOptionsTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Schema/Parser/TableOptionsTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Schema\Parser; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Schema\Parser\AST\AbstractCreateStatement; use TYPO3\CMS\Core\Database\Schema\Parser\AST\CreateTableStatement; use TYPO3\CMS\Core\Database\Schema\Parser\Parser; @@ -138,10 +140,8 @@ final class TableOptionsTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider canParseTableOptionsDataProvider - */ + #[DataProvider('canParseTableOptionsDataProvider')] + #[Test] public function canParseTableOptions( string $tableOptionsSQL, array $expectedTableOptions diff --git a/typo3/sysext/core/Tests/Unit/Database/Schema/SqlReaderTest.php b/typo3/sysext/core/Tests/Unit/Database/Schema/SqlReaderTest.php index 23426d7dbecd3382bad86f3da925c5c1ebb39c83..bd1e108629faac10e738646aa4557fa6953cf51a 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Schema/SqlReaderTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Schema/SqlReaderTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Database\Schema; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Schema\SqlReader; use TYPO3\CMS\Core\EventDispatcher\NoopEventDispatcher; use TYPO3\CMS\Core\Package\PackageManager; @@ -26,9 +28,7 @@ final class SqlReaderTest extends UnitTestCase { protected bool $resetSingletonInstances = true; - /** - * @test - */ + #[Test] public function getStatementArraySplitsStatements(): void { $subject = new SqlReader(new NoopEventDispatcher(), $this->createMock(PackageManager::class)); @@ -42,9 +42,7 @@ final class SqlReaderTest extends UnitTestCase self::assertStringStartsWith('INSERT INTO', $result[1]); } - /** - * @test - */ + #[Test] public function getStatementArrayFiltersStatements(): void { $subject = new SqlReader(new NoopEventDispatcher(), $this->createMock(PackageManager::class)); @@ -58,9 +56,7 @@ final class SqlReaderTest extends UnitTestCase self::assertStringStartsWith('CREATE TABLE', array_pop($result)); } - /** - * @test - */ + #[Test] public function getInsertStatementArrayResult(): void { $subject = new SqlReader(new NoopEventDispatcher(), $this->createMock(PackageManager::class)); @@ -74,9 +70,7 @@ final class SqlReaderTest extends UnitTestCase self::assertStringStartsWith('INSERT', array_pop($result)); } - /** - * @test - */ + #[Test] public function getInsertStatementArrayResultWithNewline(): void { $subject = new SqlReader(new NoopEventDispatcher(), $this->createMock(PackageManager::class)); @@ -92,9 +86,7 @@ final class SqlReaderTest extends UnitTestCase self::assertSame('INSERT INTO aTestTable(`aTestField`) VALUES(1);', array_pop($result)); } - /** - * @test - */ + #[Test] public function getCreateTableStatementArrayResult(): void { $subject = new SqlReader(new NoopEventDispatcher(), $this->createMock(PackageManager::class)); @@ -107,10 +99,8 @@ final class SqlReaderTest extends UnitTestCase self::assertStringStartsWith('CREATE TABLE', array_pop($result)); } - /** - * @dataProvider commentProvider - * @test - */ + #[DataProvider('commentProvider')] + #[Test] public function getCreateTableStatementArrayResultWithComment(string $comment): void { $subject = new SqlReader(new NoopEventDispatcher(), $this->createMock(PackageManager::class)); diff --git a/typo3/sysext/core/Tests/Unit/Database/Schema/Types/EnumTypeTest.php b/typo3/sysext/core/Tests/Unit/Database/Schema/Types/EnumTypeTest.php index 30f16e23317e06db353c62b39c5fc465d0507fc1..bde4ab2c91d32f9c73c91713d37839c50d715f7b 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Schema/Types/EnumTypeTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Schema/Types/EnumTypeTest.php @@ -19,6 +19,7 @@ namespace TYPO3\CMS\Core\Tests\Unit\Database\Schema\Types; use Doctrine\DBAL\Platforms\AbstractPlatform; use Doctrine\DBAL\Types\Type; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Schema\Types\EnumType; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -32,18 +33,14 @@ final class EnumTypeTest extends UnitTestCase } } - /** - * @test - */ + #[Test] public function getNameReturnsTypeIdentifier(): void { $subject = Type::getType(EnumType::TYPE); self::assertSame(EnumType::TYPE, $subject->getName()); } - /** - * @test - */ + #[Test] public function getSQLDeclaration(): void { $fieldDeclaration = [ diff --git a/typo3/sysext/core/Tests/Unit/Database/Schema/Types/SetTypeTest.php b/typo3/sysext/core/Tests/Unit/Database/Schema/Types/SetTypeTest.php index 6cc9cb66baf650a0af04bd47a66ed40b03e3a78f..dc887a9f2b6676dd2777dbb10f292f6d9ad606cb 100644 --- a/typo3/sysext/core/Tests/Unit/Database/Schema/Types/SetTypeTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/Schema/Types/SetTypeTest.php @@ -19,6 +19,7 @@ namespace TYPO3\CMS\Core\Tests\Unit\Database\Schema\Types; use Doctrine\DBAL\Platforms\AbstractPlatform; use Doctrine\DBAL\Types\Type; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Schema\Types\SetType; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -32,18 +33,14 @@ final class SetTypeTest extends UnitTestCase } } - /** - * @test - */ + #[Test] public function getNameReturnsTypeIdentifier(): void { $subject = Type::getType(SetType::TYPE); self::assertSame(SetType::TYPE, $subject->getName()); } - /** - * @test - */ + #[Test] public function getSQLDeclaration(): void { $fieldDeclaration = [ diff --git a/typo3/sysext/core/Tests/Unit/DependencyInjection/ConsoleCommandPassTest.php b/typo3/sysext/core/Tests/Unit/DependencyInjection/ConsoleCommandPassTest.php index e9acce06c44ea99b251e54ffcd0f78c5d3ef93be..50a7543bf77a72c13330ba08ea573c8ba44ff049 100644 --- a/typo3/sysext/core/Tests/Unit/DependencyInjection/ConsoleCommandPassTest.php +++ b/typo3/sysext/core/Tests/Unit/DependencyInjection/ConsoleCommandPassTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\DependencyInjection; +use PHPUnit\Framework\Attributes\Test; use Psr\Container\ContainerInterface; use Symfony\Component\Console\Command\Command; use TYPO3\CMS\Core\Cache\Frontend\PhpFrontend; @@ -55,9 +56,7 @@ final class ConsoleCommandPassTest extends UnitTestCase return (new ContainerBuilder([]))->createDependencyInjectionContainer($packageManagerMock, $cacheMock); } - /** - * @test - */ + #[Test] public function commandRegistrationViaTags(): void { $container = $this->buildContainer(__METHOD__, [ @@ -78,9 +77,7 @@ final class ConsoleCommandPassTest extends UnitTestCase self::assertInstanceOf(Command::class, $commandRegistry->getCommandByIdentifier('test:cmd')); } - /** - * @test - */ + #[Test] public function withoutConfiguration(): void { $container = $this->buildContainer(__METHOD__, [ diff --git a/typo3/sysext/core/Tests/Unit/DependencyInjection/FailsafeContainerTest.php b/typo3/sysext/core/Tests/Unit/DependencyInjection/FailsafeContainerTest.php index 027648d2b6f07db1cef3e942afe950613dbb38d7..cbe4744611ed40f5a75078207b57afec5c02d8dc 100644 --- a/typo3/sysext/core/Tests/Unit/DependencyInjection/FailsafeContainerTest.php +++ b/typo3/sysext/core/Tests/Unit/DependencyInjection/FailsafeContainerTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\DependencyInjection; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use Psr\Container\ContainerExceptionInterface; use Psr\Container\ContainerInterface; use Psr\Container\NotFoundExceptionInterface; @@ -27,17 +29,13 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class FailsafeContainerTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function implementsInterface(): void { self::assertInstanceOf(ContainerInterface::class, new Container()); } - /** - * @test - */ + #[Test] public function withString(): void { $providerMock = $this->createMock(ServiceProviderInterface::class); @@ -53,10 +51,8 @@ final class FailsafeContainerTest extends UnitTestCase self::assertEquals('value', $container->get('param')); } - /** - * @test - * @dataProvider objectFactories - */ + #[DataProvider('objectFactories')] + #[Test] public function get(mixed $factory): void { $providerMock = $this->createMock(ServiceProviderInterface::class); @@ -70,10 +66,8 @@ final class FailsafeContainerTest extends UnitTestCase self::assertInstanceOf(Service::class, $container->get('service')); } - /** - * @test - * @dataProvider objectFactories - */ + #[DataProvider('objectFactories')] + #[Test] public function multipleGetServicesShouldBeEqual(mixed $factory): void { $providerMock = $this->createMock(ServiceProviderInterface::class); @@ -93,9 +87,7 @@ final class FailsafeContainerTest extends UnitTestCase self::assertSame($extensionOne, $extensionTwo); } - /** - * @test - */ + #[Test] public function passesContainerAsParameter(): void { $providerMock = $this->createMock(ServiceProviderInterface::class); @@ -114,9 +106,7 @@ final class FailsafeContainerTest extends UnitTestCase self::assertSame($container, $container->get('container')); } - /** - * @test - */ + #[Test] public function nullValueEntry(): void { $providerMock = $this->createMock(ServiceProviderInterface::class); @@ -132,9 +122,7 @@ final class FailsafeContainerTest extends UnitTestCase self::assertNull($container->get('null')); } - /** - * @test - */ + #[Test] public function nullValueEntryCallsFactoryOnlyOnce(): void { $calledCount = 0; @@ -156,9 +144,7 @@ final class FailsafeContainerTest extends UnitTestCase self::assertEquals(1, $calledCount); } - /** - * @test - */ + #[Test] public function has(): void { $providerMock = $this->createMock(ServiceProviderInterface::class); @@ -193,9 +179,7 @@ final class FailsafeContainerTest extends UnitTestCase self::assertFalse($container->has('non_existent')); } - /** - * @test - */ + #[Test] public function defaultEntry(): void { $default = ['param' => 'value']; @@ -204,9 +188,7 @@ final class FailsafeContainerTest extends UnitTestCase self::assertSame('value', $container->get('param')); } - /** - * @test - */ + #[Test] public function getValidatesKeyIsPresent(): void { $container = new Container(); @@ -216,10 +198,8 @@ final class FailsafeContainerTest extends UnitTestCase $container->get('foo'); } - /** - * @test - * @dataProvider objectFactories - */ + #[DataProvider('objectFactories')] + #[Test] public function extension(mixed $factory): void { $providerMockA = $this->createMock(ServiceProviderInterface::class); @@ -243,10 +223,8 @@ final class FailsafeContainerTest extends UnitTestCase self::assertSame('value', $container->get('service')->value); } - /** - * @test - * @dataProvider objectFactories - */ + #[DataProvider('objectFactories')] + #[Test] public function extendingLaterProvider(mixed $factory): void { $providerMockA = $this->createMock(ServiceProviderInterface::class); @@ -266,10 +244,8 @@ final class FailsafeContainerTest extends UnitTestCase self::assertSame('value', $container->get('service')->value); } - /** - * @test - * @dataProvider objectFactories - */ + #[DataProvider('objectFactories')] + #[Test] public function extendingOwnFactory(mixed $factory): void { $providerMock = $this->createMock(ServiceProviderInterface::class); @@ -287,9 +263,7 @@ final class FailsafeContainerTest extends UnitTestCase self::assertSame('value', $container->get('service')->value); } - /** - * @test - */ + #[Test] public function extendingNonExistingFactory(): void { $providerMock = $this->createMock(ServiceProviderInterface::class); @@ -308,10 +282,8 @@ final class FailsafeContainerTest extends UnitTestCase self::assertSame('value', $container->get('service')->value); } - /** - * @test - * @dataProvider objectFactories - */ + #[DataProvider('objectFactories')] + #[Test] public function multipleExtensions(mixed $factory): void { $providerMockA = $this->createMock(ServiceProviderInterface::class); @@ -340,10 +312,8 @@ final class FailsafeContainerTest extends UnitTestCase self::assertSame('12', $container->get('service')->value); } - /** - * @test - * @dataProvider objectFactories - */ + #[DataProvider('objectFactories')] + #[Test] public function entryOverriding(mixed $factory): void { $providerMockA = $this->createMock(ServiceProviderInterface::class); @@ -362,9 +332,7 @@ final class FailsafeContainerTest extends UnitTestCase self::assertEquals('value', $container->get('service')); } - /** - * @test - */ + #[Test] public function cyclicDependency(): void { $providerMock = $this->createMock(ServiceProviderInterface::class); @@ -385,9 +353,7 @@ final class FailsafeContainerTest extends UnitTestCase $container->get('A'); } - /** - * @test - */ + #[Test] public function cyclicDependencyRetrievedTwice(): void { $providerMock = $this->createMock(ServiceProviderInterface::class); @@ -413,18 +379,14 @@ final class FailsafeContainerTest extends UnitTestCase $container->get('A'); } - /** - * @test - */ + #[Test] public function nullContainer(): void { $container = new Container(); self::assertFalse($container->has('foo')); } - /** - * @test - */ + #[Test] public function nullContainerWithDefaultEntries(): void { $container = new Container([], ['foo' => 'bar']); diff --git a/typo3/sysext/core/Tests/Unit/DependencyInjection/ListenerProviderPassTest.php b/typo3/sysext/core/Tests/Unit/DependencyInjection/ListenerProviderPassTest.php index 0465108eec328f46e145d21f8ed642532476938f..2ef8366957767cc3451e739dc51f5c0a82853b40 100644 --- a/typo3/sysext/core/Tests/Unit/DependencyInjection/ListenerProviderPassTest.php +++ b/typo3/sysext/core/Tests/Unit/DependencyInjection/ListenerProviderPassTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\DependencyInjection; +use PHPUnit\Framework\Attributes\Test; use Symfony\Component\Config\FileLocator; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Definition; @@ -51,9 +52,7 @@ final class ListenerProviderPassTest extends UnitTestCase return $container; } - /** - * @test - */ + #[Test] public function simpleChainsAndDependencies(): void { $container = $this->getContainerWithListenerProvider([ @@ -88,9 +87,7 @@ final class ListenerProviderPassTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function cycleException(): void { $this->expectException(\UnexpectedValueException::class); @@ -102,9 +99,7 @@ final class ListenerProviderPassTest extends UnitTestCase ]); } - /** - * @test - */ + #[Test] public function withoutConfiguration(): void { $container = $this->getContainerWithListenerProvider([]); diff --git a/typo3/sysext/core/Tests/Unit/DependencyInjection/ServiceProviderCompilationPassTest.php b/typo3/sysext/core/Tests/Unit/DependencyInjection/ServiceProviderCompilationPassTest.php index 20200b1c599a5b2f2f7cdd8005b2cb62d36dbe16..6aaa6119fc27b9e8b7eafce823fa85b19e9aa41e 100644 --- a/typo3/sysext/core/Tests/Unit/DependencyInjection/ServiceProviderCompilationPassTest.php +++ b/typo3/sysext/core/Tests/Unit/DependencyInjection/ServiceProviderCompilationPassTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\DependencyInjection; +use PHPUnit\Framework\Attributes\Test; use Psr\Log\NullLogger; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Definition; @@ -65,9 +66,7 @@ final class ServiceProviderCompilationPassTest extends UnitTestCase return $container; } - /** - * @test - */ + #[Test] public function simpleServiceProvider(): void { $container = $this->getContainer([ @@ -84,9 +83,7 @@ final class ServiceProviderCompilationPassTest extends UnitTestCase self::assertIsObject($container->get('function')); } - /** - * @test - */ + #[Test] public function serviceProviderOverrides(): void { $container = $this->getContainer([ @@ -106,9 +103,7 @@ final class ServiceProviderCompilationPassTest extends UnitTestCase self::assertEquals('baz', $serviceE->parameter); } - /** - * @test - */ + #[Test] public function serviceProviderFactoryOverrides(): void { $container = $this->getContainer([ @@ -122,9 +117,7 @@ final class ServiceProviderCompilationPassTest extends UnitTestCase self::assertEquals('remotehost', $serviceA->serviceB->parameter); } - /** - * @test - */ + #[Test] public function serviceProviderFactoryOverridesForSymfonyDefinedServices(): void { $container = $this->getContainer( @@ -149,9 +142,7 @@ final class ServiceProviderCompilationPassTest extends UnitTestCase self::assertEquals('foobar', $serviceA->serviceB->symfony_defined_parameter); } - /** - * @test - */ + #[Test] public function serviceProviderFactoryOverrideResetsAutowiring(): void { $container = $this->getContainer( @@ -178,9 +169,7 @@ final class ServiceProviderCompilationPassTest extends UnitTestCase self::assertFalse($container->getDefinition('serviceB')->isAutowired()); } - /** - * @test - */ + #[Test] public function exceptionForNonNullableExtensionArgument(): void { $this->expectException(\Exception::class); diff --git a/typo3/sysext/core/Tests/Unit/DependencyInjection/ServiceProviderRegistryTest.php b/typo3/sysext/core/Tests/Unit/DependencyInjection/ServiceProviderRegistryTest.php index 386c6fdd5b4454f5cd2e3cb4d7beaa702e91b46e..1b7ebaca272e093c2c0800d7abb5d9b3b8099765 100644 --- a/typo3/sysext/core/Tests/Unit/DependencyInjection/ServiceProviderRegistryTest.php +++ b/typo3/sysext/core/Tests/Unit/DependencyInjection/ServiceProviderRegistryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\DependencyInjection; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use Psr\Container\ContainerInterface; use TYPO3\CMS\Core\DependencyInjection\ServiceProviderRegistry; @@ -46,9 +47,7 @@ final class ServiceProviderRegistryTest extends UnitTestCase $this->packageManagerMock->method('getActivePackages')->willReturn([$package]); } - /** - * @test - */ + #[Test] public function registry(): void { $this->mockPackage('core', TestRegistryServiceProvider::class); @@ -56,9 +55,7 @@ final class ServiceProviderRegistryTest extends UnitTestCase self::assertEquals(new TestRegistryServiceProvider(), $subject->get('core')); } - /** - * @test - */ + #[Test] public function registryCaches(): void { $this->mockPackage('core', TestRegistryServiceProvider::class); @@ -67,9 +64,7 @@ final class ServiceProviderRegistryTest extends UnitTestCase self::assertSame($subject->get('core'), $subject->get('core')); } - /** - * @test - */ + #[Test] public function registryPassesPackageAsConstructorArgument(): void { $this->mockPackage('core', TestStatefulServiceProvider::class); @@ -78,9 +73,7 @@ final class ServiceProviderRegistryTest extends UnitTestCase self::assertInstanceOf(Package::class, $subject->get('core')->package); } - /** - * @test - */ + #[Test] public function getException(): void { $this->expectException(\InvalidArgumentException::class); @@ -88,9 +81,7 @@ final class ServiceProviderRegistryTest extends UnitTestCase $subject->get('backend'); } - /** - * @test - */ + #[Test] public function getServices(): void { $this->mockPackage('core', TestRegistryServiceProvider::class); @@ -101,9 +92,7 @@ final class ServiceProviderRegistryTest extends UnitTestCase self::assertSame($services['serviceA'], $services2['serviceA']); } - /** - * @test - */ + #[Test] public function extendServices(): void { $this->mockPackage('core', TestRegistryServiceProvider::class); @@ -114,9 +103,7 @@ final class ServiceProviderRegistryTest extends UnitTestCase self::assertSame($services['serviceB'], $services2['serviceB']); } - /** - * @test - */ + #[Test] public function getServiceFactory(): void { $this->mockPackage('core', TestRegistryServiceProvider::class); @@ -126,9 +113,7 @@ final class ServiceProviderRegistryTest extends UnitTestCase self::assertEquals(42, $subject); } - /** - * @test - */ + #[Test] public function getServiceExtension(): void { $this->mockPackage('core', TestRegistryServiceProvider::class); @@ -138,9 +123,7 @@ final class ServiceProviderRegistryTest extends UnitTestCase self::assertInstanceOf(\stdClass::class, $service); } - /** - * @test - */ + #[Test] public function iterator(): void { $packages = [ diff --git a/typo3/sysext/core/Tests/Unit/Error/DebugExceptionHandlerTest.php b/typo3/sysext/core/Tests/Unit/Error/DebugExceptionHandlerTest.php index 391b016d76b9965f4e20786af187f5e971a33b97..e86ce715edd845c0ac760134e119f441fc451dab 100644 --- a/typo3/sysext/core/Tests/Unit/Error/DebugExceptionHandlerTest.php +++ b/typo3/sysext/core/Tests/Unit/Error/DebugExceptionHandlerTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Error; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use Psr\Log\LoggerInterface; use Psr\Log\LoggerTrait; @@ -54,9 +56,7 @@ final class DebugExceptionHandlerTest extends UnitTestCase parent::tearDown(); } - /** - * @test - */ + #[Test] public function echoExceptionWebEscapesExceptionMessage(): void { $message = '<b>b</b><script>alert(1);</script>'; @@ -105,10 +105,8 @@ final class DebugExceptionHandlerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider exampleUrlsForTokenAnonymization - */ + #[DataProvider('exampleUrlsForTokenAnonymization')] + #[Test] public function logEntriesContainAnonymousTokens(string $originalUrl, string $expectedUrl): void { $subject = new DebugExceptionHandler(); diff --git a/typo3/sysext/core/Tests/Unit/Error/ErrorHandlerTest.php b/typo3/sysext/core/Tests/Unit/Error/ErrorHandlerTest.php index d537921e0a1169cd706b05cb9535b0f05a404c97..1f0aff148fbcc2b2d86cb9511d09cef83a2f0e08 100644 --- a/typo3/sysext/core/Tests/Unit/Error/ErrorHandlerTest.php +++ b/typo3/sysext/core/Tests/Unit/Error/ErrorHandlerTest.php @@ -70,10 +70,6 @@ final class ErrorHandlerTest extends UnitTestCase #[WithoutErrorHandler] #[Test] #[DataProvider('errorTests')] - /** - * @test - * @dataProvider errorTests - */ public function errorHandlerLogsCorrectly( int $levelsToHandle, int $levelsToThrow, diff --git a/typo3/sysext/core/Tests/Unit/Error/ProductionExceptionHandlerTest.php b/typo3/sysext/core/Tests/Unit/Error/ProductionExceptionHandlerTest.php index 6f058be113ae3d24d472299164da28c40df94028..03eff59b781365926ebbeb6d4f4c552eab1e0d96 100644 --- a/typo3/sysext/core/Tests/Unit/Error/ProductionExceptionHandlerTest.php +++ b/typo3/sysext/core/Tests/Unit/Error/ProductionExceptionHandlerTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Error; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use Psr\Log\LoggerInterface; use Psr\Log\LoggerTrait; @@ -54,9 +56,7 @@ final class ProductionExceptionHandlerTest extends UnitTestCase parent::tearDown(); } - /** - * @test - */ + #[Test] public function echoExceptionWebEscapesExceptionMessage(): void { $typo3InformationMock = $this->createMock(Typo3Information::class); @@ -72,9 +72,7 @@ final class ProductionExceptionHandlerTest extends UnitTestCase self::assertStringNotContainsString($message, $output); } - /** - * @test - */ + #[Test] public function echoExceptionWebEscapesExceptionTitle(): void { $typo3InformationMock = $this->createMock(Typo3Information::class); @@ -129,10 +127,8 @@ final class ProductionExceptionHandlerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider exampleUrlsForTokenAnonymization - */ + #[DataProvider('exampleUrlsForTokenAnonymization')] + #[Test] public function logEntriesContainAnonymousTokens(string $originalUrl, string $expectedUrl): void { $typo3InformationMock = $this->createMock(Typo3Information::class); diff --git a/typo3/sysext/core/Tests/Unit/EventDispatcher/EventDispatcherTest.php b/typo3/sysext/core/Tests/Unit/EventDispatcher/EventDispatcherTest.php index 1f6f767a0a6ea6cd4ee9c73efd803251cf7a2529..e542839d261dc99c9c85203a0c437217d85f1064 100644 --- a/typo3/sysext/core/Tests/Unit/EventDispatcher/EventDispatcherTest.php +++ b/typo3/sysext/core/Tests/Unit/EventDispatcher/EventDispatcherTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\EventDispatcher; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use Psr\EventDispatcher\EventDispatcherInterface; use Psr\EventDispatcher\ListenerProviderInterface; @@ -38,18 +40,14 @@ final class EventDispatcherTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function implementsPsrInterface(): void { self::assertInstanceOf(EventDispatcherInterface::class, $this->eventDispatcher); } - /** - * @test - * @dataProvider callables - */ + #[DataProvider('callables')] + #[Test] public function dispatchesEvent(callable $callable): void { $event = new \stdClass(); @@ -64,10 +62,8 @@ final class EventDispatcherTest extends UnitTestCase self::assertEquals(1, $event->invoked); } - /** - * @test - * @dataProvider callables - */ + #[DataProvider('callables')] + #[Test] public function doesNotDispatchStoppedEvent(callable $callable): void { $event = new class () implements StoppableEventInterface { @@ -88,10 +84,8 @@ final class EventDispatcherTest extends UnitTestCase self::assertEquals(0, $event->invoked); } - /** - * @test - * @dataProvider callables - */ + #[DataProvider('callables')] + #[Test] public function dispatchesMultipleListeners(callable $callable): void { $event = new \stdClass(); @@ -107,10 +101,8 @@ final class EventDispatcherTest extends UnitTestCase self::assertEquals(2, $event->invoked); } - /** - * @test - * @dataProvider callables - */ + #[DataProvider('callables')] + #[Test] public function stopsOnStoppedEvent(callable $callable): void { $event = new class () implements StoppableEventInterface { @@ -137,9 +129,7 @@ final class EventDispatcherTest extends UnitTestCase self::assertEquals(2, $event->invoked); } - /** - * @test - */ + #[Test] public function listenerExceptionIsPropagated(): void { $this->expectException(\BadMethodCallException::class); diff --git a/typo3/sysext/core/Tests/Unit/EventDispatcher/ListenerProviderTest.php b/typo3/sysext/core/Tests/Unit/EventDispatcher/ListenerProviderTest.php index d6e94d5467db5663c60f9b7466ce38efefe5fc33..06ca360fff62ccfec7157b72a53f2fd939ecd4c1 100644 --- a/typo3/sysext/core/Tests/Unit/EventDispatcher/ListenerProviderTest.php +++ b/typo3/sysext/core/Tests/Unit/EventDispatcher/ListenerProviderTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\EventDispatcher; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use Psr\Container\ContainerInterface; use Psr\EventDispatcher\ListenerProviderInterface; @@ -37,17 +39,13 @@ final class ListenerProviderTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function implementsPsrInterface(): void { self::assertInstanceOf(ListenerProviderInterface::class, $this->listenerProvider); } - /** - * @test - */ + #[Test] public function addedListenersAreReturnedByGetAllListenerDefinitions(): void { $this->listenerProvider->addListener('Event\\Name', 'listener1'); @@ -61,9 +59,7 @@ final class ListenerProviderTest extends UnitTestCase ], $this->listenerProvider->getAllListenerDefinitions()); } - /** - * @test - */ + #[Test] public function addedListenerCorrectlySetsTheListenerIdentifier(): void { $this->listenerProvider->addListener(event: 'Event\\Name', service: 'service.name1'); @@ -77,10 +73,8 @@ final class ListenerProviderTest extends UnitTestCase ], $this->listenerProvider->getAllListenerDefinitions()); } - /** - * @test - * @dataProvider listeners - */ + #[DataProvider('listeners')] + #[Test] public function dispatchesEvent($listener, string $method = null): void { $event = new \stdClass(); @@ -96,10 +90,8 @@ final class ListenerProviderTest extends UnitTestCase self::assertEquals(1, $event->invoked); } - /** - * @test - * @dataProvider listeners - */ + #[DataProvider('listeners')] + #[Test] public function associatesToEventParentClass($listener, string $method = null): void { $extendedEvent = new class () extends \stdClass { @@ -115,10 +107,8 @@ final class ListenerProviderTest extends UnitTestCase self::assertEquals(1, $extendedEvent->invoked); } - /** - * @test - * @dataProvider listeners - */ + #[DataProvider('listeners')] + #[Test] public function associatesToImplementedInterfaces($listener, string $method = null): void { $eventImplementation = new class () implements \IteratorAggregate { @@ -139,9 +129,7 @@ final class ListenerProviderTest extends UnitTestCase self::assertEquals(1, $eventImplementation->invoked); } - /** - * @test - */ + #[Test] public function addListenerPreservesOrder(): void { $this->listenerProvider->addListener(\stdClass::class, 'listener1'); @@ -164,9 +152,7 @@ final class ListenerProviderTest extends UnitTestCase self::assertEquals('ab', $event->sequence); } - /** - * @test - */ + #[Test] public function throwsExceptionForInvalidCallable(): void { $this->expectException(\InvalidArgumentException::class); diff --git a/typo3/sysext/core/Tests/Unit/EventDispatcher/NoopEventDispatcherTest.php b/typo3/sysext/core/Tests/Unit/EventDispatcher/NoopEventDispatcherTest.php index adbfd2505de9e46d874b468c6c1a0b6d6f49e1f5..b540a511142b0049345ef22f70f03ab9e72155f8 100644 --- a/typo3/sysext/core/Tests/Unit/EventDispatcher/NoopEventDispatcherTest.php +++ b/typo3/sysext/core/Tests/Unit/EventDispatcher/NoopEventDispatcherTest.php @@ -17,23 +17,20 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\EventDispatcher; +use PHPUnit\Framework\Attributes\Test; use Psr\EventDispatcher\EventDispatcherInterface; use TYPO3\CMS\Core\EventDispatcher\NoopEventDispatcher; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class NoopEventDispatcherTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function implementsEventDispatcherInterface(): void { self::assertInstanceOf(EventDispatcherInterface::class, new NoopEventDispatcher()); } - /** - * @test - */ + #[Test] public function dispatchReturnsProvidedEvent(): void { $event = new \stdClass(); diff --git a/typo3/sysext/core/Tests/Unit/ExpressionLanguage/ResolverTest.php b/typo3/sysext/core/Tests/Unit/ExpressionLanguage/ResolverTest.php index abe5c89123b3141c4098084207c50d623ef2243c..72c1109ff01934e7e427db17f3711f9f167b2149 100644 --- a/typo3/sysext/core/Tests/Unit/ExpressionLanguage/ResolverTest.php +++ b/typo3/sysext/core/Tests/Unit/ExpressionLanguage/ResolverTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\ExpressionLanguage; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use Symfony\Component\ExpressionLanguage\ExpressionFunction; use TYPO3\CMS\Core\Cache\Frontend\NullFrontend; use TYPO3\CMS\Core\Configuration\Features; @@ -61,10 +63,8 @@ final class ResolverTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider basicExpressionsDataProvider - */ + #[DataProvider('basicExpressionsDataProvider')] + #[Test] public function basicExpressionHandlingResultsWorksAsExpected(string $expression, mixed $expectedResult): void { $defaultProvider = new DefaultProvider(new Typo3Version(), new Context(), new Features()); @@ -89,10 +89,8 @@ final class ResolverTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider basicExpressionsWithVariablesDataProvider - */ + #[DataProvider('basicExpressionsWithVariablesDataProvider')] + #[Test] public function basicExpressionHandlingWithCustomVariablesWorksAsExpected(string $expression, mixed $expectedResult): void { $contextMock = $this->createMock(DefaultProvider::class); @@ -117,10 +115,8 @@ final class ResolverTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider basicExpressionHandlingWithContextVariablesDataProvider - */ + #[DataProvider('basicExpressionHandlingWithContextVariablesDataProvider')] + #[Test] public function basicExpressionHandlingWithContextVariablesWorksAsExpected(string $expression, array $contextVariables, mixed $expectedResult): void { $contextMock = $this->createMock(DefaultProvider::class); @@ -147,10 +143,10 @@ final class ResolverTest extends UnitTestCase } /** - * @test - * @dataProvider basicExpressionsWithVariablesAndExpressionLanguageProviderDataProvider * @param mixed $expectedResult */ + #[DataProvider('basicExpressionsWithVariablesAndExpressionLanguageProviderDataProvider')] + #[Test] public function basicExpressionHandlingWithCustomVariablesAndExpressionLanguageProviderWorksAsExpected(string $expression, mixed $expectedResult): void { $expressionProviderMock = $this->createMock(DefaultFunctionsProvider::class); diff --git a/typo3/sysext/core/Tests/Unit/FormProtection/AbstractFormProtectionTest.php b/typo3/sysext/core/Tests/Unit/FormProtection/AbstractFormProtectionTest.php index 0e0d2b6585b0a108f3805fbd232bea80139c82da..880aa6f56332139b82e6e8515b41fadb9d8a2ee1 100644 --- a/typo3/sysext/core/Tests/Unit/FormProtection/AbstractFormProtectionTest.php +++ b/typo3/sysext/core/Tests/Unit/FormProtection/AbstractFormProtectionTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\FormProtection; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Tests\Unit\FormProtection\Fixtures\FormProtectionTesting; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -34,9 +35,7 @@ final class AbstractFormProtectionTest extends UnitTestCase $GLOBALS['TYPO3_CONF_VARS']['SYS']['encryptionKey'] = ''; } - /** - * @test - */ + #[Test] public function generateTokenRetrievesTokenOnce(): void { $subject = $this->getMockBuilder(FormProtectionTesting::class) @@ -47,9 +46,7 @@ final class AbstractFormProtectionTest extends UnitTestCase $subject->generateToken('foo'); } - /** - * @test - */ + #[Test] public function validateTokenRetrievesTokenOnce(): void { $subject = $this->getMockBuilder(FormProtectionTesting::class) @@ -60,9 +57,7 @@ final class AbstractFormProtectionTest extends UnitTestCase $subject->validateToken('foo', 'bar'); } - /** - * @test - */ + #[Test] public function cleanMakesTokenInvalid(): void { $formName = 'foo'; @@ -71,9 +66,7 @@ final class AbstractFormProtectionTest extends UnitTestCase self::assertFalse($this->subject->validateToken($tokenId, $formName)); } - /** - * @test - */ + #[Test] public function cleanPersistsToken(): void { $subject = $this->getMockBuilder(FormProtectionTesting::class) @@ -83,9 +76,7 @@ final class AbstractFormProtectionTest extends UnitTestCase $subject->clean(); } - /** - * @test - */ + #[Test] public function generateTokenFormForEmptyFormNameThrowsException(): void { $this->expectException(\InvalidArgumentException::class); @@ -93,65 +84,49 @@ final class AbstractFormProtectionTest extends UnitTestCase $this->subject->generateToken('', 'edit', 'bar'); } - /** - * @test - */ + #[Test] public function generateTokenFormForEmptyActionNotThrowsException(): void { $this->subject->generateToken('foo', '', '42'); } - /** - * @test - */ + #[Test] public function generateTokenFormForEmptyFormInstanceNameNotThrowsException(): void { $this->subject->generateToken('foo', 'edit', ''); } - /** - * @test - */ + #[Test] public function generateTokenFormForOmittedActionAndFormInstanceNameNotThrowsException(): void { $this->subject->generateToken('foo'); } - /** - * @test - */ + #[Test] public function generateTokenReturns32CharacterHexToken(): void { self::assertMatchesRegularExpression('/^[0-9a-f]{40}$/', $this->subject->generateToken('foo')); } - /** - * @test - */ + #[Test] public function generateTokenCalledTwoTimesWithSameParametersReturnsSameTokens(): void { self::assertEquals($this->subject->generateToken('foo', 'edit', 'bar'), $this->subject->generateToken('foo', 'edit', 'bar')); } - /** - * @test - */ + #[Test] public function validateTokenWithFourEmptyParametersNotThrowsException(): void { $this->subject->validateToken('', '', '', ''); } - /** - * @test - */ + #[Test] public function validateTokenWithTwoEmptyAndTwoMissingParametersNotThrowsException(): void { $this->subject->validateToken('', ''); } - /** - * @test - */ + #[Test] public function validateTokenWithDataFromGenerateTokenWithFormInstanceNameReturnsTrue(): void { $formName = 'foo'; @@ -160,18 +135,14 @@ final class AbstractFormProtectionTest extends UnitTestCase self::assertTrue($this->subject->validateToken($this->subject->generateToken($formName, $action, $formInstanceName), $formName, $action, $formInstanceName)); } - /** - * @test - */ + #[Test] public function validateTokenWithDataFromGenerateTokenWithMissingActionAndFormInstanceNameReturnsTrue(): void { $formName = 'foo'; self::assertTrue($this->subject->validateToken($this->subject->generateToken($formName), $formName)); } - /** - * @test - */ + #[Test] public function validateTokenWithValidDataCalledTwoTimesReturnsTrueOnSecondCall(): void { $formName = 'foo'; @@ -182,9 +153,7 @@ final class AbstractFormProtectionTest extends UnitTestCase self::assertTrue($this->subject->validateToken($tokenId, $formName, $action, $formInstanceName)); } - /** - * @test - */ + #[Test] public function validateTokenWithMismatchingTokenIdReturnsFalse(): void { $formName = 'foo'; @@ -194,9 +163,7 @@ final class AbstractFormProtectionTest extends UnitTestCase self::assertFalse($this->subject->validateToken('Hello world!', $formName, $action, $formInstanceName)); } - /** - * @test - */ + #[Test] public function validateTokenWithMismatchingFormNameReturnsFalse(): void { $formName = 'foo'; @@ -206,9 +173,7 @@ final class AbstractFormProtectionTest extends UnitTestCase self::assertFalse($this->subject->validateToken($tokenId, 'espresso', $action, $formInstanceName)); } - /** - * @test - */ + #[Test] public function validateTokenWithMismatchingActionReturnsFalse(): void { $formName = 'foo'; @@ -218,9 +183,7 @@ final class AbstractFormProtectionTest extends UnitTestCase self::assertFalse($this->subject->validateToken($tokenId, $formName, 'delete', $formInstanceName)); } - /** - * @test - */ + #[Test] public function validateTokenWithMismatchingFormInstanceNameReturnsFalse(): void { $formName = 'foo'; @@ -230,9 +193,7 @@ final class AbstractFormProtectionTest extends UnitTestCase self::assertFalse($this->subject->validateToken($tokenId, $formName, $action, 'beer')); } - /** - * @test - */ + #[Test] public function validateTokenForValidTokenNotCallsCreateValidationErrorMessage(): void { $subject = $this->getMockBuilder(FormProtectionTesting::class) @@ -246,9 +207,7 @@ final class AbstractFormProtectionTest extends UnitTestCase $subject->validateToken($token, $formName, $action, $formInstanceName); } - /** - * @test - */ + #[Test] public function validateTokenForInvalidTokenCallsCreateValidationErrorMessage(): void { $subject = $this->getMockBuilder(FormProtectionTesting::class) @@ -262,9 +221,7 @@ final class AbstractFormProtectionTest extends UnitTestCase $subject->validateToken('an invalid token ...', $formName, $action, $formInstanceName); } - /** - * @test - */ + #[Test] public function validateTokenForInvalidFormNameCallsCreateValidationErrorMessage(): void { $subject = $this->getMockBuilder(FormProtectionTesting::class) diff --git a/typo3/sysext/core/Tests/Unit/FormProtection/BackendFormProtectionTest.php b/typo3/sysext/core/Tests/Unit/FormProtection/BackendFormProtectionTest.php index 2848da7385a3e82cde04c22606995104663e7359..ec10e991873ee1a710ea82720e4344bcf60bb870 100644 --- a/typo3/sysext/core/Tests/Unit/FormProtection/BackendFormProtectionTest.php +++ b/typo3/sysext/core/Tests/Unit/FormProtection/BackendFormProtectionTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\FormProtection; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; use TYPO3\CMS\Core\FormProtection\BackendFormProtection; @@ -44,9 +45,7 @@ final class BackendFormProtectionTest extends UnitTestCase $GLOBALS['TYPO3_CONF_VARS']['SYS']['encryptionKey'] = ''; } - /** - * @test - */ + #[Test] public function generateTokenReadsTokenFromSessionData(): void { $this->backendUserMock @@ -57,9 +56,7 @@ final class BackendFormProtectionTest extends UnitTestCase $this->subject->generateToken('foo'); } - /** - * @test - */ + #[Test] public function tokenFromSessionDataIsAvailableForValidateToken(): void { $sessionToken = '881ffea2159ac72182557b79dc0c723f5a8d20136f9fab56cdd4f8b3a1dbcfcd'; @@ -82,9 +79,7 @@ final class BackendFormProtectionTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function restoreSessionTokenFromRegistryThrowsExceptionIfSessionTokenIsEmpty(): void { $this->expectException(\UnexpectedValueException::class); @@ -93,9 +88,7 @@ final class BackendFormProtectionTest extends UnitTestCase $this->subject->setSessionTokenFromRegistry(); } - /** - * @test - */ + #[Test] public function persistSessionTokenWritesTokenToSession(): void { $this->backendUserMock @@ -104,9 +97,7 @@ final class BackendFormProtectionTest extends UnitTestCase $this->subject->persistSessionToken(); } - /** - * @test - */ + #[Test] public function failingTokenValidationInvokesFailingTokenClosure(): void { $this->expectException(\Exception::class); diff --git a/typo3/sysext/core/Tests/Unit/FormProtection/FormProtectionFactoryTest.php b/typo3/sysext/core/Tests/Unit/FormProtection/FormProtectionFactoryTest.php index 7763a20d6342360179d2368b642710079f79481d..7a3b06bc89b1623595117f24e6049cb2a61c3352 100644 --- a/typo3/sysext/core/Tests/Unit/FormProtection/FormProtectionFactoryTest.php +++ b/typo3/sysext/core/Tests/Unit/FormProtection/FormProtectionFactoryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\FormProtection; +use PHPUnit\Framework\Attributes\Test; use Psr\Log\NullLogger; use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; use TYPO3\CMS\Core\Cache\Backend\TransientMemoryBackend; @@ -61,18 +62,14 @@ final class FormProtectionFactoryTest extends UnitTestCase parent::tearDown(); } - /** - * @test - */ + #[Test] public function createForTypeReturnsDisabledIfInvalidTypeIsGiven(): void { $formProtection = $this->subject->createForType('invalid-type'); self::assertInstanceOf(DisabledFormProtection::class, $formProtection); } - /** - * @test - */ + #[Test] public function createForTypeReturnsDisabledIfInvalidTypeIsGivenAndSameInstanceIfDisabledIsGivenLaterOn(): void { $formProtection = $this->subject->createForType('invalid-type'); @@ -82,9 +79,7 @@ final class FormProtectionFactoryTest extends UnitTestCase self::assertSame($formProtectionDisabled, $formProtection); } - /** - * @test - */ + #[Test] public function createForTypeReturnsDisabledForValidTypeButWithoutValidGlobalArguments(): void { $formProtection = $this->subject->createForType('frontend'); @@ -93,18 +88,14 @@ final class FormProtectionFactoryTest extends UnitTestCase self::assertInstanceOf(DisabledFormProtection::class, $formProtection); } - /** - * @test - */ + #[Test] public function createForTypeAlwaysReturnsInstallToolRegardlessOfRequirementsIfRequested(): void { $formProtection = $this->subject->createForType('installtool'); self::assertInstanceOf(InstallToolFormProtection::class, $formProtection); } - /** - * @test - */ + #[Test] public function createForTypeReturnsDisabledIfBackendUserIsNotAvailable(): void { $user = new BackendUserAuthentication(); @@ -114,9 +105,7 @@ final class FormProtectionFactoryTest extends UnitTestCase self::assertInstanceOf(DisabledFormProtection::class, $formProtection); } - /** - * @test - */ + #[Test] public function createForTypeReturnsBackendIfBackendUserIsLoggedIn(): void { $user = new BackendUserAuthentication(); @@ -127,9 +116,7 @@ final class FormProtectionFactoryTest extends UnitTestCase self::assertInstanceOf(BackendFormProtection::class, $formProtection); } - /** - * @test - */ + #[Test] public function createForTypeReturnsTheSameInstanceEvenThoughUserWasLoggedInLaterOn(): void { $user = new BackendUserAuthentication(); diff --git a/typo3/sysext/core/Tests/Unit/FormProtection/InstallToolFormProtectionTest.php b/typo3/sysext/core/Tests/Unit/FormProtection/InstallToolFormProtectionTest.php index 4571d68407082fccf958a93811ae18fee3e6ba6a..61065b6ffd191dafd20193c3f77d3de77728dc68 100644 --- a/typo3/sysext/core/Tests/Unit/FormProtection/InstallToolFormProtectionTest.php +++ b/typo3/sysext/core/Tests/Unit/FormProtection/InstallToolFormProtectionTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\FormProtection; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\FormProtection\InstallToolFormProtection; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -29,9 +30,7 @@ final class InstallToolFormProtectionTest extends UnitTestCase $GLOBALS['TYPO3_CONF_VARS']['SYS']['encryptionKey'] = ''; } - /** - * @test - */ + #[Test] public function tokenFromSessionDataIsAvailableForValidateToken(): void { $sessionToken = '881ffea2159ac72182557b79dc0c723f5a8d20136f9fab56cdd4f8b3a1dbcfcd'; @@ -45,9 +44,7 @@ final class InstallToolFormProtectionTest extends UnitTestCase self::assertTrue($subject->validateToken($tokenId, $formName, $action, $formInstanceName)); } - /** - * @test - */ + #[Test] public function persistSessionTokenWritesTokensToSession(): void { $_SESSION['installToolFormToken'] = 'foo'; diff --git a/typo3/sysext/core/Tests/Unit/Hooks/TcaItemsProcessorFunctionsTest.php b/typo3/sysext/core/Tests/Unit/Hooks/TcaItemsProcessorFunctionsTest.php index fc1f7c8bc249ac89aed7fc0f0245900550f8a417..1531193a9774b59ab33d1ec4d2c15a22fcd161ad 100644 --- a/typo3/sysext/core/Tests/Unit/Hooks/TcaItemsProcessorFunctionsTest.php +++ b/typo3/sysext/core/Tests/Unit/Hooks/TcaItemsProcessorFunctionsTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Hooks; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use Psr\EventDispatcher\EventDispatcherInterface; use TYPO3\CMS\Backend\Module\ModuleFactory; use TYPO3\CMS\Backend\Module\ModuleProvider; @@ -60,9 +62,7 @@ final class TcaItemsProcessorFunctionsTest extends UnitTestCase parent::tearDown(); } - /** - * @test - */ + #[Test] public function populateAvailableTablesTest(): void { $fieldDefinition = ['items' => [0 => ['label' => '---', 'value' => 0]]]; @@ -98,9 +98,7 @@ final class TcaItemsProcessorFunctionsTest extends UnitTestCase self::assertSame($expected, $fieldDefinition); } - /** - * @test - */ + #[Test] public function populateAvailablePageTypesTest(): void { $fieldDefinition = ['items' => []]; @@ -142,9 +140,7 @@ final class TcaItemsProcessorFunctionsTest extends UnitTestCase self::assertSame($expected, $fieldDefinition); } - /** - * @test - */ + #[Test] public function populateAvailableUserModulesTest(): void { $moduleProviderMock = $this->createMock(ModuleProvider::class); @@ -191,10 +187,8 @@ final class TcaItemsProcessorFunctionsTest extends UnitTestCase self::assertSame($expected, $fieldDefinition); } - /** - * @test - * @dataProvider populateExcludeFieldsTestDataProvider - */ + #[DataProvider('populateExcludeFieldsTestDataProvider')] + #[Test] public function populateExcludeFieldsTest(array $tca, array $expectedItems): void { $GLOBALS['TCA'] = $tca; @@ -322,9 +316,7 @@ final class TcaItemsProcessorFunctionsTest extends UnitTestCase ]; } - /** - * @test - */ + #[Test] public function populateExcludeFieldsWithFlexFormTest(): void { $GLOBALS['TCA'] = [ @@ -392,10 +384,8 @@ final class TcaItemsProcessorFunctionsTest extends UnitTestCase self::assertSame($expected, $fieldDefinition); } - /** - * @test - * @dataProvider populateExplicitAuthValuesTestDataProvider - */ + #[DataProvider('populateExplicitAuthValuesTestDataProvider')] + #[Test] public function populateExplicitAuthValuesTest(array $tca, array $expectedItems): void { $GLOBALS['TCA'] = $tca; @@ -447,9 +437,7 @@ final class TcaItemsProcessorFunctionsTest extends UnitTestCase ]; } - /** - * @test - */ + #[Test] public function populateCustomPermissionOptionsTest(): void { $GLOBALS['TYPO3_CONF_VARS']['BE']['customPermOptions'] = [ @@ -492,9 +480,7 @@ final class TcaItemsProcessorFunctionsTest extends UnitTestCase self::assertSame($expected, $fieldDefinition); } - /** - * @test - */ + #[Test] public function populateAvailableCategoryFieldsThrowsExceptionOnMissingTable(): void { $this->expectException(\UnexpectedValueException::class); @@ -504,9 +490,7 @@ final class TcaItemsProcessorFunctionsTest extends UnitTestCase (new TcaItemsProcessorFunctions())->populateAvailableCategoryFields($fieldDefinition); } - /** - * @test - */ + #[Test] public function populateAvailableCategoryFieldsThrowsExceptionOnInvalidTable(): void { $this->expectException(\RuntimeException::class); @@ -516,10 +500,8 @@ final class TcaItemsProcessorFunctionsTest extends UnitTestCase (new TcaItemsProcessorFunctions())->populateAvailableCategoryFields($fieldDefinition); } - /** - * @test - * @dataProvider populateAvailableCategoryFieldsDataProvider - */ + #[DataProvider('populateAvailableCategoryFieldsDataProvider')] + #[Test] public function populateAvailableCategoryFields(array $itemsProcConfig, array $expectedItems): void { $GLOBALS['TCA']['aTable']['columns'] = [ diff --git a/typo3/sysext/core/Tests/Unit/Html/HtmlCropperTest.php b/typo3/sysext/core/Tests/Unit/Html/HtmlCropperTest.php index 58b97ebaadd05fd655b34c30b5bc39e020ee15a0..d547c77f16f37cddb492ab9ff8885eb92a7d1275 100644 --- a/typo3/sysext/core/Tests/Unit/Html/HtmlCropperTest.php +++ b/typo3/sysext/core/Tests/Unit/Html/HtmlCropperTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Html; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Html\HtmlCropper; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -30,9 +32,7 @@ final class HtmlCropperTest extends UnitTestCase $this->subject = new HtmlCropper(); } - /** - * @test - */ + #[Test] public function cropIsMultibyteSafe(): void { $actual = $this->subject->crop( @@ -479,10 +479,8 @@ final class HtmlCropperTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider cropWorksDataProvicer - */ + #[DataProvider('cropWorksDataProvicer')] + #[Test] public function cropWorks(string $expected, string $content, int $numberOfChars, string $replacementForEllipsis, bool $cropToSpace): void { $this->handleCharset($content, $expected); diff --git a/typo3/sysext/core/Tests/Unit/Html/HtmlParserTest.php b/typo3/sysext/core/Tests/Unit/Html/HtmlParserTest.php index 0cb748f104ed3afbd289c4c3a43ecb5147f509a0..0e0484eacfc2c17aeb3f700de51dfde29015277d 100644 --- a/typo3/sysext/core/Tests/Unit/Html/HtmlParserTest.php +++ b/typo3/sysext/core/Tests/Unit/Html/HtmlParserTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Html; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Html\HtmlParser; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -123,32 +125,28 @@ final class HtmlParserTest extends UnitTestCase } /** - * @test * @param string $tag List of tags, comma separated. * @param string $content HTML-content * @param bool $eliminateExtraEndTags If set, excessive end tags are ignored - you should probably set this in most cases. * @param array $expected The expected result - * @dataProvider splitIntoBlockDataProvider */ + #[DataProvider('splitIntoBlockDataProvider')] + #[Test] public function splitIntoBlock(string $tag, string $content, bool $eliminateExtraEndTags, array $expected): void { self::assertSame($expected, $this->subject->splitIntoBlock($tag, $content, $eliminateExtraEndTags)); } - /** - * @test - * @dataProvider cDataWillRemainUnmodifiedDataProvider - */ + #[DataProvider('cDataWillRemainUnmodifiedDataProvider')] + #[Test] public function xHtmlCleaningDoesNotModifyCDATA(string $source, string $expected): void { $result = $this->subject->HTMLcleaner($source, [], 1); self::assertSame($expected, $result); } - /** - * @test - * @dataProvider htmlWithDifferentSingleTagsDataProvider - */ + #[DataProvider('htmlWithDifferentSingleTagsDataProvider')] + #[Test] public function htmlCleanerKeepsSingleTagsWithAndWithoutEndingSlashUnchanged(string $exampleString): void { $result = $this->subject->HTMLcleaner($exampleString, ['br' => true], 0); @@ -188,10 +186,8 @@ final class HtmlParserTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider spanTagCorrectlyRemovedWhenRmTagIfNoAttribIsConfiguredDataProvider - */ + #[DataProvider('spanTagCorrectlyRemovedWhenRmTagIfNoAttribIsConfiguredDataProvider')] + #[Test] public function tagCorrectlyRemovedWhenRmTagIfNoAttribIsConfigured(string $content, string $expectedResult): void { $tsConfig = [ @@ -206,9 +202,7 @@ final class HtmlParserTest extends UnitTestCase self::assertEquals($expectedResult, $this->parseConfigAndCleanHtml($tsConfig, $content)); } - /** - * @test - */ + #[Test] public function rmTagIfNoAttribIsConfiguredDoesNotChangeNestingType(): void { $tsConfig = [ @@ -250,10 +244,8 @@ final class HtmlParserTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider localNestingCorrectlyRemovesInvalidTagsDataProvider - */ + #[DataProvider('localNestingCorrectlyRemovesInvalidTagsDataProvider')] + #[Test] public function localNestingCorrectlyRemovesInvalidTags(string $content, string $expectedResult): void { $tsConfig = [ @@ -292,10 +284,8 @@ final class HtmlParserTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider globalNestingCorrectlyRemovesInvalidTagsDataProvider - */ + #[DataProvider('globalNestingCorrectlyRemovesInvalidTagsDataProvider')] + #[Test] public function globalNestingCorrectlyRemovesInvalidTags(string $content, string $expectedResult): void { $tsConfig = [ @@ -344,14 +334,14 @@ final class HtmlParserTest extends UnitTestCase } /** - * @test - * @dataProvider emptyTagsDataProvider * @param bool $stripOn TRUE if stripping should be activated. * @param string|bool $tagList Comma separated list of tags that should be stripped. * @param bool $treatNonBreakingSpaceAsEmpty If TRUE will be considered empty. * @param string $content The HTML code that should be modified. * @param string $expectedResult The expected HTML code result. */ + #[DataProvider('emptyTagsDataProvider')] + #[Test] public function stripEmptyTags( bool $stripOn, $tagList, @@ -391,13 +381,13 @@ final class HtmlParserTest extends UnitTestCase } /** - * @test - * @dataProvider stripEmptyTagsKeepsConfiguredTagsDataProvider * @param string $tagList List of tags that should be kept, event if they are empty. * @param bool $treatNonBreakingSpaceAsEmpty If true will be considered empty. * @param string $content The HTML content that should be parsed. * @param string $expectedResult The expected HTML code result. */ + #[DataProvider('stripEmptyTagsKeepsConfiguredTagsDataProvider')] + #[Test] public function stripEmptyTagsKeepsConfiguredTags( string $tagList, bool $treatNonBreakingSpaceAsEmpty, @@ -462,12 +452,12 @@ final class HtmlParserTest extends UnitTestCase * Returns the first tag in $str * Actually everything from the beginning of the $str is returned, so you better make sure the tag is the first thing... * - * @test - * @dataProvider getFirstTagDataProvider * * @param string $str HTML string with tags * @param string $expected The expected result. */ + #[DataProvider('getFirstTagDataProvider')] + #[Test] public function getFirstTag(string $str, string $expected): void { self::assertEquals($expected, $this->subject->getFirstTag($str)); @@ -531,13 +521,13 @@ final class HtmlParserTest extends UnitTestCase /** * Returns the NAME of the first tag in $str * - * @test - * @dataProvider getFirstTagNameDataProvider * * @param string $str HTML tag (The element name MUST be separated from the attributes by a space character! Just *whitespace* will not do) * @param bool $preserveCase If set, then the tag is NOT converted to uppercase by case is preserved. * @param string $expected The expected result. */ + #[DataProvider('getFirstTagNameDataProvider')] + #[Test] public function getFirstTagName(string $str, bool $preserveCase, string $expected): void { self::assertEquals($expected, $this->subject->getFirstTagName($str, $preserveCase)); @@ -585,10 +575,10 @@ final class HtmlParserTest extends UnitTestCase * Removes the first and last tag in the string * Anything before the first and after the last tags respectively is also removed * - * @test - * @dataProvider removeFirstAndLastTagDataProvider * @param string $str String to process */ + #[DataProvider('removeFirstAndLastTagDataProvider')] + #[Test] public function removeFirstAndLastTag(string $str, string $expectedResult): void { self::assertEquals($expectedResult, $this->subject->removeFirstAndLastTag($str)); @@ -626,10 +616,10 @@ final class HtmlParserTest extends UnitTestCase * Returns an array with all attributes and its meta information from a tag. * Removes tag-name if found * - * @test - * @dataProvider getTagAttributesDataProvider * @param string $tag String to process */ + #[DataProvider('getTagAttributesDataProvider')] + #[Test] public function getTagAttributes(string $tag, array $expectedResult): void { self::assertEquals($expectedResult, $this->subject->get_tag_attributes($tag)); @@ -673,13 +663,13 @@ final class HtmlParserTest extends UnitTestCase /** * Strips empty tags from HTML. * - * @test - * @dataProvider stripEmptyTagsDataProvider * @param string $content The content to be stripped of empty tags * @param string $tagList The comma separated list of tags to be stripped. * If empty, all empty tags will be stripped * @param bool $treatNonBreakingSpaceAsEmpty If TRUE tags containing only entities will be treated as empty. */ + #[DataProvider('stripEmptyTagsDataProvider')] + #[Test] public function rawStripEmptyTagsTest( string $content, string $tagList, @@ -764,10 +754,8 @@ final class HtmlParserTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider prefixResourcePathDataProvider - */ + #[DataProvider('prefixResourcePathDataProvider')] + #[Test] public function prefixResourcePathTest(string $content, string $prefix, string $expectedResult): void { self::assertSame( diff --git a/typo3/sysext/core/Tests/Unit/Html/Parser/ParserTest.php b/typo3/sysext/core/Tests/Unit/Html/Parser/ParserTest.php index e13a0f13520dedfc13de3e069a390d755f122a97..4b8fa6a66be06215b2fa09b52202c753d078dd00 100644 --- a/typo3/sysext/core/Tests/Unit/Html/Parser/ParserTest.php +++ b/typo3/sysext/core/Tests/Unit/Html/Parser/ParserTest.php @@ -17,7 +17,10 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Html\Parser; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Html\SimpleNode; +use TYPO3\CMS\Core\Html\SimpleParser; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ParserTest extends UnitTestCase @@ -104,12 +107,12 @@ final class ParserTest extends UnitTestCase /** * @param string[] $expectation - * @test - * @dataProvider nodesAreResolvedDataProvider */ + #[DataProvider('nodesAreResolvedDataProvider')] + #[Test] public function nodesAreResolved(string $html, array $expectation): void { - $parser = \TYPO3\CMS\Core\Html\SimpleParser::fromString($html); + $parser = SimpleParser::fromString($html); $nodes = array_map( static function (SimpleNode $node) { return sprintf('[%s]: %s', self::TYPES[$node->getType()], $node); diff --git a/typo3/sysext/core/Tests/Unit/Html/RteHtmlParserTest.php b/typo3/sysext/core/Tests/Unit/Html/RteHtmlParserTest.php index 40979236d58b8180dabe178963f2c547419fb7bf..fc0b40fb1b797d26715d6c1d5fc1f3c2ae26b861 100644 --- a/typo3/sysext/core/Tests/Unit/Html/RteHtmlParserTest.php +++ b/typo3/sysext/core/Tests/Unit/Html/RteHtmlParserTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Html; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use Psr\EventDispatcher\EventDispatcherInterface; use TYPO3\CMS\Core\Html\RteHtmlParser; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -96,10 +98,8 @@ final class RteHtmlParserTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider hrTagCorrectlyTransformedOnWayToDataBaseDataProvider - */ + #[DataProvider('hrTagCorrectlyTransformedOnWayToDataBaseDataProvider')] + #[Test] public function hrTagCorrectlyTransformedOnWayToDataBase($content, $expectedResult): void { // @todo Explicitly disabled HTML Sanitizer (since it is based on HTML5) @@ -174,10 +174,8 @@ final class RteHtmlParserTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider hrTagCorrectlyTransformedOnWayToDatabaseAndBackToRteProvider - */ + #[DataProvider('hrTagCorrectlyTransformedOnWayToDatabaseAndBackToRteProvider')] + #[Test] public function hrTagCorrectlyTransformedOnWayToDatabaseAndBackToRte($content, $expectedResult): void { // @todo Explicitly disabled HTML Sanitizer (since it is based on HTML5) @@ -208,10 +206,8 @@ final class RteHtmlParserTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider brTagCorrectlyTransformedOnWayToDatabaseAndBackToRteProvider - */ + #[DataProvider('brTagCorrectlyTransformedOnWayToDatabaseAndBackToRteProvider')] + #[Test] public function brTagCorrectlyTransformedOnWayToDatabaseAndBackToRte($content, $expectedResult): void { // @todo Explicitly disabled HTML Sanitizer (since it is based on HTML5) @@ -398,10 +394,8 @@ final class RteHtmlParserTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider paragraphCorrectlyTransformedOnWayToDatabaseProvider - */ + #[DataProvider('paragraphCorrectlyTransformedOnWayToDatabaseProvider')] + #[Test] public function paragraphCorrectlyTransformedOnWayToDatabase($content, $expectedResult): void { $eventDispatcher = $this->createMock(EventDispatcherInterface::class); @@ -498,10 +492,8 @@ final class RteHtmlParserTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider lineBreakCorrectlyTransformedOnWayToRTEProvider - */ + #[DataProvider('lineBreakCorrectlyTransformedOnWayToRTEProvider')] + #[Test] public function lineBreakCorrectlyTransformedOnWayToRTE($content, $expectedResult): void { $eventDispatcher = $this->createMock(EventDispatcherInterface::class); @@ -650,10 +642,8 @@ final class RteHtmlParserTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider paragraphCorrectlyTransformedOnWayToDatabaseAndBackToRteProvider - */ + #[DataProvider('paragraphCorrectlyTransformedOnWayToDatabaseAndBackToRteProvider')] + #[Test] public function paragraphCorrectlyTransformedOnWayToDatabaseAndBackToRte($content, $expectedResult): void { $eventDispatcher = $this->createMock(EventDispatcherInterface::class); @@ -686,10 +676,8 @@ final class RteHtmlParserTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider anchorCorrectlyTransformedOnWayToDatabaseProvider - */ + #[DataProvider('anchorCorrectlyTransformedOnWayToDatabaseProvider')] + #[Test] public function anchorCorrectlyTransformedOnWayToDatabase(string $content, string $expectedResult): void { $eventDispatcher = $this->createMock(EventDispatcherInterface::class); @@ -722,10 +710,8 @@ final class RteHtmlParserTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider anchorCorrectlyTransformedOnWayToDatabaseAndBackToRTEProvider - */ + #[DataProvider('anchorCorrectlyTransformedOnWayToDatabaseAndBackToRTEProvider')] + #[Test] public function anchorCorrectlyTransformedOnWayToDatabaseAndBackToRTE(string $content, string $expectedResult): void { $eventDispatcher = $this->createMock(EventDispatcherInterface::class); @@ -733,9 +719,7 @@ final class RteHtmlParserTest extends UnitTestCase self::assertEquals($expectedResult, $subject->transformTextForRichTextEditor($subject->transformTextForPersistence($content, $this->procOptions), $this->procOptions)); } - /** - * @test - */ + #[Test] public function allowTagsOutsidePreventsWrappingTaginPTag(): void { $eventDispatcher = $this->createMock(EventDispatcherInterface::class); @@ -744,9 +728,7 @@ final class RteHtmlParserTest extends UnitTestCase self::assertEquals('<p><span>Not allowed outside of p-tag</span></p>', $subject->transformTextForRichTextEditor('<span>Not allowed outside of p-tag</span>', $this->procOptions)); } - /** - * @test - */ + #[Test] public function tableAndFigureApplyCorrectlyOutsideOfParagraphTags(): void { $eventDispatcher = $this->createMock(EventDispatcherInterface::class); @@ -755,9 +737,7 @@ final class RteHtmlParserTest extends UnitTestCase self::assertEquals('<figure class="table">' . CRLF . '<table>Allowed outside of p-tag</table>' . CRLF . '<figcaption>My Logo</figcaption></figure>', $subject->transformTextForRichTextEditor('<figure class="table">' . CRLF . '<table>Allowed outside of p-tag</table>' . CRLF . '<figcaption>My Logo</figcaption></figure>', $this->procOptions)); } - /** - * @test - */ + #[Test] public function resetsAllowTagsWhenProcessingConfigurationChanges(): void { $eventDispatcher = $this->createMock(EventDispatcherInterface::class); diff --git a/typo3/sysext/core/Tests/Unit/Http/ApplicationTypeTest.php b/typo3/sysext/core/Tests/Unit/Http/ApplicationTypeTest.php index 68131252a45d195d7ea6678a02b76230457b90a7..f499422a178c53b373d2b9b0f0c77770cf231e5f 100644 --- a/typo3/sysext/core/Tests/Unit/Http/ApplicationTypeTest.php +++ b/typo3/sysext/core/Tests/Unit/Http/ApplicationTypeTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Http; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Core\SystemEnvironmentBuilder; use TYPO3\CMS\Core\Http\ApplicationType; use TYPO3\CMS\Core\Http\ServerRequest; @@ -24,9 +25,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ApplicationTypeTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function fromRequestThrowsIfTypeIsMissing(): void { $this->expectException(\RuntimeException::class); @@ -34,9 +33,7 @@ final class ApplicationTypeTest extends UnitTestCase ApplicationType::fromRequest(new ServerRequest()); } - /** - * @test - */ + #[Test] public function isFrontendReturnsTrueIfFrontend(): void { self::assertTrue( @@ -45,9 +42,7 @@ final class ApplicationTypeTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function isFrontendReturnsFalseIfNotFrontend(): void { self::assertFalse( @@ -56,9 +51,7 @@ final class ApplicationTypeTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function isBackendReturnsTrueIfBackend(): void { self::assertTrue( @@ -67,9 +60,7 @@ final class ApplicationTypeTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function isBackendReturnsTrueIfNotBackend(): void { self::assertFalse( @@ -78,9 +69,7 @@ final class ApplicationTypeTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function isFrontendEnumResolved(): void { $type = ApplicationType::FRONTEND; @@ -88,9 +77,7 @@ final class ApplicationTypeTest extends UnitTestCase self::assertSame('FE', $type->abbreviate()); } - /** - * @test - */ + #[Test] public function isBackendEnumResolved(): void { $type = ApplicationType::BACKEND; diff --git a/typo3/sysext/core/Tests/Unit/Http/ClientTest.php b/typo3/sysext/core/Tests/Unit/Http/ClientTest.php index 78ebd2b5f64e3e10eac34a7146b505dc77d5fb17..89f9d9ee789c79195db823822516085ae5965a24 100644 --- a/typo3/sysext/core/Tests/Unit/Http/ClientTest.php +++ b/typo3/sysext/core/Tests/Unit/Http/ClientTest.php @@ -25,6 +25,7 @@ use GuzzleHttp\Handler\MockHandler as GuzzleMockHandler; use GuzzleHttp\HandlerStack as GuzzleHandlerStack; use GuzzleHttp\Middleware as GuzzleMiddleware; use GuzzleHttp\Psr7\Response as GuzzleResponse; +use PHPUnit\Framework\Attributes\Test; use Psr\Http\Client\ClientExceptionInterface; use Psr\Http\Client\ClientInterface; use Psr\Http\Client\NetworkExceptionInterface; @@ -37,18 +38,14 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; */ final class ClientTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function implementsPsr18ClientInterface(): void { $client = new Client(); self::assertInstanceOf(ClientInterface::class, $client); } - /** - * @test - */ + #[Test] public function sendRequest(): void { $transactions = []; @@ -79,9 +76,7 @@ final class ClientTest extends UnitTestCase self::assertSame('Baz', $response2->getHeaderLine('X-Foo')); } - /** - * @test - */ + #[Test] public function requestException(): void { $request = new Request('https://example.com', 'GET', 'php://temp'); @@ -95,9 +90,7 @@ final class ClientTest extends UnitTestCase $client->sendRequest($request); } - /** - * @test - */ + #[Test] public function networkException(): void { $request = new Request('https://example.com', 'GET', 'php://temp'); @@ -111,9 +104,7 @@ final class ClientTest extends UnitTestCase $client->sendRequest($request); } - /** - * @test - */ + #[Test] public function genericGuzzleException(): void { $request = new Request('https://example.com', 'GET', 'php://temp'); @@ -127,9 +118,7 @@ final class ClientTest extends UnitTestCase $client->sendRequest($request); } - /** - * @test - */ + #[Test] public function redirectIsNotHandledRecursivelyButReturnedAsResponse(): void { $transactions = []; @@ -148,9 +137,7 @@ final class ClientTest extends UnitTestCase self::assertSame('https://example.com', $response->getHeaderLine('Location')); } - /** - * @test - */ + #[Test] public function errorResponsesDoNotThrowAnException(): void { $mock = new GuzzleMockHandler([ diff --git a/typo3/sysext/core/Tests/Unit/Http/MessageTest.php b/typo3/sysext/core/Tests/Unit/Http/MessageTest.php index f41c0d1a2b24c84ec33ce57983bf22316486d960..fa89b47106220ab15ac55dffa85e5ea6619e6e0e 100644 --- a/typo3/sysext/core/Tests/Unit/Http/MessageTest.php +++ b/typo3/sysext/core/Tests/Unit/Http/MessageTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Http; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Http\Message; use TYPO3\CMS\Core\Http\Stream; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -38,17 +40,13 @@ final class MessageTest extends UnitTestCase $this->message = (new Message())->withBody($this->stream); } - /** - * @test - */ + #[Test] public function protocolHasAcceptableDefault(): void { self::assertEquals('1.1', $this->message->getProtocolVersion()); } - /** - * @test - */ + #[Test] public function protocolMutatorReturnsCloneWithChanges(): void { $message = $this->message->withProtocolVersion('1.0'); @@ -56,17 +54,13 @@ final class MessageTest extends UnitTestCase self::assertEquals('1.0', $message->getProtocolVersion()); } - /** - * @test - */ + #[Test] public function usesStreamProvidedInConstructorAsBody(): void { self::assertSame($this->stream, $this->message->getBody()); } - /** - * @test - */ + #[Test] public function bodyMutatorReturnsCloneWithChanges(): void { $stream = new Stream('php://memory', 'wb+'); @@ -75,9 +69,7 @@ final class MessageTest extends UnitTestCase self::assertSame($stream, $message->getBody()); } - /** - * @test - */ + #[Test] public function getHeaderReturnsHeaderValueAsArray(): void { $message = $this->message->withHeader('X-Foo', ['Foo', 'Bar']); @@ -85,9 +77,7 @@ final class MessageTest extends UnitTestCase self::assertEquals(['Foo', 'Bar'], $message->getHeader('X-Foo')); } - /** - * @test - */ + #[Test] public function getHeaderLineReturnsHeaderValueAsCommaConcatenatedString(): void { $message = $this->message->withHeader('X-Foo', ['Foo', 'Bar']); @@ -95,9 +85,7 @@ final class MessageTest extends UnitTestCase self::assertEquals('Foo,Bar', $message->getHeaderLine('X-Foo')); } - /** - * @test - */ + #[Test] public function getHeadersKeepsHeaderCaseSensitivity(): void { $message = $this->message->withHeader('X-Foo', ['Foo', 'Bar']); @@ -105,9 +93,7 @@ final class MessageTest extends UnitTestCase self::assertEquals(['X-Foo' => ['Foo', 'Bar']], $message->getHeaders()); } - /** - * @test - */ + #[Test] public function getHeadersReturnsCaseWithWhichHeaderFirstRegistered(): void { $message = $this->message @@ -117,17 +103,13 @@ final class MessageTest extends UnitTestCase self::assertEquals(['X-Foo' => ['Foo', 'Bar']], $message->getHeaders()); } - /** - * @test - */ + #[Test] public function hasHeaderReturnsFalseIfHeaderIsNotPresent(): void { self::assertFalse($this->message->hasHeader('X-Foo')); } - /** - * @test - */ + #[Test] public function hasHeaderReturnsTrueIfHeaderIsPresent(): void { $message = $this->message->withHeader('X-Foo', 'Foo'); @@ -135,9 +117,7 @@ final class MessageTest extends UnitTestCase self::assertTrue($message->hasHeader('X-Foo')); } - /** - * @test - */ + #[Test] public function addHeaderAppendsToExistingHeader(): void { $message = $this->message->withHeader('X-Foo', 'Foo'); @@ -147,9 +127,7 @@ final class MessageTest extends UnitTestCase self::assertEquals('Foo,Bar', $message2->getHeaderLine('X-Foo')); } - /** - * @test - */ + #[Test] public function canRemoveHeaders(): void { $message = $this->message->withHeader('X-Foo', 'Foo'); @@ -161,9 +139,7 @@ final class MessageTest extends UnitTestCase self::assertFalse($message2->hasHeader('X-Foo')); } - /** - * @test - */ + #[Test] public function headerRemovalIsCaseInsensitive(): void { $message = $this->message @@ -193,10 +169,8 @@ final class MessageTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider invalidGeneralHeaderValuesDataProvider - */ + #[DataProvider('invalidGeneralHeaderValuesDataProvider')] + #[Test] public function withHeaderRaisesExceptionForInvalidNestedHeaderValue($value): void { $this->expectException(\InvalidArgumentException::class); @@ -216,9 +190,7 @@ final class MessageTest extends UnitTestCase ]; } - /** - * @dataProvider invalidHeaderValuesDataProvider - */ + #[DataProvider('invalidHeaderValuesDataProvider')] public function withHeaderRaisesExceptionForInvalidValueType($value): void { $this->expectException(\InvalidArgumentException::class); @@ -226,9 +198,7 @@ final class MessageTest extends UnitTestCase $this->message->withHeader('X-Foo', $value); } - /** - * @dataProvider invalidHeaderValuesDataProvider - */ + #[DataProvider('invalidHeaderValuesDataProvider')] public function withAddedHeaderRaisesExceptionForNonStringNonArrayValue($value): void { $this->expectException(\InvalidArgumentException::class); @@ -236,9 +206,7 @@ final class MessageTest extends UnitTestCase $this->message->withAddedHeader('X-Foo', $value); } - /** - * @test - */ + #[Test] public function withoutHeaderDoesNothingIfHeaderDoesNotExist(): void { self::assertFalse($this->message->hasHeader('X-Foo')); @@ -247,17 +215,13 @@ final class MessageTest extends UnitTestCase self::assertFalse($message->hasHeader('X-Foo')); } - /** - * @test - */ + #[Test] public function getHeaderReturnsAnEmptyArrayWhenHeaderDoesNotExist(): void { self::assertSame([], $this->message->getHeader('X-Foo-Bar')); } - /** - * @test - */ + #[Test] public function getHeaderLineReturnsEmptyStringWhenHeaderDoesNotExist(): void { self::assertSame('', $this->message->getHeaderLine('X-Foo-Bar')); @@ -288,20 +252,16 @@ final class MessageTest extends UnitTestCase ]; } - /** - * @dataProvider headersWithInjectionVectorsDataProvider - * @test - */ + #[DataProvider('headersWithInjectionVectorsDataProvider')] + #[Test] public function doesNotAllowCRLFInjectionWhenCallingWithHeader($name, $value): void { $this->expectException(\InvalidArgumentException::class); $this->message->withHeader($name, $value); } - /** - * @dataProvider headersWithInjectionVectorsDataProvider - * @test - */ + #[DataProvider('headersWithInjectionVectorsDataProvider')] + #[Test] public function doesNotAllowCRLFInjectionWhenCallingWithAddedHeader($name, $value): void { $this->expectException(\InvalidArgumentException::class); diff --git a/typo3/sysext/core/Tests/Unit/Http/MiddlewareDispatcherTest.php b/typo3/sysext/core/Tests/Unit/Http/MiddlewareDispatcherTest.php index 5b59e20630e48338e37d6e47e2a4fefa6d0df234..9cba2fe4f5956166481792cded8535269326c636 100644 --- a/typo3/sysext/core/Tests/Unit/Http/MiddlewareDispatcherTest.php +++ b/typo3/sysext/core/Tests/Unit/Http/MiddlewareDispatcherTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Http; +use PHPUnit\Framework\Attributes\Test; use Psr\Container\ContainerInterface; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; @@ -30,9 +31,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class MiddlewareDispatcherTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function executesKernelWithEmptyMiddlewareStack(): void { $kernel = new class () implements RequestHandlerInterface { @@ -48,9 +47,7 @@ final class MiddlewareDispatcherTest extends UnitTestCase self::assertSame(204, $response->getStatusCode()); } - /** - * @test - */ + #[Test] public function executesMiddlewaresLastInFirstOut(): void { $kernel = new class () implements RequestHandlerInterface { @@ -93,9 +90,7 @@ final class MiddlewareDispatcherTest extends UnitTestCase self::assertSame(204, $response->getStatusCode()); } - /** - * @test - */ + #[Test] public function doesNotInstantiateLazyMiddlewareInCaseOfAnEarlyReturningOuterMiddleware(): void { $kernel = new class () implements RequestHandlerInterface { @@ -119,9 +114,7 @@ final class MiddlewareDispatcherTest extends UnitTestCase self::assertSame(404, $response->getStatusCode()); } - /** - * @test - */ + #[Test] public function throwsExceptionForLazyNonMiddlewareInterfaceClasses(): void { $this->expectException(\InvalidArgumentException::class); @@ -140,9 +133,7 @@ final class MiddlewareDispatcherTest extends UnitTestCase $dispatcher->handle(new ServerRequest()); } - /** - * @test - */ + #[Test] public function canBeExecutedMultipleTimes(): void { $kernel = new class () implements RequestHandlerInterface { @@ -168,9 +159,7 @@ final class MiddlewareDispatcherTest extends UnitTestCase self::assertSame(204, $response2->getStatusCode()); } - /** - * @test - */ + #[Test] public function canBeReExecutedRecursivelyDuringDispatch(): void { $kernel = new class () implements RequestHandlerInterface { @@ -208,9 +197,7 @@ final class MiddlewareDispatcherTest extends UnitTestCase self::assertSame(['nested', 'outer'], $response->getHeader('X-TRACE')); } - /** - * @test - */ + #[Test] public function fetchesMiddlewareFromContainer(): void { $kernel = new class () implements RequestHandlerInterface { diff --git a/typo3/sysext/core/Tests/Unit/Http/MiddlewareStackResolverTest.php b/typo3/sysext/core/Tests/Unit/Http/MiddlewareStackResolverTest.php index f3093c3a4cfbabece158182c03f7365b373eff23..11c8bddcaf581e2c870860045f681b4056eaebc3 100644 --- a/typo3/sysext/core/Tests/Unit/Http/MiddlewareStackResolverTest.php +++ b/typo3/sysext/core/Tests/Unit/Http/MiddlewareStackResolverTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Http; +use PHPUnit\Framework\Attributes\Test; use Psr\Container\ContainerInterface; use TYPO3\CMS\Core\Cache\Frontend\NullFrontend; use TYPO3\CMS\Core\Http\MiddlewareStackResolver; @@ -25,9 +26,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class MiddlewareStackResolverTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function resolveReturnsMiddlewareStack(): void { $middlewares = new \ArrayObject(array_replace_recursive( @@ -53,9 +52,7 @@ final class MiddlewareStackResolverTest extends UnitTestCase self::assertEquals($expected, $subject->resolve('testStack')); } - /** - * @test - */ + #[Test] public function resolveReturnsEmptyMiddlewareStackForZeroPackages(): void { $middlewares = new \ArrayObject(); @@ -75,9 +72,7 @@ final class MiddlewareStackResolverTest extends UnitTestCase self::assertEquals($expected, $subject->resolve('testStack')); } - /** - * @test - */ + #[Test] public function resolveAllowsDisablingAMiddleware(): void { $middlewares = new \ArrayObject(array_replace_recursive( @@ -103,9 +98,7 @@ final class MiddlewareStackResolverTest extends UnitTestCase self::assertEquals($expected, $subject->resolve('testStack')); } - /** - * @test - */ + #[Test] public function resolveAllowsReplacingAMiddleware(): void { $middlewares = new \ArrayObject(array_replace_recursive( diff --git a/typo3/sysext/core/Tests/Unit/Http/NormalizedParamsTest.php b/typo3/sysext/core/Tests/Unit/Http/NormalizedParamsTest.php index b0fa6f10d8660ca73e52049b8e13832cf2663dd3..06f46a665bbdb55f97b65c4aff721d0f015bbadd 100644 --- a/typo3/sysext/core/Tests/Unit/Http/NormalizedParamsTest.php +++ b/typo3/sysext/core/Tests/Unit/Http/NormalizedParamsTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Http; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Http\NormalizedParams; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -120,10 +122,8 @@ final class NormalizedParamsTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider getHttpHostReturnsSanitizedValueDataProvider - */ + #[DataProvider('getHttpHostReturnsSanitizedValueDataProvider')] + #[Test] public function getHttpHostReturnsSanitizedValue(array $serverParams, array $configuration, string $expected): void { $serverRequestParameters = new NormalizedParams($serverParams, $configuration, '', ''); @@ -323,19 +323,15 @@ final class NormalizedParamsTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider isHttpsReturnSanitizedValueDataProvider - */ + #[DataProvider('isHttpsReturnSanitizedValueDataProvider')] + #[Test] public function isHttpsReturnSanitizedValue(array $serverParams, array $configuration, bool $expected): void { $serverRequestParameters = new NormalizedParams($serverParams, $configuration, '', ''); self::assertSame($expected, $serverRequestParameters->isHttps()); } - /** - * @test - */ + #[Test] public function getRequestHostReturnsRequestHost(): void { $serverParams = [ @@ -400,10 +396,8 @@ final class NormalizedParamsTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider getScriptNameReturnsExpectedValueDataProvider - */ + #[DataProvider('getScriptNameReturnsExpectedValueDataProvider')] + #[Test] public function getScriptNameReturnsExpectedValue(array $serverParams, array $configuration, string $expected): void { $serverRequestParameters = new NormalizedParams($serverParams, $configuration, '', ''); @@ -501,19 +495,15 @@ final class NormalizedParamsTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider getRequestUriReturnsExpectedValueDataProvider - */ + #[DataProvider('getRequestUriReturnsExpectedValueDataProvider')] + #[Test] public function getRequestUriReturnsExpectedValue(array $serverParams, array $configuration, string $expected): void { $serverRequestParameters = new NormalizedParams($serverParams, $configuration, '', ''); self::assertSame($expected, $serverRequestParameters->getRequestUri()); } - /** - * @test - */ + #[Test] public function getRequestUriFetchesFromConfiguredRequestUriVar(): void { $GLOBALS['foo']['bar'] = '/foo/bar.php'; @@ -528,9 +518,7 @@ final class NormalizedParamsTest extends UnitTestCase self::assertSame($expected, $serverRequestParameters->getRequestUri()); } - /** - * @test - */ + #[Test] public function getRequestUrlReturnsExpectedValue(): void { $serverParams = [ @@ -542,9 +530,7 @@ final class NormalizedParamsTest extends UnitTestCase self::assertSame($expected, $serverRequestParameters->getRequestUrl()); } - /** - * @test - */ + #[Test] public function getRequestScriptReturnsExpectedValue(): void { $serverParams = [ @@ -556,9 +542,7 @@ final class NormalizedParamsTest extends UnitTestCase self::assertSame($expected, $serverRequestParameters->getRequestScript()); } - /** - * @test - */ + #[Test] public function getRequestDirReturnsExpectedValue(): void { $serverParams = [ @@ -616,10 +600,8 @@ final class NormalizedParamsTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider isBehindReverseProxyReturnsExpectedValueDataProvider - */ + #[DataProvider('isBehindReverseProxyReturnsExpectedValueDataProvider')] + #[Test] public function isBehindReverseProxyReturnsExpectedValue(array $serverParams, array $configuration, bool $expected): void { $serverRequestParameters = new NormalizedParams($serverParams, $configuration, '', ''); @@ -679,10 +661,8 @@ final class NormalizedParamsTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider getRemoteAddressReturnsExpectedValueDataProvider - */ + #[DataProvider('getRemoteAddressReturnsExpectedValueDataProvider')] + #[Test] public function getRemoteAddressReturnsExpectedValue(array $serverParams, array $configuration, string $expected): void { $serverRequestParameters = new NormalizedParams($serverParams, $configuration, '', ''); @@ -743,10 +723,8 @@ final class NormalizedParamsTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider getRequestHostOnlyReturnsExpectedValueDataProvider - */ + #[DataProvider('getRequestHostOnlyReturnsExpectedValueDataProvider')] + #[Test] public function getRequestHostOnlyReturnsExpectedValue(array $serverParams, string $expected): void { $serverRequestParameters = new NormalizedParams($serverParams, [], '', ''); @@ -807,19 +785,15 @@ final class NormalizedParamsTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider getRequestPortOnlyReturnsExpectedValueDataProvider - */ + #[DataProvider('getRequestPortOnlyReturnsExpectedValueDataProvider')] + #[Test] public function getRequestPortReturnsExpectedValue(array $serverParams, int $expected): void { $serverRequestParameters = new NormalizedParams($serverParams, [], '', ''); self::assertSame($expected, $serverRequestParameters->getRequestPort()); } - /** - * @test - */ + #[Test] public function getScriptFilenameReturnsThirdConstructorArgument(): void { $serverParams = [ @@ -831,9 +805,7 @@ final class NormalizedParamsTest extends UnitTestCase self::assertSame('/var/www/typo3/index.php', $serverRequestParameters->getScriptFilename()); } - /** - * @test - */ + #[Test] public function getDocumentRootReturnsExpectedPath(): void { $serverParams = [ @@ -847,9 +819,7 @@ final class NormalizedParamsTest extends UnitTestCase self::assertSame($expected, $serverRequestParameters->getDocumentRoot()); } - /** - * @test - */ + #[Test] public function getSiteUrlReturnsExpectedUrl(): void { $serverParams = [ @@ -863,9 +833,7 @@ final class NormalizedParamsTest extends UnitTestCase self::assertSame($expected, $serverRequestParameters->getSiteUrl()); } - /** - * @test - */ + #[Test] public function getSiteUrlReturnsExpectedUrlForCliCommand(): void { $serverParams = []; @@ -909,10 +877,8 @@ final class NormalizedParamsTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider getSitePathReturnsExpectedPathDataProvider - */ + #[DataProvider('getSitePathReturnsExpectedPathDataProvider')] + #[Test] public function getSitePathReturnsExpectedPath(array $serverParams, string $pathThisScript, string $pathSite, string $expected): void { $serverRequestParameters = new NormalizedParams($serverParams, [], $pathThisScript, $pathSite); @@ -958,19 +924,15 @@ final class NormalizedParamsTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider getSiteScriptReturnsExpectedPathDataProvider - */ + #[DataProvider('getSiteScriptReturnsExpectedPathDataProvider')] + #[Test] public function getSiteScriptReturnsExpectedPath(array $serverParams, string $pathThisScript, string $pathSite, string $expected): void { $serverRequestParameters = new NormalizedParams($serverParams, [], $pathThisScript, $pathSite); self::assertSame($expected, $serverRequestParameters->getSiteScript()); } - /** - * @test - */ + #[Test] public function getPathInfoReturnsExpectedValue(): void { $serverParams = [ @@ -981,9 +943,7 @@ final class NormalizedParamsTest extends UnitTestCase self::assertSame($expected, $serverRequestParameters->getPathInfo()); } - /** - * @test - */ + #[Test] public function getHttpRefererReturnsExpectedValue(): void { $serverParams = [ @@ -994,9 +954,7 @@ final class NormalizedParamsTest extends UnitTestCase self::assertSame($expected, $serverRequestParameters->getHttpReferer()); } - /** - * @test - */ + #[Test] public function getHttpUserAgentReturnsExpectedValue(): void { $serverParams = [ @@ -1007,9 +965,7 @@ final class NormalizedParamsTest extends UnitTestCase self::assertSame($expected, $serverRequestParameters->getHttpUserAgent()); } - /** - * @test - */ + #[Test] public function getHttpAcceptEncodingReturnsExpectedValue(): void { $serverParams = [ @@ -1020,9 +976,7 @@ final class NormalizedParamsTest extends UnitTestCase self::assertSame($expected, $serverRequestParameters->getHttpAcceptEncoding()); } - /** - * @test - */ + #[Test] public function getHttpAcceptLanguageReturnsExpectedValue(): void { $serverParams = [ @@ -1033,9 +987,7 @@ final class NormalizedParamsTest extends UnitTestCase self::assertSame($expected, $serverRequestParameters->getHttpAcceptLanguage()); } - /** - * @test - */ + #[Test] public function getRemoteHostReturnsExpectedValue(): void { $serverParams = [ @@ -1046,9 +998,7 @@ final class NormalizedParamsTest extends UnitTestCase self::assertSame($expected, $serverRequestParameters->getRemoteHost()); } - /** - * @test - */ + #[Test] public function getQueryStringReturnsExpectedValue(): void { $serverParams = [ diff --git a/typo3/sysext/core/Tests/Unit/Http/RedirectResponseTest.php b/typo3/sysext/core/Tests/Unit/Http/RedirectResponseTest.php index 480350e20ab7b55eceeecad56d2319a9865ba4f3..c532503813e1456d81ce3e84239c963e09f3f7e8 100644 --- a/typo3/sysext/core/Tests/Unit/Http/RedirectResponseTest.php +++ b/typo3/sysext/core/Tests/Unit/Http/RedirectResponseTest.php @@ -17,14 +17,13 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Http; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Http\RedirectResponse; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class RedirectResponseTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getHeadersReturnsLocationUrlSetByConstructorArgument(): void { $subject = new RedirectResponse('theRedirectUrl'); @@ -36,9 +35,7 @@ final class RedirectResponseTest extends UnitTestCase self::assertSame($expected, $subject->getHeaders()); } - /** - * @test - */ + #[Test] public function getHeaderReturnsLocationUrlSetByConstructorArgument(): void { $subject = new RedirectResponse('theRedirectUrl'); @@ -48,9 +45,7 @@ final class RedirectResponseTest extends UnitTestCase self::assertSame($expected, $subject->getHeader('location')); } - /** - * @test - */ + #[Test] public function getHeadersReturnsHeaderSetByConstructorArgument(): void { $input = [ @@ -72,9 +67,7 @@ final class RedirectResponseTest extends UnitTestCase self::assertSame($expected, $subject->getHeaders()); } - /** - * @test - */ + #[Test] public function getHeaderReturnsHeaderSetByConstructorArgument(): void { $input = [ @@ -87,9 +80,7 @@ final class RedirectResponseTest extends UnitTestCase self::assertSame($expected, $subject->getHeader('lowercasedheadername')); } - /** - * @test - */ + #[Test] public function getHeaderReturnsHeaderSetByConstructorArgumentLowerCased(): void { $input = [ diff --git a/typo3/sysext/core/Tests/Unit/Http/RequestFactoryTest.php b/typo3/sysext/core/Tests/Unit/Http/RequestFactoryTest.php index 052d31f59c064258d639d7c6a700c5146066fa22..dd20d4269c40da9e222345b0aaec893b150a57f0 100644 --- a/typo3/sysext/core/Tests/Unit/Http/RequestFactoryTest.php +++ b/typo3/sysext/core/Tests/Unit/Http/RequestFactoryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Http; +use PHPUnit\Framework\Attributes\Test; use Psr\Http\Message\RequestFactoryInterface; use Psr\Http\Message\RequestInterface; use TYPO3\CMS\Core\Http\Client\GuzzleClientFactory; @@ -28,18 +29,14 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; */ final class RequestFactoryTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function implementsPsr17FactoryInterface(): void { $factory = new RequestFactory(new GuzzleClientFactory()); self::assertInstanceOf(RequestFactoryInterface::class, $factory); } - /** - * @test - */ + #[Test] public function requestHasMethodSet(): void { $factory = new RequestFactory(new GuzzleClientFactory()); @@ -47,9 +44,7 @@ final class RequestFactoryTest extends UnitTestCase self::assertSame('POST', $request->getMethod()); } - /** - * @test - */ + #[Test] public function requestFactoryHasAWritableEmptyBody(): void { $factory = new RequestFactory(new GuzzleClientFactory()); @@ -67,9 +62,7 @@ final class RequestFactoryTest extends UnitTestCase self::assertSame('Foo', $body->__toString()); } - /** - * @test - */ + #[Test] public function raisesExceptionForInvalidMethod(): void { $this->expectException(\InvalidArgumentException::class); diff --git a/typo3/sysext/core/Tests/Unit/Http/RequestTest.php b/typo3/sysext/core/Tests/Unit/Http/RequestTest.php index 26a85b168f1f5bf821abe2c6196cd64b19616439..6579d6cf88e19caeec688e7545bd9d4ddcd02817 100644 --- a/typo3/sysext/core/Tests/Unit/Http/RequestTest.php +++ b/typo3/sysext/core/Tests/Unit/Http/RequestTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Http; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use Psr\Http\Message\StreamInterface; use TYPO3\CMS\Core\Http\Request; use TYPO3\CMS\Core\Http\Stream; @@ -38,17 +40,13 @@ final class RequestTest extends UnitTestCase $this->request = new Request(); } - /** - * @test - */ + #[Test] public function getMethodIsGetByDefault(): void { self::assertEquals('GET', $this->request->getMethod()); } - /** - * @test - */ + #[Test] public function getMethodMutatorReturnsCloneWithChangedMethod(): void { $request = $this->request->withMethod('GET'); @@ -56,9 +54,7 @@ final class RequestTest extends UnitTestCase self::assertEquals('GET', $request->getMethod()); } - /** - * @test - */ + #[Test] public function withUriReturnsNewInstanceWithNewUri(): void { $request = $this->request->withUri(new Uri('https://example.com:10082/foo/bar?baz=bat')); @@ -69,9 +65,7 @@ final class RequestTest extends UnitTestCase self::assertEquals('/baz/bat?foo=bar', (string)$request2->getUri()); } - /** - * @test - */ + #[Test] public function constructorCanAcceptAllMessageParts(): void { $uri = new Uri('http://example.com/'); @@ -96,9 +90,7 @@ final class RequestTest extends UnitTestCase } } - /** - * @test - */ + #[Test] public function constructorRaisesExceptionForInvalidMethodByString(): void { $this->expectException(\InvalidArgumentException::class); @@ -118,10 +110,8 @@ final class RequestTest extends UnitTestCase ]; } - /** - * @dataProvider invalidRequestBodyDataProvider - * @test - */ + #[DataProvider('invalidRequestBodyDataProvider')] + #[Test] public function constructorRaisesExceptionForInvalidBody($body): void { $this->expectException(\InvalidArgumentException::class); @@ -141,17 +131,15 @@ final class RequestTest extends UnitTestCase /** * @param resource|StreamInterface|string|null $body - * @dataProvider validRequestBodyDataProvider - * @test */ + #[DataProvider('validRequestBodyDataProvider')] + #[Test] public function constructorDoesNotRaiseExceptionForValidBody($body): void { new Request(null, 'GET', $body); } - /** - * @test - */ + #[Test] public function constructorIgnoresInvalidHeaders(): void { $headers = [ @@ -177,18 +165,14 @@ final class RequestTest extends UnitTestCase self::assertEquals($expected, $request->getHeaders()); } - /** - * @test - */ + #[Test] public function getRequestTargetIsSlashWhenNoUriPresent(): void { $request = new Request(); self::assertEquals('/', $request->getRequestTarget()); } - /** - * @test - */ + #[Test] public function getRequestTargetIsSlashWhenUriHasNoPathOrQuery(): void { $request = (new Request()) @@ -226,10 +210,8 @@ final class RequestTest extends UnitTestCase ]; } - /** - * @dataProvider requestsWithUriDataProvider - * @test - */ + #[DataProvider('requestsWithUriDataProvider')] + #[Test] public function getRequestTargetWhenUriIsPresent($request, $expected): void { self::assertEquals($expected, $request->getRequestTarget()); @@ -247,19 +229,15 @@ final class RequestTest extends UnitTestCase ]; } - /** - * @dataProvider validRequestTargetsDataProvider - * @test - */ + #[DataProvider('validRequestTargetsDataProvider')] + #[Test] public function getRequestTargetCanProvideARequestTarget($requestTarget): void { $request = (new Request())->withRequestTarget($requestTarget); self::assertEquals($requestTarget, $request->getRequestTarget()); } - /** - * @test - */ + #[Test] public function withRequestTargetCannotContainWhitespace(): void { $request = new Request(); @@ -268,9 +246,7 @@ final class RequestTest extends UnitTestCase $request->withRequestTarget('foo bar baz'); } - /** - * @test - */ + #[Test] public function getRequestTargetDoesNotCacheBetweenInstances(): void { $request = (new Request())->withUri(new Uri('https://example.com/foo/bar')); @@ -279,9 +255,7 @@ final class RequestTest extends UnitTestCase self::assertNotEquals($original, $newRequest->getRequestTarget()); } - /** - * @test - */ + #[Test] public function getRequestTargetIsResetWithNewUri(): void { $request = (new Request())->withUri(new Uri('https://example.com/foo/bar')); @@ -289,9 +263,7 @@ final class RequestTest extends UnitTestCase $request->withUri(new Uri('http://mwop.net/bar/baz')); } - /** - * @test - */ + #[Test] public function getHeadersContainsHostHeaderIfUriWithHostIsPresent(): void { $request = new Request('http://example.com'); @@ -300,9 +272,7 @@ final class RequestTest extends UnitTestCase self::assertContains('example.com', $headers['host']); } - /** - * @test - */ + #[Test] public function getHeadersContainsNoHostHeaderIfNoUriPresent(): void { $request = new Request(); @@ -310,9 +280,7 @@ final class RequestTest extends UnitTestCase self::assertArrayNotHasKey('host', $headers); } - /** - * @test - */ + #[Test] public function getHeadersContainsNoHostHeaderIfUriDoesNotContainHost(): void { $request = new Request(new Uri()); @@ -320,9 +288,7 @@ final class RequestTest extends UnitTestCase self::assertArrayNotHasKey('host', $headers); } - /** - * @test - */ + #[Test] public function getHeaderWithHostReturnsUriHostWhenPresent(): void { $request = new Request('http://example.com'); @@ -330,27 +296,21 @@ final class RequestTest extends UnitTestCase self::assertEquals(['example.com'], $header); } - /** - * @test - */ + #[Test] public function getHeaderWithHostReturnsEmptyArrayIfNoUriPresent(): void { $request = new Request(); self::assertSame([], $request->getHeader('host')); } - /** - * @test - */ + #[Test] public function getHeaderWithHostReturnsEmptyArrayIfUriDoesNotContainHost(): void { $request = new Request(new Uri()); self::assertSame([], $request->getHeader('host')); } - /** - * @test - */ + #[Test] public function getHeaderLineWithHostReturnsUriHostWhenPresent(): void { $request = new Request('http://example.com'); @@ -358,27 +318,21 @@ final class RequestTest extends UnitTestCase self::assertStringContainsString('example.com', $header); } - /** - * @test - */ + #[Test] public function getHeaderLineWithHostReturnsEmptyStringIfNoUriPresent(): void { $request = new Request(); self::assertSame('', $request->getHeaderLine('host')); } - /** - * @test - */ + #[Test] public function getHeaderLineWithHostReturnsEmptyStringIfUriDoesNotContainHost(): void { $request = new Request(new Uri()); self::assertSame('', $request->getHeaderLine('host')); } - /** - * @test - */ + #[Test] public function getHeaderLineWithHostTakesPrecedenceOverModifiedUri(): void { $request = (new Request()) @@ -390,9 +344,7 @@ final class RequestTest extends UnitTestCase self::assertEquals('example.com', $new->getHeaderLine('Host')); } - /** - * @test - */ + #[Test] public function getHeaderLineWithHostTakesPrecedenceOverEmptyUri(): void { $request = (new Request()) @@ -404,9 +356,7 @@ final class RequestTest extends UnitTestCase self::assertEquals('example.com', $new->getHeaderLine('Host')); } - /** - * @test - */ + #[Test] public function getHeaderLineWithHostDoesNotTakePrecedenceOverHostWithPortFromUri(): void { $request = (new Request()) @@ -431,10 +381,8 @@ final class RequestTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider headersWithUpperAndLowerCaseValuesDataProvider - */ + #[DataProvider('headersWithUpperAndLowerCaseValuesDataProvider')] + #[Test] public function headerCanBeRetrieved($header, $value, $expected): void { $request = new Request(null, 'GET', 'php://memory', [$header => $value]); @@ -460,28 +408,22 @@ final class RequestTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider headersWithInjectionVectorsDataProvider - */ + #[DataProvider('headersWithInjectionVectorsDataProvider')] + #[Test] public function constructorRaisesExceptionForHeadersWithCRLFVectors($name, $value): void { $this->expectException(\InvalidArgumentException::class); new Request(null, 'GET', 'php://memory', [$name => $value]); } - /** - * @test - */ + #[Test] public function supportedRequestMethodsWork(): void { $request = new Request('some-uri', 'PURGE'); self::assertEquals('PURGE', $request->getMethod()); } - /** - * @test - */ + #[Test] public function nonSupportedRequestMethodsRaisesException(): void { $this->expectException(\InvalidArgumentException::class); diff --git a/typo3/sysext/core/Tests/Unit/Http/ResponseFactoryTest.php b/typo3/sysext/core/Tests/Unit/Http/ResponseFactoryTest.php index c9720637f75102bdd6f71f29340ad5d917ca2280..3e258aa0414a7f6d08dfe8ee3f96b0f66af9c1c8 100644 --- a/typo3/sysext/core/Tests/Unit/Http/ResponseFactoryTest.php +++ b/typo3/sysext/core/Tests/Unit/Http/ResponseFactoryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Http; +use PHPUnit\Framework\Attributes\Test; use Psr\Http\Message\ResponseFactoryInterface; use TYPO3\CMS\Core\Http\ResponseFactory; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -26,18 +27,14 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; */ final class ResponseFactoryTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function implementsPsr17FactoryInterface(): void { $factory = new ResponseFactory(); self::assertInstanceOf(ResponseFactoryInterface::class, $factory); } - /** - * @test - */ + #[Test] public function responseHasStatusCode200ByDefault(): void { $factory = new ResponseFactory(); @@ -45,9 +42,7 @@ final class ResponseFactoryTest extends UnitTestCase self::assertSame(200, $response->getStatusCode()); } - /** - * @test - */ + #[Test] public function responseHasStatusCodeSet(): void { $factory = new ResponseFactory(); @@ -55,9 +50,7 @@ final class ResponseFactoryTest extends UnitTestCase self::assertSame(201, $response->getStatusCode()); } - /** - * @test - */ + #[Test] public function responseHasDefaultReasonPhrase(): void { $factory = new ResponseFactory(); @@ -65,9 +58,7 @@ final class ResponseFactoryTest extends UnitTestCase self::assertSame('Moved Permanently', $response->getReasonPhrase()); } - /** - * @test - */ + #[Test] public function responseHasCustomReasonPhrase(): void { $factory = new ResponseFactory(); diff --git a/typo3/sysext/core/Tests/Unit/Http/ResponseTest.php b/typo3/sysext/core/Tests/Unit/Http/ResponseTest.php index 97b404e94ba2358bfdf8b45273e30cd01ad0a83b..798ce10f9dcc548ead2df8e1bbeba1aee7fb2e0a 100644 --- a/typo3/sysext/core/Tests/Unit/Http/ResponseTest.php +++ b/typo3/sysext/core/Tests/Unit/Http/ResponseTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Http; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Http\Response; use TYPO3\CMS\Core\Http\Stream; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -31,17 +33,13 @@ final class ResponseTest extends UnitTestCase $this->response = new Response(); } - /** - * @test - */ + #[Test] public function statusCodeIs200ByDefault(): void { self::assertEquals(200, $this->response->getStatusCode()); } - /** - * @test - */ + #[Test] public function statusCodeMutatorReturnsCloneWithChanges(): void { $response = $this->response->withStatus(400); @@ -57,46 +55,36 @@ final class ResponseTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider invalidStatusCodesDataProvider - */ + #[DataProvider('invalidStatusCodesDataProvider')] + #[Test] public function cannotSetInvalidStatusCode($code): void { $this->expectException(\InvalidArgumentException::class); $this->response->withStatus($code); } - /** - * @test - */ + #[Test] public function reasonPhraseDefaultsToStandards(): void { $response = $this->response->withStatus(422); self::assertEquals('Unprocessable Entity', $response->getReasonPhrase()); } - /** - * @test - */ + #[Test] public function canSetCustomReasonPhrase(): void { $response = $this->response->withStatus(422, 'Foo Bar!'); self::assertEquals('Foo Bar!', $response->getReasonPhrase()); } - /** - * @test - */ + #[Test] public function constructorRaisesExceptionForInvalidStream(): void { $this->expectException(\InvalidArgumentException::class); new Response(['TOTALLY INVALID']); } - /** - * @test - */ + #[Test] public function constructorCanAcceptAllMessageParts(): void { $body = new Stream('php://memory'); @@ -119,10 +107,8 @@ final class ResponseTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider invalidStatusDataProvider - */ + #[DataProvider('invalidStatusDataProvider')] + #[Test] public function constructorRaisesExceptionForInvalidStatus($code): void { $this->expectException(\InvalidArgumentException::class); @@ -142,10 +128,8 @@ final class ResponseTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider invalidResponseBodyDataProvider - */ + #[DataProvider('invalidResponseBodyDataProvider')] + #[Test] public function constructorRaisesExceptionForInvalidBody($body): void { $this->expectException(\InvalidArgumentException::class); @@ -153,9 +137,7 @@ final class ResponseTest extends UnitTestCase new Response($body); } - /** - * @test - */ + #[Test] public function constructorIgnoresInvalidHeaders(): void { $headers = [ @@ -199,19 +181,15 @@ final class ResponseTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider headersWithInjectionVectorsDataProvider - */ + #[DataProvider('headersWithInjectionVectorsDataProvider')] + #[Test] public function constructorRaisesExceptionForHeadersWithCRLFVectors($name, $value): void { $this->expectException(\InvalidArgumentException::class); new Response('php://memory', 200, [$name => $value]); } - /** - * @test - */ + #[Test] public function getHeaderReturnsHeaderSetByConstructorArgument(): void { $subject = new Response('php://memory', 200, ['location' => 'foo']); diff --git a/typo3/sysext/core/Tests/Unit/Http/Security/ReferrerEnforcerTest.php b/typo3/sysext/core/Tests/Unit/Http/Security/ReferrerEnforcerTest.php index e5a527302651d2fc5eb5ed7c12d17ff8985a0d79..32b23da33c500f47dc3dd498c70a4646af75107b 100644 --- a/typo3/sysext/core/Tests/Unit/Http/Security/ReferrerEnforcerTest.php +++ b/typo3/sysext/core/Tests/Unit/Http/Security/ReferrerEnforcerTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Http\Security; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use Psr\Http\Message\ServerRequestInterface; use TYPO3\CMS\Core\Http\NormalizedParams; use TYPO3\CMS\Core\Http\Security\InvalidReferrerException; @@ -109,10 +111,9 @@ final class ReferrerEnforcerTest extends UnitTestCase /** * @param string[]|null $options - * - * @test - * @dataProvider validReferrerIsHandledDataProvider */ + #[DataProvider('validReferrerIsHandledDataProvider')] + #[Test] public function validReferrerIsHandled(string $requestUri, string $referrer, ?array $options, ?string $expectedResponse): void { $subject = $this->buildSubject($requestUri, $referrer); @@ -153,9 +154,9 @@ final class ReferrerEnforcerTest extends UnitTestCase /** * @param string[]|null $options - * @test - * @dataProvider invalidReferrerIsHandledDataProvider */ + #[DataProvider('invalidReferrerIsHandledDataProvider')] + #[Test] public function invalidReferrerIsHandled(string $requestUri, string $referrer, ?array $options): void { $this->expectException(InvalidReferrerException::class); @@ -164,9 +165,7 @@ final class ReferrerEnforcerTest extends UnitTestCase $subject->handle($options); } - /** - * @test - */ + #[Test] public function missingReferrerIsHandled(): void { $this->expectException(MissingReferrerException::class); @@ -178,9 +177,7 @@ final class ReferrerEnforcerTest extends UnitTestCase $subject->handle(); } - /** - * @test - */ + #[Test] public function nonceIsAppliedToResponse(): void { $nonce = new ConsumableNonce(); diff --git a/typo3/sysext/core/Tests/Unit/Http/ServerRequestFactoryTest.php b/typo3/sysext/core/Tests/Unit/Http/ServerRequestFactoryTest.php index 47c035f4effb8f2ab3ecd11416bea0ee74970dc5..86154b97adf79eff2bd7d161445ca74ef840b8a7 100644 --- a/typo3/sysext/core/Tests/Unit/Http/ServerRequestFactoryTest.php +++ b/typo3/sysext/core/Tests/Unit/Http/ServerRequestFactoryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Http; +use PHPUnit\Framework\Attributes\Test; use Psr\Http\Message\ServerRequestFactoryInterface; use Psr\Http\Message\ServerRequestInterface; use TYPO3\CMS\Core\Http\ServerRequest; @@ -29,18 +30,14 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; */ final class ServerRequestFactoryTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function implementsPsr17FactoryInterface(): void { $factory = new ServerRequestFactory(); self::assertInstanceOf(ServerRequestFactoryInterface::class, $factory); } - /** - * @test - */ + #[Test] public function serverRequestHasMethodSet(): void { $factory = new ServerRequestFactory(); @@ -48,9 +45,7 @@ final class ServerRequestFactoryTest extends UnitTestCase self::assertSame('POST', $request->getMethod()); } - /** - * @test - */ + #[Test] public function serverRequestFactoryHasAWritableEmptyBody(): void { $factory = new ServerRequestFactory(); @@ -68,9 +63,7 @@ final class ServerRequestFactoryTest extends UnitTestCase self::assertSame('Foo', $body->__toString()); } - /** - * @test - */ + #[Test] public function raisesExceptionForInvalidMethod(): void { $this->expectException(\InvalidArgumentException::class); @@ -79,9 +72,7 @@ final class ServerRequestFactoryTest extends UnitTestCase $factory->createServerRequest('BOGUS-BODY', '/'); } - /** - * @test - */ + #[Test] public function uploadedFilesAreNormalizedFromFilesSuperGlobal(): void { $_SERVER['HTTP_HOST'] = 'localhost'; @@ -144,9 +135,7 @@ final class ServerRequestFactoryTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function uploadedFilesAreNotCreatedForEmptyFilesArray(): void { $_SERVER['HTTP_HOST'] = 'localhost'; @@ -160,9 +149,7 @@ final class ServerRequestFactoryTest extends UnitTestCase self::assertEmpty($uploadedFiles); } - /** - * @test - */ + #[Test] public function uploadedFilesAreNotCreatedIfTmpNameIsEmpty(): void { $_SERVER['HTTP_HOST'] = 'localhost'; @@ -183,9 +170,7 @@ final class ServerRequestFactoryTest extends UnitTestCase self::assertEmpty($uploadedFiles); } - /** - * @test - */ + #[Test] public function handlesNumericKeys(): void { $_SERVER['HTTP_HOST'] = 'localhost'; diff --git a/typo3/sysext/core/Tests/Unit/Http/ServerRequestTest.php b/typo3/sysext/core/Tests/Unit/Http/ServerRequestTest.php index 668c893b0d6284967faada2584c017498323ebce..fbcb9ea72eaf2f60f47071773a714052a8ea0d0f 100644 --- a/typo3/sysext/core/Tests/Unit/Http/ServerRequestTest.php +++ b/typo3/sysext/core/Tests/Unit/Http/ServerRequestTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Http; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Http\ServerRequest; use TYPO3\CMS\Core\Http\UploadedFile; use TYPO3\CMS\Core\Http\Uri; @@ -37,25 +38,19 @@ final class ServerRequestTest extends UnitTestCase $this->request = new ServerRequest(); } - /** - * @test - */ + #[Test] public function getServerParamsAreEmptyByDefault(): void { self::assertEmpty($this->request->getServerParams()); } - /** - * @test - */ + #[Test] public function getQueryParamsAreEmptyByDefault(): void { self::assertEmpty($this->request->getQueryParams()); } - /** - * @test - */ + #[Test] public function withQueryParamsMutatorReturnsCloneWithChanges(): void { $value = ['foo' => 'bar']; @@ -64,17 +59,13 @@ final class ServerRequestTest extends UnitTestCase self::assertEquals($value, $request->getQueryParams()); } - /** - * @test - */ + #[Test] public function getCookieParamsAreEmptyByDefault(): void { self::assertEmpty($this->request->getCookieParams()); } - /** - * @test - */ + #[Test] public function withCookieParamsMutatorReturnsCloneWithChanges(): void { $value = ['foo' => 'bar']; @@ -83,25 +74,19 @@ final class ServerRequestTest extends UnitTestCase self::assertEquals($value, $request->getCookieParams()); } - /** - * @test - */ + #[Test] public function getUploadedFilesAreEmptyByDefault(): void { self::assertEmpty($this->request->getUploadedFiles()); } - /** - * @test - */ + #[Test] public function getParsedBodyIsEmptyByDefault(): void { self::assertEmpty($this->request->getParsedBody()); } - /** - * @test - */ + #[Test] public function withParsedBodyMutatorReturnsCloneWithChanges(): void { $value = ['foo' => 'bar']; @@ -110,17 +95,13 @@ final class ServerRequestTest extends UnitTestCase self::assertEquals($value, $request->getParsedBody()); } - /** - * @test - */ + #[Test] public function getAttributesAreEmptyByDefault(): void { self::assertEmpty($this->request->getAttributes()); } - /** - * @test - */ + #[Test] public function withAttributeMutatorReturnsCloneWithChanges(): ServerRequest { $request = $this->request->withAttribute('foo', 'bar'); @@ -130,9 +111,7 @@ final class ServerRequestTest extends UnitTestCase return $request; } - /** - * @test - */ + #[Test] public function withoutAttributeReturnsCloneWithoutAttribute(): void { $request = $this->request; @@ -141,9 +120,7 @@ final class ServerRequestTest extends UnitTestCase self::assertNull($new->getAttribute('foo', null)); } - /** - * @test - */ + #[Test] public function constructorUsesProvidedArguments(): void { $server = [ diff --git a/typo3/sysext/core/Tests/Unit/Http/StreamFactoryTest.php b/typo3/sysext/core/Tests/Unit/Http/StreamFactoryTest.php index 7a838d5cd09908055b4dea10b67097473410a02f..fdd41521c5ed431d00aebd85f8d382dc9bf07052 100644 --- a/typo3/sysext/core/Tests/Unit/Http/StreamFactoryTest.php +++ b/typo3/sysext/core/Tests/Unit/Http/StreamFactoryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Http; +use PHPUnit\Framework\Attributes\Test; use Psr\Http\Message\StreamFactoryInterface; use TYPO3\CMS\Core\Core\Environment; use TYPO3\CMS\Core\Http\StreamFactory; @@ -41,18 +42,14 @@ final class StreamFactoryTest extends UnitTestCase return $path; } - /** - * @test - */ + #[Test] public function implementsPsr17FactoryInterface(): void { $factory = new StreamFactory(); self::assertInstanceOf(StreamFactoryInterface::class, $factory); } - /** - * @test - */ + #[Test] public function createStreamReturnsEmptyStreamByDefault(): void { $factory = new StreamFactory(); @@ -60,9 +57,7 @@ final class StreamFactoryTest extends UnitTestCase self::assertSame('', $stream->__toString()); } - /** - * @test - */ + #[Test] public function createStreamFromEmptyString(): void { $factory = new StreamFactory(); @@ -70,9 +65,7 @@ final class StreamFactoryTest extends UnitTestCase self::assertSame('', $stream->__toString()); } - /** - * @test - */ + #[Test] public function createStreamFromNonEmptyString(): void { $factory = new StreamFactory(); @@ -80,9 +73,7 @@ final class StreamFactoryTest extends UnitTestCase self::assertSame('Foo', $stream->__toString()); } - /** - * @test - */ + #[Test] public function createStreamReturnsWritableStream(): void { $factory = new StreamFactory(); @@ -91,9 +82,7 @@ final class StreamFactoryTest extends UnitTestCase self::assertSame('Foo', $stream->__toString()); } - /** - * @test - */ + #[Test] public function createStreamReturnsAppendableStream(): void { $factory = new StreamFactory(); @@ -102,9 +91,7 @@ final class StreamFactoryTest extends UnitTestCase self::assertSame('FooBar', $stream->__toString()); } - /** - * @test - */ + #[Test] public function createStreamFromFile(): void { $fileName = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('test_'); @@ -115,9 +102,7 @@ final class StreamFactoryTest extends UnitTestCase self::assertSame('Foo', $stream->__toString()); } - /** - * @test - */ + #[Test] public function createStreamFromFileWithMode(): void { $fileName = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('test_'); @@ -130,9 +115,7 @@ final class StreamFactoryTest extends UnitTestCase self::assertSame('Foo', $contents); } - /** - * @test - */ + #[Test] public function createStreamFromFileWithInvalidMode(): void { $fileName = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('test_'); @@ -144,9 +127,7 @@ final class StreamFactoryTest extends UnitTestCase $factory->createStreamFromFile($fileName, 'z'); } - /** - * @test - */ + #[Test] public function createStreamFromFileWithMissingFile(): void { $unavailableFileName = Environment::getVarPath() . '/tests/' . StringUtility::getUniqueId('test_'); @@ -156,9 +137,7 @@ final class StreamFactoryTest extends UnitTestCase $factory->createStreamFromFile($unavailableFileName, 'r'); } - /** - * @test - */ + #[Test] public function createStreamFromResource(): void { $fileName = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('test_'); @@ -172,9 +151,7 @@ final class StreamFactoryTest extends UnitTestCase self::assertSame('Foo', $stream->__toString()); } - /** - * @test - */ + #[Test] public function createStreamResourceFromInvalidResource(): void { $this->expectException(\InvalidArgumentException::class); diff --git a/typo3/sysext/core/Tests/Unit/Http/StreamTest.php b/typo3/sysext/core/Tests/Unit/Http/StreamTest.php index 07ec60cbe23e1397d573290cf525c5d48ca10df4..5115f40b9dea8ab8e8ab74551d05804d264a9f2c 100644 --- a/typo3/sysext/core/Tests/Unit/Http/StreamTest.php +++ b/typo3/sysext/core/Tests/Unit/Http/StreamTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Http; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Core\Environment; use TYPO3\CMS\Core\Http\Stream; use TYPO3\CMS\Core\Utility\GeneralUtility; @@ -37,17 +39,13 @@ final class StreamTest extends UnitTestCase return $path; } - /** - * @test - */ + #[Test] public function canInstantiateWithStreamIdentifier(): void { self::assertInstanceOf(Stream::class, new Stream('php://memory', 'wb+')); } - /** - * @test - */ + #[Test] public function canInstantiateWithStreamResource(): void { $resource = fopen('php://memory', 'wb+'); @@ -55,9 +53,7 @@ final class StreamTest extends UnitTestCase self::assertInstanceOf(Stream::class, $subject); } - /** - * @test - */ + #[Test] public function isReadableReturnsFalseIfStreamIsNotReadable(): void { $fileName = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('test_'); @@ -66,18 +62,14 @@ final class StreamTest extends UnitTestCase self::assertFalse($subject->isReadable()); } - /** - * @test - */ + #[Test] public function isWritableReturnsFalseIfStreamIsNotWritable(): void { $subject = new Stream('php://memory', 'r'); self::assertFalse($subject->isWritable()); } - /** - * @test - */ + #[Test] public function toStringRetrievesFullContentsOfStream(): void { $message = 'foo bar'; @@ -86,9 +78,7 @@ final class StreamTest extends UnitTestCase self::assertEquals($message, (string)$subject); } - /** - * @test - */ + #[Test] public function detachReturnsResource(): void { $resource = fopen('php://memory', 'wb+'); @@ -96,18 +86,14 @@ final class StreamTest extends UnitTestCase self::assertSame($resource, $subject->detach()); } - /** - * @test - */ + #[Test] public function constructorRaisesExceptionWhenPassingInvalidStreamResource(): void { $this->expectException(\InvalidArgumentException::class); new Stream([' THIS WILL NOT WORK ']); } - /** - * @test - */ + #[Test] public function toStringSerializationReturnsEmptyStringWhenStreamIsNotReadable(): void { $fileName = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('test_'); @@ -117,9 +103,7 @@ final class StreamTest extends UnitTestCase self::assertEquals('', $subject->__toString()); } - /** - * @test - */ + #[Test] public function closeClosesResource(): void { $fileName = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('test_'); @@ -132,9 +116,7 @@ final class StreamTest extends UnitTestCase self::assertFalse($isResource); } - /** - * @test - */ + #[Test] public function closeUnsetsResource(): void { $fileName = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('test_'); @@ -145,9 +127,7 @@ final class StreamTest extends UnitTestCase self::assertNull($subject->detach()); } - /** - * @test - */ + #[Test] public function closeDoesNothingAfterDetach(): void { $fileName = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('test_'); @@ -160,9 +140,7 @@ final class StreamTest extends UnitTestCase self::assertSame($resource, $detached); } - /** - * @test - */ + #[Test] public function getSizeReportsNullWhenNoResourcePresent(): void { $subject = new Stream('php://memory', 'wb+'); @@ -170,9 +148,7 @@ final class StreamTest extends UnitTestCase self::assertNull($subject->getSize()); } - /** - * @test - */ + #[Test] public function tellReportsCurrentPositionInResource(): void { $fileName = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('test_'); @@ -183,9 +159,7 @@ final class StreamTest extends UnitTestCase self::assertEquals(2, $subject->tell()); } - /** - * @test - */ + #[Test] public function tellRaisesExceptionIfResourceIsDetached(): void { $fileName = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('test_'); @@ -199,9 +173,7 @@ final class StreamTest extends UnitTestCase $subject->tell(); } - /** - * @test - */ + #[Test] public function eofReportsFalseWhenNotAtEndOfStream(): void { $fileName = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('test_'); @@ -212,9 +184,7 @@ final class StreamTest extends UnitTestCase self::assertFalse($subject->eof()); } - /** - * @test - */ + #[Test] public function eofReportsTrueWhenAtEndOfStream(): void { $fileName = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('test_'); @@ -227,9 +197,7 @@ final class StreamTest extends UnitTestCase self::assertTrue($subject->eof()); } - /** - * @test - */ + #[Test] public function eofReportsTrueWhenStreamIsDetached(): void { $fileName = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('test_'); @@ -241,9 +209,7 @@ final class StreamTest extends UnitTestCase self::assertTrue($subject->eof()); } - /** - * @test - */ + #[Test] public function isSeekableReturnsTrueForReadableStreams(): void { $fileName = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('test_'); @@ -253,9 +219,7 @@ final class StreamTest extends UnitTestCase self::assertTrue($subject->isSeekable()); } - /** - * @test - */ + #[Test] public function isSeekableReturnsFalseForDetachedStreams(): void { $fileName = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('test_'); @@ -266,9 +230,7 @@ final class StreamTest extends UnitTestCase self::assertFalse($subject->isSeekable()); } - /** - * @test - */ + #[Test] public function seekAdvancesToGivenOffsetOfStream(): void { $fileName = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('test_'); @@ -279,9 +241,7 @@ final class StreamTest extends UnitTestCase self::assertEquals(2, $subject->tell()); } - /** - * @test - */ + #[Test] public function rewindResetsToStartOfStream(): void { $fileName = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('test_'); @@ -293,9 +253,7 @@ final class StreamTest extends UnitTestCase self::assertEquals(0, $subject->tell()); } - /** - * @test - */ + #[Test] public function seekRaisesExceptionWhenStreamIsDetached(): void { $fileName = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('test_'); @@ -308,9 +266,7 @@ final class StreamTest extends UnitTestCase $subject->seek(2); } - /** - * @test - */ + #[Test] public function isWritableReturnsFalseWhenStreamIsDetached(): void { $fileName = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('test_'); @@ -321,9 +277,7 @@ final class StreamTest extends UnitTestCase self::assertFalse($subject->isWritable()); } - /** - * @test - */ + #[Test] public function writeRaisesExceptionWhenStreamIsDetached(): void { $fileName = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('test_'); @@ -336,9 +290,7 @@ final class StreamTest extends UnitTestCase $subject->write('bar'); } - /** - * @test - */ + #[Test] public function isReadableReturnsFalseWhenStreamIsDetached(): void { $fileName = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('test_'); @@ -349,9 +301,7 @@ final class StreamTest extends UnitTestCase self::assertFalse($subject->isReadable()); } - /** - * @test - */ + #[Test] public function readRaisesExceptionWhenStreamIsDetached(): void { $fileName = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('test_'); @@ -364,9 +314,7 @@ final class StreamTest extends UnitTestCase $subject->read(4096); } - /** - * @test - */ + #[Test] public function readReturnsEmptyStringWhenAtEndOfFile(): void { $fileName = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('test_'); @@ -379,9 +327,7 @@ final class StreamTest extends UnitTestCase self::assertEquals('', $subject->read(4096)); } - /** - * @test - */ + #[Test] public function getContentsReturnsEmptyStringIfStreamIsNotReadable(): void { $fileName = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('test_'); @@ -404,10 +350,8 @@ final class StreamTest extends UnitTestCase ]; } - /** - * @dataProvider invalidResourcesDataProvider - * @test - */ + #[DataProvider('invalidResourcesDataProvider')] + #[Test] public function attachWithNonStringNonResourceRaisesExceptionByType($resource): void { $this->expectException(\InvalidArgumentException::class); @@ -416,9 +360,7 @@ final class StreamTest extends UnitTestCase $subject->attach($resource); } - /** - * @test - */ + #[Test] public function attachWithNonStringNonResourceRaisesExceptionByString(): void { $this->expectException(\InvalidArgumentException::class); @@ -427,9 +369,7 @@ final class StreamTest extends UnitTestCase $subject->attach('foo-bar-baz'); } - /** - * @test - */ + #[Test] public function attachWithResourceAttachesResource(): void { $fileName = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('test_'); @@ -441,9 +381,7 @@ final class StreamTest extends UnitTestCase self::assertSame($resource, $reflection->getValue($subject)); } - /** - * @test - */ + #[Test] public function attachWithStringRepresentingResourceCreatesAndAttachesResource(): void { $fileName = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('test_'); @@ -456,9 +394,7 @@ final class StreamTest extends UnitTestCase self::assertEquals('FooBar', (string)$subject); } - /** - * @test - */ + #[Test] public function getContentsShouldGetFullStreamContents(): void { $fileName = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('test_'); @@ -472,9 +408,7 @@ final class StreamTest extends UnitTestCase self::assertEquals('FooBar', $subject->getContents()); } - /** - * @test - */ + #[Test] public function getContentsShouldReturnStreamContentsFromCurrentPointer(): void { $fileName = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('test_'); @@ -488,9 +422,7 @@ final class StreamTest extends UnitTestCase self::assertEquals('Bar', $subject->getContents()); } - /** - * @test - */ + #[Test] public function getMetadataReturnsAllMetadataWhenNoKeyPresent(): void { $fileName = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('test_'); @@ -502,9 +434,7 @@ final class StreamTest extends UnitTestCase self::assertEquals($expected, $subject->getMetadata()); } - /** - * @test - */ + #[Test] public function getMetadataReturnsDataForSpecifiedKey(): void { $fileName = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('test_'); @@ -517,9 +447,7 @@ final class StreamTest extends UnitTestCase self::assertEquals($expected, $subject->getMetadata('uri')); } - /** - * @test - */ + #[Test] public function getMetadataReturnsNullIfNoDataExistsForKey(): void { $fileName = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('test_'); @@ -530,9 +458,7 @@ final class StreamTest extends UnitTestCase self::assertNull($subject->getMetadata('TOTALLY_MADE_UP')); } - /** - * @test - */ + #[Test] public function getSizeReturnsStreamSize(): void { $resource = fopen(__FILE__, 'r'); diff --git a/typo3/sysext/core/Tests/Unit/Http/UploadedFileFactoryTest.php b/typo3/sysext/core/Tests/Unit/Http/UploadedFileFactoryTest.php index 297400466e3f7abe227644c660384f8423324e84..ae687094edf2686ef36e0b03ea8e2307ddb160dc 100644 --- a/typo3/sysext/core/Tests/Unit/Http/UploadedFileFactoryTest.php +++ b/typo3/sysext/core/Tests/Unit/Http/UploadedFileFactoryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Http; +use PHPUnit\Framework\Attributes\Test; use Psr\Http\Message\UploadedFileFactoryInterface; use Psr\Http\Message\UploadedFileInterface; use TYPO3\CMS\Core\Http\Stream; @@ -25,18 +26,14 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class UploadedFileFactoryTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function implementsPsr17FactoryInterface(): void { $factory = new UploadedFileFactory(); self::assertInstanceOf(UploadedFileFactoryInterface::class, $factory); } - /** - * @test - */ + #[Test] public function createUploadedFile(): void { $stream = new Stream('php://memory'); @@ -49,9 +46,7 @@ final class UploadedFileFactoryTest extends UnitTestCase self::assertNull($uploadedFile->getClientMediaType()); } - /** - * @test - */ + #[Test] public function createUploadedFileWithParams(): void { $stream = new Stream('php://memory'); @@ -64,9 +59,7 @@ final class UploadedFileFactoryTest extends UnitTestCase self::assertSame('text/html', $uploadedFile->getClientMediaType()); } - /** - * @test - */ + #[Test] public function createUploadedFileCreateSizeFromStreamSize(): void { $stream = new Stream('php://memory', 'rw'); @@ -78,9 +71,7 @@ final class UploadedFileFactoryTest extends UnitTestCase self::assertSame(5, $uploadedFile->getSize()); } - /** - * @test - */ + #[Test] public function createUploadedFileThrowsExceptionWhenStreamSizeCanNotBeDetermined(): void { $this->expectException(\InvalidArgumentException::class); diff --git a/typo3/sysext/core/Tests/Unit/Http/UploadedFileTest.php b/typo3/sysext/core/Tests/Unit/Http/UploadedFileTest.php index 517eebaa70ab64517b033f27ee9fee1c4f7f9afc..f71a1930bc0482b298ba372b2089217625d89fa9 100644 --- a/typo3/sysext/core/Tests/Unit/Http/UploadedFileTest.php +++ b/typo3/sysext/core/Tests/Unit/Http/UploadedFileTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Http; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Http\Stream; use TYPO3\CMS\Core\Http\UploadedFile; use TYPO3\CMS\Core\Utility\GeneralUtility; @@ -54,10 +56,8 @@ final class UploadedFileTest extends UnitTestCase ]; } - /** - * @dataProvider invalidStreamsDataProvider - * @test - */ + #[DataProvider('invalidStreamsDataProvider')] + #[Test] public function constructorRaisesExceptionOnInvalidStreamOrFile($streamOrFile): void { $this->expectException(\InvalidArgumentException::class); @@ -72,10 +72,8 @@ final class UploadedFileTest extends UnitTestCase ]; } - /** - * @dataProvider invalidErrorStatusesDataProvider - * @test - */ + #[DataProvider('invalidErrorStatusesDataProvider')] + #[Test] public function constructorRaisesExceptionOnInvalidErrorStatus($status): void { $this->expectException(\InvalidArgumentException::class); @@ -83,9 +81,7 @@ final class UploadedFileTest extends UnitTestCase new UploadedFile(fopen('php://temp', 'wb+'), 0, $status); } - /** - * @test - */ + #[Test] public function getStreamReturnsOriginalStreamObject(): void { $stream = new Stream('php://temp'); @@ -93,9 +89,7 @@ final class UploadedFileTest extends UnitTestCase self::assertSame($stream, $upload->getStream()); } - /** - * @test - */ + #[Test] public function getStreamReturnsWrappedPhpStream(): void { $stream = fopen('php://temp', 'wb+'); @@ -104,9 +98,7 @@ final class UploadedFileTest extends UnitTestCase self::assertSame($stream, $uploadStream); } - /** - * @test - */ + #[Test] public function getStreamReturnsStreamForFile(): void { $this->tmpFile = $stream = tempnam(sys_get_temp_dir(), 'phly'); @@ -116,9 +108,7 @@ final class UploadedFileTest extends UnitTestCase self::assertSame($stream, $r->getValue($uploadStream)); } - /** - * @test - */ + #[Test] public function moveToMovesFileToDesignatedPath(): void { $stream = new Stream('php://temp', 'wb+'); @@ -132,9 +122,7 @@ final class UploadedFileTest extends UnitTestCase self::assertEquals($stream->__toString(), $contents); } - /** - * @test - */ + #[Test] public function moveToRaisesExceptionForEmptyPath(): void { $stream = new Stream('php://temp', 'wb+'); @@ -145,9 +133,7 @@ final class UploadedFileTest extends UnitTestCase $upload->moveTo(''); } - /** - * @test - */ + #[Test] public function moveToCannotBeCalledMoreThanOnce(): void { $stream = new Stream('php://temp', 'wb+'); @@ -163,9 +149,7 @@ final class UploadedFileTest extends UnitTestCase $upload->moveTo($to); } - /** - * @test - */ + #[Test] public function getGetStreamRaisesExceptionAfterMove(): void { $stream = new Stream('php://temp', 'wb+'); @@ -183,8 +167,8 @@ final class UploadedFileTest extends UnitTestCase /** * see https://en.wikipedia.org/wiki/Unicode_equivalence#Normalization, "NFD" - * @test */ + #[Test] public function nfdFileNameIsNormalized(): void { $clientFileName = hex2bin('6fcc88') . '.png'; diff --git a/typo3/sysext/core/Tests/Unit/Http/UriFactoryTest.php b/typo3/sysext/core/Tests/Unit/Http/UriFactoryTest.php index 7db7f86812123b86f14875fc736e1b77cb310bad..a2e741c10bfa11f87dd2ffb98bcb46a359e159f8 100644 --- a/typo3/sysext/core/Tests/Unit/Http/UriFactoryTest.php +++ b/typo3/sysext/core/Tests/Unit/Http/UriFactoryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Http; +use PHPUnit\Framework\Attributes\Test; use Psr\Http\Message\UriFactoryInterface; use Psr\Http\Message\UriInterface; use TYPO3\CMS\Core\Http\UriFactory; @@ -27,18 +28,14 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; */ final class UriFactoryTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function implementsPsr17FactoryInterface(): void { $factory = new UriFactory(); self::assertInstanceOf(UriFactoryInterface::class, $factory); } - /** - * @test - */ + #[Test] public function uriIsCreated(): void { $factory = new UriFactory(); diff --git a/typo3/sysext/core/Tests/Unit/Http/UriTest.php b/typo3/sysext/core/Tests/Unit/Http/UriTest.php index 24706bc63d77e2145bb50a900f7f7356d083c787..3087eac58b50978669f4f19193821635376441fb 100644 --- a/typo3/sysext/core/Tests/Unit/Http/UriTest.php +++ b/typo3/sysext/core/Tests/Unit/Http/UriTest.php @@ -17,14 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Http; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Http\Uri; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class UriTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function constructorSetsAllProperties(): void { $uri = new Uri('https://user:pass@local.example.com:3001/foo?bar=baz#quz'); @@ -46,18 +46,14 @@ final class UriTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider canSerializeToStringDataProvider - */ + #[DataProvider('canSerializeToStringDataProvider')] + #[Test] public function canSerializeToString(string $uri): void { self::assertEquals($uri, (string)(new Uri($uri))); } - /** - * @test - */ + #[Test] public function withSchemeReturnsNewInstanceWithNewScheme(): void { $uri = new Uri('https://user:pass@local.example.com:3001/foo?bar=baz#quz'); @@ -67,9 +63,7 @@ final class UriTest extends UnitTestCase self::assertEquals('http://user:pass@local.example.com:3001/foo?bar=baz#quz', (string)$new); } - /** - * @test - */ + #[Test] public function withUserInfoReturnsNewInstanceWithProvidedUser(): void { $uri = new Uri('https://user:pass@local.example.com:3001/foo?bar=baz#quz'); @@ -79,9 +73,7 @@ final class UriTest extends UnitTestCase self::assertEquals('https://matthew@local.example.com:3001/foo?bar=baz#quz', (string)$new); } - /** - * @test - */ + #[Test] public function withUserInfoReturnsNewInstanceWithProvidedUserAndPassword(): void { $uri = new Uri('https://user:pass@local.example.com:3001/foo?bar=baz#quz'); @@ -91,9 +83,7 @@ final class UriTest extends UnitTestCase self::assertEquals('https://matthew:zf2@local.example.com:3001/foo?bar=baz#quz', (string)$new); } - /** - * @test - */ + #[Test] public function withHostReturnsNewInstanceWithProvidedHost(): void { $uri = new Uri('https://user:pass@local.example.com:3001/foo?bar=baz#quz'); @@ -103,9 +93,7 @@ final class UriTest extends UnitTestCase self::assertEquals('https://user:pass@framework.zend.com:3001/foo?bar=baz#quz', (string)$new); } - /** - * @test - */ + #[Test] public function withPortAndNullValueReturnsInstanceWithProvidedPort(): void { $uri = new Uri('https://user:pass@local.example.com:3001/foo?bar=baz#quz'); @@ -124,10 +112,8 @@ final class UriTest extends UnitTestCase ]; } - /** - * @dataProvider validPortsDataProvider - * @test - */ + #[DataProvider('validPortsDataProvider')] + #[Test] public function withPortReturnsNewInstanceWithProvidedPort($port): void { $uri = new Uri('https://user:pass@local.example.com:3001/foo?bar=baz#quz'); @@ -149,10 +135,8 @@ final class UriTest extends UnitTestCase ]; } - /** - * @dataProvider invalidPortsDataProviderRange - * @test - */ + #[DataProvider('invalidPortsDataProviderRange')] + #[Test] public function withPortRaisesExceptionForInvalidPortsByRange($port): void { $uri = new Uri('https://user:pass@local.example.com:3001/foo?bar=baz#quz'); @@ -161,36 +145,28 @@ final class UriTest extends UnitTestCase $uri->withPort($port); } - /** - * @test - */ + #[Test] public function standardPortAndSchemeDoesNotRenderPort(): void { $subject = new Uri('http://www.example.com:80'); self::assertEquals('http://www.example.com', (string)$subject); } - /** - * @test - */ + #[Test] public function standardPortAndNoSchemeDoesRenderPort(): void { $subject = new Uri('www.example.com:80'); self::assertEquals('//www.example.com:80', (string)$subject); } - /** - * @test - */ + #[Test] public function noPortAndNoSchemeDoesNotRenderPort(): void { $subject = new Uri('www.example.com'); self::assertEquals('/www.example.com', (string)$subject); } - /** - * @test - */ + #[Test] public function withPathReturnsNewInstanceWithProvidedPath(): void { $uri = new Uri('https://user:pass@local.example.com:3001/foo?bar=baz#quz'); @@ -200,9 +176,7 @@ final class UriTest extends UnitTestCase self::assertEquals('https://user:pass@local.example.com:3001/bar/baz?bar=baz#quz', (string)$new); } - /** - * @test - */ + #[Test] public function withPathRaisesExceptionForInvalidPathsWithQuery(): void { $uri = new Uri('https://user:pass@local.example.com:3001/foo?bar=baz#quz'); @@ -211,9 +185,7 @@ final class UriTest extends UnitTestCase $uri->withPath('/bar/baz?bat=quz'); } - /** - * @test - */ + #[Test] public function withPathRaisesExceptionForInvalidPathsWithFragment(): void { $uri = new Uri('https://user:pass@local.example.com:3001/foo?bar=baz#quz'); @@ -222,9 +194,7 @@ final class UriTest extends UnitTestCase $uri->withPath('/bar/baz#bat'); } - /** - * @test - */ + #[Test] public function withQueryReturnsNewInstanceWithProvidedQuery(): void { $uri = new Uri('https://user:pass@local.example.com:3001/foo?bar=baz#quz'); @@ -234,9 +204,7 @@ final class UriTest extends UnitTestCase self::assertEquals('https://user:pass@local.example.com:3001/foo?baz=bat#quz', (string)$new); } - /** - * @test - */ + #[Test] public function withQueryRaisesExceptionForInvalidQueryStringsByFragment(): void { $uri = new Uri('https://user:pass@local.example.com:3001/foo?bar=baz#quz'); @@ -245,9 +213,7 @@ final class UriTest extends UnitTestCase $uri->withQuery('baz=bat#quz'); } - /** - * @test - */ + #[Test] public function withFragmentReturnsNewInstanceWithProvidedFragment(): void { $uri = new Uri('https://user:pass@local.example.com:3001/foo?bar=baz#quz'); @@ -267,19 +233,15 @@ final class UriTest extends UnitTestCase ]; } - /** - * @dataProvider authorityInfoDataProvider - * @test - */ + #[DataProvider('authorityInfoDataProvider')] + #[Test] public function getAuthorityReturnsExpectedValues($url, $expected): void { $uri = new Uri($url); self::assertEquals($expected, $uri->getAuthority()); } - /** - * @test - */ + #[Test] public function canEmitOriginFormUrl(): void { $url = '/foo/bar?baz=bat'; @@ -287,9 +249,7 @@ final class UriTest extends UnitTestCase self::assertEquals($url, (string)$uri); } - /** - * @test - */ + #[Test] public function settingEmptyPathOnAbsoluteUriReturnsAnEmptyPath(): void { $uri = new Uri('http://example.com/foo'); @@ -297,27 +257,21 @@ final class UriTest extends UnitTestCase self::assertEquals('', $new->getPath()); } - /** - * @test - */ + #[Test] public function stringRepresentationOfAbsoluteUriWithNoPathSetsAnEmptyPath(): void { $uri = new Uri('http://example.com'); self::assertEquals('http://example.com', (string)$uri); } - /** - * @test - */ + #[Test] public function getPathOnOriginFormRemainsAnEmptyPath(): void { $uri = new Uri('?foo=bar'); self::assertEquals('', $uri->getPath()); } - /** - * @test - */ + #[Test] public function stringRepresentationOfOriginFormWithNoPathRetainsEmptyPath(): void { $uri = new Uri('?foo=bar'); @@ -337,27 +291,21 @@ final class UriTest extends UnitTestCase ]; } - /** - * @dataProvider invalidConstructorUrisDataProvider - */ + #[DataProvider('invalidConstructorUrisDataProvider')] public function constructorRaisesExceptionForNonStringURI($uri): void { $this->expectException(\InvalidArgumentException::class); new Uri($uri); } - /** - * @test - */ + #[Test] public function constructorRaisesExceptionForSeriouslyMalformedURI(): void { $this->expectException(\InvalidArgumentException::class); new Uri('http:///www.php-fig.org/'); } - /** - * @test - */ + #[Test] public function withSchemeStripsOffDelimiter(): void { $uri = new Uri('http://example.com'); @@ -376,10 +324,8 @@ final class UriTest extends UnitTestCase ]; } - /** - * @dataProvider invalidSchemesDataProvider - * @test - */ + #[DataProvider('invalidSchemesDataProvider')] + #[Test] public function constructWithUnsupportedSchemeRaisesAnException($scheme): void { $this->expectException(\InvalidArgumentException::class); @@ -387,10 +333,8 @@ final class UriTest extends UnitTestCase new Uri($scheme . '://example.com'); } - /** - * @dataProvider invalidSchemesDataProvider - * @test - */ + #[DataProvider('invalidSchemesDataProvider')] + #[Test] public function withSchemeUsingUnsupportedSchemeRaisesAnException($scheme): void { $uri = new Uri('http://example.com'); @@ -399,9 +343,7 @@ final class UriTest extends UnitTestCase $uri->withScheme($scheme); } - /** - * @test - */ + #[Test] public function withPathIsNotPrefixedWithSlashIfSetWithoutOne(): void { $uri = new Uri('http://example.com'); @@ -409,9 +351,7 @@ final class UriTest extends UnitTestCase self::assertEquals('foo/bar', $new->getPath()); } - /** - * @test - */ + #[Test] public function withEmptySchemeReturnsNewInstanceWithAbsoluteUri(): void { $uri = new Uri('https://user:pass@local.example.com:3001/foo?bar=baz#quz'); @@ -422,9 +362,7 @@ final class UriTest extends UnitTestCase self::assertEquals('//user:pass@local.example.com:3001/foo?bar=baz#quz', (string)$new); } - /** - * @test - */ + #[Test] public function withPathNotSlashPrefixedIsEmittedWithSlashDelimiterWhenUriIsCastToString(): void { $uri = new Uri('http://example.com'); @@ -432,9 +370,7 @@ final class UriTest extends UnitTestCase self::assertEquals('http://example.com/foo/bar', $new->__toString()); } - /** - * @test - */ + #[Test] public function withQueryStripsQueryPrefixIfPresent(): void { $uri = new Uri('http://example.com'); @@ -442,9 +378,7 @@ final class UriTest extends UnitTestCase self::assertEquals('foo=bar', $new->getQuery()); } - /** - * @test - */ + #[Test] public function withFragmentStripsFragmentPrefixIfPresent(): void { $uri = new Uri('http://example.com'); @@ -460,10 +394,8 @@ final class UriTest extends UnitTestCase ]; } - /** - * @dataProvider standardSchemePortCombinationsDataProvider - * @test - */ + #[DataProvider('standardSchemePortCombinationsDataProvider')] + #[Test] public function getAuthorityOmitsPortForStandardSchemePortCombinations($scheme, $port): void { $uri = (new Uri()) @@ -473,9 +405,7 @@ final class UriTest extends UnitTestCase self::assertEquals('example.com', $uri->getAuthority()); } - /** - * @test - */ + #[Test] public function getPathIsProperlyEncoded(): void { $uri = (new Uri())->withPath('/foo^bar'); @@ -483,9 +413,7 @@ final class UriTest extends UnitTestCase self::assertEquals($expected, $uri->getPath()); } - /** - * @test - */ + #[Test] public function getPathDoesNotBecomeDoubleEncoded(): void { $uri = (new Uri())->withPath('/foo%5Ebar'); @@ -504,29 +432,23 @@ final class UriTest extends UnitTestCase ]; } - /** - * @dataProvider queryStringsForEncodingDataProvider - * @test - */ + #[DataProvider('queryStringsForEncodingDataProvider')] + #[Test] public function getQueryIsProperlyEncoded($query, $expected): void { $uri = (new Uri())->withQuery($query); self::assertEquals($expected, $uri->getQuery()); } - /** - * @dataProvider queryStringsForEncodingDataProvider - * @test - */ + #[DataProvider('queryStringsForEncodingDataProvider')] + #[Test] public function getQueryIsNotDoubleEncoded($query, $expected): void { $uri = (new Uri())->withQuery($expected); self::assertEquals($expected, $uri->getQuery()); } - /** - * @test - */ + #[Test] public function getFragmentIsProperlyEncoded(): void { $uri = (new Uri())->withFragment('/p^th?key^=`bar#b@z'); @@ -534,9 +456,7 @@ final class UriTest extends UnitTestCase self::assertEquals($expected, $uri->getFragment()); } - /** - * @test - */ + #[Test] public function getFragmentIsNotDoubleEncoded(): void { $expected = '/p%5Eth?key%5E=%60bar%23b@z'; diff --git a/typo3/sysext/core/Tests/Unit/Imaging/DimensionTest.php b/typo3/sysext/core/Tests/Unit/Imaging/DimensionTest.php index b1be384dfa9b33d49ff97f8ebc5eaaae118c27af..958ab138006c2fcc8ea39fcb1476b73107ff37fe 100644 --- a/typo3/sysext/core/Tests/Unit/Imaging/DimensionTest.php +++ b/typo3/sysext/core/Tests/Unit/Imaging/DimensionTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Imaging; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Imaging\Dimension; use TYPO3\CMS\Core\Imaging\Icon; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -36,9 +37,7 @@ final class DimensionTest extends UnitTestCase $this->subject = new Dimension(Icon::SIZE_MEDIUM); } - /** - * @test - */ + #[Test] public function getWidthReturnsValidInteger(): void { $value = $this->subject->getWidth(); @@ -46,9 +45,7 @@ final class DimensionTest extends UnitTestCase self::assertIsInt($value); } - /** - * @test - */ + #[Test] public function getHeightReturnsValidInteger(): void { $value = $this->subject->getHeight(); diff --git a/typo3/sysext/core/Tests/Unit/Imaging/GraphicalFunctionsTest.php b/typo3/sysext/core/Tests/Unit/Imaging/GraphicalFunctionsTest.php index e307ef5007d77806e475c52ca5fb4d9768115e91..4f9a11587f828eb863559a43016448897838b986 100644 --- a/typo3/sysext/core/Tests/Unit/Imaging/GraphicalFunctionsTest.php +++ b/typo3/sysext/core/Tests/Unit/Imaging/GraphicalFunctionsTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Imaging; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Imaging\GraphicalFunctions; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -285,10 +287,8 @@ final class GraphicalFunctionsTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider getScaleForImageDataProvider - */ + #[DataProvider('getScaleForImageDataProvider')] + #[Test] public function getScaleForImage(array $info, string $width, string $height, array $options, bool $mayScaleUp, array $expected): void { $GLOBALS['TYPO3_CONF_VARS']['GFX']['processor_allowUpscaling'] = $mayScaleUp; @@ -297,9 +297,7 @@ final class GraphicalFunctionsTest extends UnitTestCase self::assertSame($result, $expected); } - /** - * @test - */ + #[Test] public function imageMagickIdentifyReturnsFormattedValues(): void { $file = 'myImageFile.png'; @@ -318,9 +316,7 @@ final class GraphicalFunctionsTest extends UnitTestCase self::assertEquals($result, $expected); } - /** - * @test - */ + #[Test] public function imageMagickIdentifyReturnsFormattedValuesWithOffset(): void { $file = 'myImageFile.png'; diff --git a/typo3/sysext/core/Tests/Unit/Imaging/IconProvider/BitmapIconProviderTest.php b/typo3/sysext/core/Tests/Unit/Imaging/IconProvider/BitmapIconProviderTest.php index 948397631ac1288a5ee835016846adb89b3adc80..1d37f17c1212b373b021f77bf9f2ded0f3b6aca9 100644 --- a/typo3/sysext/core/Tests/Unit/Imaging/IconProvider/BitmapIconProviderTest.php +++ b/typo3/sysext/core/Tests/Unit/Imaging/IconProvider/BitmapIconProviderTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Imaging\IconProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Core\Environment; use TYPO3\CMS\Core\Imaging\Icon; use TYPO3\CMS\Core\Imaging\IconProvider\BitmapIconProvider; @@ -44,27 +45,21 @@ final class BitmapIconProviderTest extends UnitTestCase $this->icon->setSize(Icon::SIZE_SMALL); } - /** - * @test - */ + #[Test] public function prepareIconMarkupWithRelativeSourceReturnsInstanceOfIconWithCorrectMarkup(): void { $this->subject->prepareIconMarkup($this->icon, ['source' => 'fileadmin/foo.png']); self::assertEquals('<img src="fileadmin/foo.png" width="16" height="16" alt="" />', $this->icon->getMarkup()); } - /** - * @test - */ + #[Test] public function prepareIconMarkupWithAbsoluteSourceReturnsInstanceOfIconWithCorrectMarkup(): void { $this->subject->prepareIconMarkup($this->icon, ['source' => Environment::getPublicPath() . '/fileadmin/foo.png']); self::assertEquals('<img src="fileadmin/foo.png" width="16" height="16" alt="" />', $this->icon->getMarkup()); } - /** - * @test - */ + #[Test] public function prepareIconMarkupEXTSourceReferenceReturnsInstanceOfIconWithCorrectMarkup(): void { $this->subject->prepareIconMarkup($this->icon, ['source' => 'EXT:core/Resources/Public/Images/foo.png']); diff --git a/typo3/sysext/core/Tests/Unit/Imaging/IconProvider/SvgIconProviderTest.php b/typo3/sysext/core/Tests/Unit/Imaging/IconProvider/SvgIconProviderTest.php index 7128474511f401f8370ad48edd12e4a9cafabfe5..c285e5a362c3fe154f2116ec125d7102f7afcf08 100644 --- a/typo3/sysext/core/Tests/Unit/Imaging/IconProvider/SvgIconProviderTest.php +++ b/typo3/sysext/core/Tests/Unit/Imaging/IconProvider/SvgIconProviderTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Imaging\IconProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Core\Environment; use TYPO3\CMS\Core\Imaging\Icon; use TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider; @@ -44,36 +45,28 @@ final class SvgIconProviderTest extends UnitTestCase $this->icon->setSize(Icon::SIZE_SMALL); } - /** - * @test - */ + #[Test] public function prepareIconMarkupWithRelativeSourceReturnsInstanceOfIconWithCorrectMarkup(): void { $this->subject->prepareIconMarkup($this->icon, ['source' => 'fileadmin/foo.svg']); self::assertEquals('<img src="fileadmin/foo.svg" width="16" height="16" alt="" />', $this->icon->getMarkup()); } - /** - * @test - */ + #[Test] public function prepareIconMarkupWithAbsoluteSourceReturnsInstanceOfIconWithCorrectMarkup(): void { $this->subject->prepareIconMarkup($this->icon, ['source' => Environment::getPublicPath() . '/fileadmin/foo.svg']); self::assertEquals('<img src="fileadmin/foo.svg" width="16" height="16" alt="" />', $this->icon->getMarkup()); } - /** - * @test - */ + #[Test] public function getIconWithEXTSourceReferenceReturnsInstanceOfIconWithCorrectMarkup(): void { $this->subject->prepareIconMarkup($this->icon, ['source' => 'EXT:core/Resources/Public/Images/foo.svg']); self::assertEquals('<img src="typo3/sysext/core/Resources/Public/Images/foo.svg" width="16" height="16" alt="" />', $this->icon->getMarkup()); } - /** - * @test - */ + #[Test] public function getIconWithInlineOptionReturnsCleanSvgMarkup(): void { $testFile = GeneralUtility::tempnam('svg_', '.svg'); diff --git a/typo3/sysext/core/Tests/Unit/Imaging/IconProvider/SvgSpriteIconProviderTest.php b/typo3/sysext/core/Tests/Unit/Imaging/IconProvider/SvgSpriteIconProviderTest.php index 227e6ac5311ac677592de528bf571f2f9eb2f426..b7b49798a8bc4ddb905499b2f241fe902dc3c049 100644 --- a/typo3/sysext/core/Tests/Unit/Imaging/IconProvider/SvgSpriteIconProviderTest.php +++ b/typo3/sysext/core/Tests/Unit/Imaging/IconProvider/SvgSpriteIconProviderTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Imaging\IconProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Core\Environment; use TYPO3\CMS\Core\Imaging\Icon; use TYPO3\CMS\Core\Imaging\IconProvider\SvgSpriteIconProvider; @@ -44,9 +45,7 @@ final class SvgSpriteIconProviderTest extends UnitTestCase $this->icon->setSize(Icon::SIZE_SMALL); } - /** - * @test - */ + #[Test] public function prepareIconMarkupWithRelativeSourceReturnsInstanceOfIconWithCorrectMarkup(): void { $this->subject->prepareIconMarkup($this->icon, [ @@ -56,9 +55,7 @@ final class SvgSpriteIconProviderTest extends UnitTestCase self::assertEquals('<svg class="icon-color"><use xlink:href="fileadmin/sprites/actions.svg#actions-plus" /></svg>', $this->icon->getMarkup()); } - /** - * @test - */ + #[Test] public function prepareIconMarkupWithAbsoluteSourceReturnsInstanceOfIconWithCorrectMarkup(): void { $this->subject->prepareIconMarkup($this->icon, [ @@ -68,9 +65,7 @@ final class SvgSpriteIconProviderTest extends UnitTestCase self::assertEquals('<svg class="icon-color"><use xlink:href="fileadmin/sprites/actions.svg#actions-plus" /></svg>', $this->icon->getMarkup()); } - /** - * @test - */ + #[Test] public function getIconWithEXTSourceReferenceReturnsInstanceOfIconWithCorrectMarkup(): void { $this->subject->prepareIconMarkup($this->icon, [ @@ -80,9 +75,7 @@ final class SvgSpriteIconProviderTest extends UnitTestCase self::assertEquals('<svg class="icon-color"><use xlink:href="typo3/sysext/core/Resources/Public/Images/sprites/actions.svg#actions-plus" /></svg>', $this->icon->getMarkup()); } - /** - * @test - */ + #[Test] public function getIconWithInlineOptionReturnsCleanSvgMarkup(): void { $testFile = GeneralUtility::tempnam('svg_', '.svg'); diff --git a/typo3/sysext/core/Tests/Unit/Imaging/IconRegistryTest.php b/typo3/sysext/core/Tests/Unit/Imaging/IconRegistryTest.php index ea88bf6528c36189aeb4919f91cd5ca898c29a31..0fb14e29e7f6c456adfa39f18d5a8fb867cdf3e3 100644 --- a/typo3/sysext/core/Tests/Unit/Imaging/IconRegistryTest.php +++ b/typo3/sysext/core/Tests/Unit/Imaging/IconRegistryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Imaging; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Cache\Frontend\NullFrontend; use TYPO3\CMS\Core\Exception; use TYPO3\CMS\Core\Imaging\IconProvider\BitmapIconProvider; @@ -27,18 +28,14 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class IconRegistryTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getDefaultIconIdentifierReturnsTheCorrectDefaultIconIdentifierString(): void { $result = (new IconRegistry(new NullFrontend('test'), 'BackendIcons'))->getDefaultIconIdentifier(); self::assertEquals('default-not-found', $result); } - /** - * @test - */ + #[Test] public function isRegisteredReturnsTrueForRegisteredIcon(): void { $subject = new IconRegistry(new NullFrontend('test'), 'BackendIcons'); @@ -46,18 +43,14 @@ final class IconRegistryTest extends UnitTestCase self::assertTrue($result); } - /** - * @test - */ + #[Test] public function isRegisteredReturnsFalseForNotRegisteredIcon(): void { $result = (new IconRegistry(new NullFrontend('test'), 'BackendIcons'))->isRegistered('my-super-unregistered-identifier'); self::assertFalse($result); } - /** - * @test - */ + #[Test] public function registerIconAddNewIconToRegistry(): void { $unregisteredIcon = 'foo-bar-unregistered'; @@ -70,9 +63,7 @@ final class IconRegistryTest extends UnitTestCase self::assertTrue($subject->isRegistered($unregisteredIcon)); } - /** - * @test - */ + #[Test] public function registerIconThrowsInvalidArgumentExceptionWithInvalidIconProvider(): void { $this->expectException(\InvalidArgumentException::class); @@ -81,9 +72,7 @@ final class IconRegistryTest extends UnitTestCase (new IconRegistry(new NullFrontend('test'), 'BackendIcons'))->registerIcon('my-super-unregistered-identifier', GeneralUtility::class); } - /** - * @test - */ + #[Test] public function getIconConfigurationByIdentifierThrowsExceptionWithUnregisteredIconIdentifier(): void { $this->expectException(Exception::class); @@ -92,9 +81,7 @@ final class IconRegistryTest extends UnitTestCase (new IconRegistry(new NullFrontend('test'), 'BackendIcons'))->getIconConfigurationByIdentifier('my-super-unregistered-identifier'); } - /** - * @test - */ + #[Test] public function getIconConfigurationByIdentifierReturnsCorrectConfiguration(): void { $result = (new IconRegistry(new NullFrontend('test'), 'BackendIcons'))->getIconConfigurationByIdentifier('default-not-found'); @@ -105,17 +92,13 @@ final class IconRegistryTest extends UnitTestCase self::assertContains(IconProviderInterface::class, class_implements($result['provider'])); } - /** - * @test - */ + #[Test] public function getAllRegisteredIconIdentifiersReturnsAnArrayWithIconIdentifiers(): void { self::assertIsArray((new IconRegistry(new NullFrontend('test'), 'BackendIcons'))->getAllRegisteredIconIdentifiers()); } - /** - * @test - */ + #[Test] public function getAllRegisteredIconIdentifiersReturnsArrayWithAllRegisteredIconIdentifiers(): void { $result = (new IconRegistry(new NullFrontend('test'), 'BackendIcons'))->getAllRegisteredIconIdentifiers(); @@ -123,36 +106,28 @@ final class IconRegistryTest extends UnitTestCase self::assertContains('default-not-found', $result); } - /** - * @test - */ + #[Test] public function getIconIdentifierForFileExtensionReturnsDefaultIconIdentifierForEmptyFileExtension(): void { $result = (new IconRegistry(new NullFrontend('test'), 'BackendIcons'))->getIconIdentifierForFileExtension(''); self::assertEquals('mimetypes-other-other', $result); } - /** - * @test - */ + #[Test] public function getIconIdentifierForFileExtensionReturnsDefaultIconIdentifierForUnknownFileExtension(): void { $result = (new IconRegistry(new NullFrontend('test'), 'BackendIcons'))->getIconIdentifierForFileExtension('xyz'); self::assertEquals('mimetypes-other-other', $result); } - /** - * @test - */ + #[Test] public function getIconIdentifierForFileExtensionReturnsImageIconIdentifierForImageFileExtension(): void { $result = (new IconRegistry(new NullFrontend('test'), 'BackendIcons'))->getIconIdentifierForFileExtension('jpg'); self::assertEquals('mimetypes-media-image', $result); } - /** - * @test - */ + #[Test] public function registerFileExtensionRegisterAnIcon(): void { $subject = new IconRegistry(new NullFrontend('test'), 'BackendIcons'); @@ -161,9 +136,7 @@ final class IconRegistryTest extends UnitTestCase self::assertEquals('xyz', $result); } - /** - * @test - */ + #[Test] public function registerFileExtensionOverwriteAnExistingIcon(): void { $subject = new IconRegistry(new NullFrontend('test'), 'BackendIcons'); @@ -172,9 +145,7 @@ final class IconRegistryTest extends UnitTestCase self::assertEquals('xyz', $result); } - /** - * @test - */ + #[Test] public function registerMimeTypeIconRegisterAnIcon(): void { $subject = new IconRegistry(new NullFrontend('test'), 'BackendIcons'); @@ -183,9 +154,7 @@ final class IconRegistryTest extends UnitTestCase self::assertEquals('mimetype-foo-bar', $result); } - /** - * @test - */ + #[Test] public function registerMimeTypeIconOverwriteAnExistingIcon(): void { $subject = new IconRegistry(new NullFrontend('test'), 'BackendIcons'); @@ -194,9 +163,7 @@ final class IconRegistryTest extends UnitTestCase self::assertEquals('mimetype-foo-bar', $result); } - /** - * @test - */ + #[Test] public function getIconIdentifierForMimeTypeWithUnknownMimeTypeReturnNull(): void { $result = (new IconRegistry(new NullFrontend('test'), 'BackendIcons'))->getIconIdentifierForMimeType('bar/foo'); diff --git a/typo3/sysext/core/Tests/Unit/Imaging/IconTest.php b/typo3/sysext/core/Tests/Unit/Imaging/IconTest.php index a04ed13ba5e8cf963fc194e20ef16ae5b002d1b1..477c52a2f678032139dea5c8e21fe8f4cfcba3c8 100644 --- a/typo3/sysext/core/Tests/Unit/Imaging/IconTest.php +++ b/typo3/sysext/core/Tests/Unit/Imaging/IconTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Imaging; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use Psr\Container\ContainerInterface; use TYPO3\CMS\Core\Cache\Frontend\NullFrontend; use TYPO3\CMS\Core\EventDispatcher\NoopEventDispatcher; @@ -41,41 +43,31 @@ final class IconTest extends UnitTestCase $this->subject = $iconFactory->getIcon($this->iconIdentifier, Icon::SIZE_SMALL, $this->overlayIdentifier, IconState::cast(IconState::STATE_DISABLED)); } - /** - * @test - */ + #[Test] public function renderAndCastToStringReturnsTheSameCode(): void { self::assertEquals($this->subject->render(), (string)$this->subject); } - /** - * @test - */ + #[Test] public function getIdentifierReturnsCorrectIdentifier(): void { self::assertEquals($this->iconIdentifier, $this->subject->getIdentifier()); } - /** - * @test - */ + #[Test] public function getOverlayIdentifierReturnsCorrectIdentifier(): void { self::assertEquals($this->overlayIdentifier, $this->subject->getOverlayIcon()->getIdentifier()); } - /** - * @test - */ + #[Test] public function getSizeIdentifierReturnsCorrectIdentifier(): void { self::assertEquals(Icon::SIZE_SMALL, $this->subject->getSize()); } - /** - * @test - */ + #[Test] public function getStateReturnsCorrectIdentifier(): void { self::assertTrue($this->subject->getState()->equals(IconState::STATE_DISABLED)); @@ -109,10 +101,8 @@ final class IconTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider setSizeSetsExpectedValuesDataProvider - */ + #[DataProvider('setSizeSetsExpectedValuesDataProvider')] + #[Test] public function setSizeSetsExpectedValues(string $size, array $expectedDimensions): void { $icon = new Icon(); diff --git a/typo3/sysext/core/Tests/Unit/Imaging/ImageDimensionTest.php b/typo3/sysext/core/Tests/Unit/Imaging/ImageDimensionTest.php index e93d54d1a945ae6c8fcb29c0c87e5a1afb1bab93..374d1c871c560e18e6f8adf2af9b55763934e958 100644 --- a/typo3/sysext/core/Tests/Unit/Imaging/ImageDimensionTest.php +++ b/typo3/sysext/core/Tests/Unit/Imaging/ImageDimensionTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Imaging; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Imaging\ImageDimension; use TYPO3\CMS\Core\Imaging\ImageManipulation\Area; use TYPO3\CMS\Core\Resource\File; @@ -167,10 +169,8 @@ final class ImageDimensionTest extends UnitTestCase ]; } - /** - * @dataProvider givenProcessingInstructionsCalculatesCorrectDimensionDataProvider - * @test - */ + #[DataProvider('givenProcessingInstructionsCalculatesCorrectDimensionDataProvider')] + #[Test] public function givenProcessingInstructionsCalculatesCorrectDimension( array $processingConfiguration, ImageDimension $originalImageDimension, diff --git a/typo3/sysext/core/Tests/Unit/Imaging/ImageManipulation/AreaTest.php b/typo3/sysext/core/Tests/Unit/Imaging/ImageManipulation/AreaTest.php index e1861d92f3746b0c51020c8f4fd52449d2928377..15591e706680fba73415816cdcb80586cc9ac308 100644 --- a/typo3/sysext/core/Tests/Unit/Imaging/ImageManipulation/AreaTest.php +++ b/typo3/sysext/core/Tests/Unit/Imaging/ImageManipulation/AreaTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Imaging\ImageManipulation; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Imaging\ImageManipulation\Area; use TYPO3\CMS\Core\Imaging\ImageManipulation\Ratio; use TYPO3\CMS\Core\Resource\File; @@ -25,9 +27,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class AreaTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function makeRelativeToFileReducesSizes(): void { $imageArea = new Area(50.0, 50.0, 100.0, 100.0); @@ -68,10 +68,8 @@ final class AreaTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider applyRatioRestrictsAreaToRespectRatioDataProvider - */ + #[DataProvider('applyRatioRestrictsAreaToRespectRatioDataProvider')] + #[Test] public function applyRatioRestrictsAreaToRespectRatio(array $areaSize, float $ratio): void { $area = new Area(...$areaSize); @@ -80,9 +78,7 @@ final class AreaTest extends UnitTestCase self::assertSame($areaData['width'] / $areaData['height'], $ratio); } - /** - * @test - */ + #[Test] public function applyRatioDoesNothingForFreeRatio(): void { $area = new Area(0.1, 0.1, 0.2, 0.4); diff --git a/typo3/sysext/core/Tests/Unit/Imaging/ImageManipulation/CropVariantCollectionTest.php b/typo3/sysext/core/Tests/Unit/Imaging/ImageManipulation/CropVariantCollectionTest.php index 399908fba1f604666522067e1c3f6f82fc724af2..f2fc573848758d22f98b26eec284a80752f87b5c 100644 --- a/typo3/sysext/core/Tests/Unit/Imaging/ImageManipulation/CropVariantCollectionTest.php +++ b/typo3/sysext/core/Tests/Unit/Imaging/ImageManipulation/CropVariantCollectionTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Imaging\ImageManipulation; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Imaging\ImageManipulation\Area; use TYPO3\CMS\Core\Imaging\ImageManipulation\CropVariant; use TYPO3\CMS\Core\Imaging\ImageManipulation\CropVariantCollection; @@ -68,9 +69,7 @@ final class CropVariantCollectionTest extends UnitTestCase ], ]; - /** - * @test - */ + #[Test] public function createFromJsonWorks(): void { $cropVariant1 = self::$tca; @@ -92,9 +91,7 @@ final class CropVariantCollectionTest extends UnitTestCase $assertSameValues(['default' => $cropVariant1, 'Second' => $cropVariant2], $cropVariantCollection->asArray()); } - /** - * @test - */ + #[Test] public function duplicateIdThrowsException(): void { $this->expectException(InvalidConfigurationException::class); @@ -103,17 +100,13 @@ final class CropVariantCollectionTest extends UnitTestCase new CropVariantCollection([$cropVariant1, $cropVariant2]); } - /** - * @test - */ + #[Test] public function createEmptyWorks(): void { self::assertTrue(CropVariantCollection::create('')->getCropArea()->isEmpty()); } - /** - * @test - */ + #[Test] public function castToStringReturnsJsonArrayOnEmptyInput(): void { $variants = new CropVariantCollection([]); diff --git a/typo3/sysext/core/Tests/Unit/Imaging/ImageManipulation/CropVariantTest.php b/typo3/sysext/core/Tests/Unit/Imaging/ImageManipulation/CropVariantTest.php index 89486d949123fd4af7e86c5d1b1b5614fee40b8f..6656905500be03dd5e08458b7042b23312f9c839 100644 --- a/typo3/sysext/core/Tests/Unit/Imaging/ImageManipulation/CropVariantTest.php +++ b/typo3/sysext/core/Tests/Unit/Imaging/ImageManipulation/CropVariantTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Imaging\ImageManipulation; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Imaging\ImageManipulation\CropVariant; use TYPO3\CMS\Core\Imaging\ImageManipulation\InvalidConfigurationException; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -77,9 +78,7 @@ final class CropVariantTest extends UnitTestCase } } - /** - * @test - */ + #[Test] public function createFromTcaWorks(): void { $cropVariant = CropVariant::createFromConfiguration(self::$expectedConfig['id'], self::$tca); @@ -87,9 +86,7 @@ final class CropVariantTest extends UnitTestCase self::assertSame(self::$expectedConfig, $cropVariant->asArray()); } - /** - * @test - */ + #[Test] public function selectedRatioCanBeNull(): void { $tca = self::$tca; @@ -97,9 +94,7 @@ final class CropVariantTest extends UnitTestCase self::assertInstanceOf(CropVariant::class, CropVariant::createFromConfiguration(self::$expectedConfig['id'], $tca)); } - /** - * @test - */ + #[Test] public function throwsExceptionOnTypeMismatchInRatio(): void { $tca = self::$tca; diff --git a/typo3/sysext/core/Tests/Unit/LinkHandling/EmailLinkHandlerTest.php b/typo3/sysext/core/Tests/Unit/LinkHandling/EmailLinkHandlerTest.php index b6a64440a2cf825ce016b55b3fe91ebc695e1451..f4f64b2cb4398e03584712e68ec85f97ccc58a6d 100644 --- a/typo3/sysext/core/Tests/Unit/LinkHandling/EmailLinkHandlerTest.php +++ b/typo3/sysext/core/Tests/Unit/LinkHandling/EmailLinkHandlerTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\LinkHandling; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\LinkHandling\EmailLinkHandler; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -59,15 +61,13 @@ final class EmailLinkHandlerTest extends UnitTestCase } /** - * @test - * * @param string $input * @param array $expected * @param string $finalString - * - * @dataProvider resolveParametersForNonFilesDataProvider * @todo Defining the method parameter types results in test bench errors */ + #[DataProvider('resolveParametersForNonFilesDataProvider')] + #[Test] public function resolveReturnsSplitParameters($input, $expected, $finalString): void { $subject = new EmailLinkHandler(); @@ -75,15 +75,13 @@ final class EmailLinkHandlerTest extends UnitTestCase } /** - * @test - * * @param string $input * @param array $parameters * @param string $expected - * - * @dataProvider resolveParametersForNonFilesDataProvider * @todo Defining the method parameter types results in test bench errors */ + #[DataProvider('resolveParametersForNonFilesDataProvider')] + #[Test] public function splitParametersToUnifiedIdentifier($input, $parameters, $expected): void { $subject = new EmailLinkHandler(); diff --git a/typo3/sysext/core/Tests/Unit/LinkHandling/FileLinkHandlerTest.php b/typo3/sysext/core/Tests/Unit/LinkHandling/FileLinkHandlerTest.php index 284efec7cc8f4f6ccea65f55611d0bf1af8d4e06..4f05a5e712318c66be0fabeb92f82e4eb561a3ad 100644 --- a/typo3/sysext/core/Tests/Unit/LinkHandling/FileLinkHandlerTest.php +++ b/typo3/sysext/core/Tests/Unit/LinkHandling/FileLinkHandlerTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\LinkHandling; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\LinkHandling\FileLinkHandler; use TYPO3\CMS\Core\Resource\File; use TYPO3\CMS\Core\Resource\ResourceFactory; @@ -82,12 +84,9 @@ final class FileLinkHandlerTest extends UnitTestCase /** * Helpful to know in which if() clause the stuff gets in - * - * @test - * - * - * @dataProvider resolveParametersForFilesDataProvider */ + #[DataProvider('resolveParametersForFilesDataProvider')] + #[Test] public function resolveFileReferencesToSplitParameters(array $input, array $expected): void { $storage = $this->getMockBuilder(ResourceStorage::class) @@ -111,12 +110,9 @@ final class FileLinkHandlerTest extends UnitTestCase /** * Helpful to know in which if() clause the stuff gets in - * - * @test - * - * - * @dataProvider resolveParametersForFilesDataProvider */ + #[DataProvider('resolveParametersForFilesDataProvider')] + #[Test] public function splitParametersToUnifiedIdentifierForFiles(array $input, array $parameters, string $expected): void { $fileObject = $this->getMockBuilder(File::class) diff --git a/typo3/sysext/core/Tests/Unit/LinkHandling/FolderLinkHandlerTest.php b/typo3/sysext/core/Tests/Unit/LinkHandling/FolderLinkHandlerTest.php index 8270dd0c08f6dd4934a0549bc2a1c99c42478b43..71c8cc47b1a9c682ed5295d5f7abb24dce665031 100644 --- a/typo3/sysext/core/Tests/Unit/LinkHandling/FolderLinkHandlerTest.php +++ b/typo3/sysext/core/Tests/Unit/LinkHandling/FolderLinkHandlerTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\LinkHandling; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\LinkHandling\FolderLinkHandler; use TYPO3\CMS\Core\Resource\Folder; use TYPO3\CMS\Core\Resource\ResourceFactory; @@ -61,10 +63,9 @@ final class FolderLinkHandlerTest extends UnitTestCase /** * Helpful to know in which if() clause the stuff gets in - * - * @test - * @dataProvider resolveParametersForFilesDataProvider */ + #[DataProvider('resolveParametersForFilesDataProvider')] + #[Test] public function resolveFileReferencesToSplitParameters(array $input, array $expected): void { $storage = $this->getMockBuilder(ResourceStorage::class) @@ -89,10 +90,9 @@ final class FolderLinkHandlerTest extends UnitTestCase /** * Helpful to know in which if() clause the stuff gets in - * - * @test - * @dataProvider resolveParametersForFilesDataProvider */ + #[DataProvider('resolveParametersForFilesDataProvider')] + #[Test] public function splitParametersToUnifiedIdentifierForFiles(array $input, array $parameters, string $expected): void { $folderObject = $this->getMockBuilder(Folder::class) diff --git a/typo3/sysext/core/Tests/Unit/LinkHandling/LegacyLinkNotationConverterTest.php b/typo3/sysext/core/Tests/Unit/LinkHandling/LegacyLinkNotationConverterTest.php index 5eb141034a351f8c05b3ac1d8bb18d24a499798c..671c568f0563c8de6a70fe86a0ed0f8852203c07 100644 --- a/typo3/sysext/core/Tests/Unit/LinkHandling/LegacyLinkNotationConverterTest.php +++ b/typo3/sysext/core/Tests/Unit/LinkHandling/LegacyLinkNotationConverterTest.php @@ -17,6 +17,9 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\LinkHandling; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; +use TYPO3\CMS\Core\LinkHandling\Exception\UnknownLinkHandlerException; use TYPO3\CMS\Core\LinkHandling\LegacyLinkNotationConverter; use TYPO3\CMS\Core\LinkHandling\LinkService; use TYPO3\CMS\Core\Resource\File; @@ -134,12 +137,8 @@ final class LegacyLinkNotationConverterTest extends UnitTestCase ]; } - /** - * @test - * - * - * @dataProvider resolveParametersForNonFilesDataProvider - */ + #[DataProvider('resolveParametersForNonFilesDataProvider')] + #[Test] public function resolveReturnsSplitParameters(string $input, array $expected): void { $subject = new LegacyLinkNotationConverter(); @@ -151,12 +150,10 @@ final class LegacyLinkNotationConverterTest extends UnitTestCase } /** - * @test - * - * - * @throws \TYPO3\CMS\Core\LinkHandling\Exception\UnknownLinkHandlerException - * @dataProvider resolveParametersForNonFilesDataProvider + * @throws UnknownLinkHandlerException */ + #[DataProvider('resolveParametersForNonFilesDataProvider')] + #[Test] public function splitParametersToUnifiedIdentifier(string $input, array $parameters, string $expected): void { $subject = new LinkService(); @@ -248,12 +245,9 @@ final class LegacyLinkNotationConverterTest extends UnitTestCase /** * Helpful to know in which if() clause the stuff gets in - * - * @test - * - * - * @dataProvider resolveParametersForFilesDataProvider */ + #[DataProvider('resolveParametersForFilesDataProvider')] + #[Test] public function resolveFileReferencesToSplitParameters(string $input, array $expected): void { $storage = $this->getMockBuilder(ResourceStorage::class) @@ -296,12 +290,11 @@ final class LegacyLinkNotationConverterTest extends UnitTestCase /** * Helpful to know in which if() clause the stuff gets in * - * @test * - * - * @throws \TYPO3\CMS\Core\LinkHandling\Exception\UnknownLinkHandlerException - * @dataProvider resolveParametersForFilesDataProvider + * @throws UnknownLinkHandlerException */ + #[DataProvider('resolveParametersForFilesDataProvider')] + #[Test] public function splitParametersToUnifiedIdentifierForFiles(string $input, array $parameters, string $expected): void { // fake methods to return proper objects @@ -365,12 +358,8 @@ final class LegacyLinkNotationConverterTest extends UnitTestCase ]; } - /** - * @test - * - * - * @dataProvider resolveThrowExceptionWithPharReferencesDataProvider - */ + #[DataProvider('resolveThrowExceptionWithPharReferencesDataProvider')] + #[Test] public function resolveThrowExceptionWithPharReferences(string $pharUrl): void { $this->expectException(\RuntimeException::class); diff --git a/typo3/sysext/core/Tests/Unit/LinkHandling/LinkServiceTest.php b/typo3/sysext/core/Tests/Unit/LinkHandling/LinkServiceTest.php index ed223edfd6c5df4950e2a7a4c74021652930afdd..54bfcf4a2352e3968d5ce2a5ece9b6476c1e2ce2 100644 --- a/typo3/sysext/core/Tests/Unit/LinkHandling/LinkServiceTest.php +++ b/typo3/sysext/core/Tests/Unit/LinkHandling/LinkServiceTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\LinkHandling; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\LinkHandling\LinkService; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -176,20 +178,16 @@ final class LinkServiceTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider resolveParametersForNonFilesDataProvider - */ + #[DataProvider('resolveParametersForNonFilesDataProvider')] + #[Test] public function resolveReturnsSplitParameters(string $input, array $expected, string $finalString): void { $subject = new LinkService(); self::assertEquals($expected, $subject->resolve($input)); } - /** - * @test - * @dataProvider resolveParametersForNonFilesDataProvider - */ + #[DataProvider('resolveParametersForNonFilesDataProvider')] + #[Test] public function splitParametersToUnifiedIdentifier(string $input, array $parameters, string $expected): void { $subject = new LinkService(); diff --git a/typo3/sysext/core/Tests/Unit/LinkHandling/PageLinkHandlerTest.php b/typo3/sysext/core/Tests/Unit/LinkHandling/PageLinkHandlerTest.php index 01b7cb32191580c4b030c45026f83c005ea8596d..71fe031de2e977e4d19766363fd6688c7984ad25 100644 --- a/typo3/sysext/core/Tests/Unit/LinkHandling/PageLinkHandlerTest.php +++ b/typo3/sysext/core/Tests/Unit/LinkHandling/PageLinkHandlerTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\LinkHandling; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\LinkHandling\PageLinkHandler; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -58,10 +60,8 @@ final class PageLinkHandlerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider resolveParametersForNonFilesDataProvider - */ + #[DataProvider('resolveParametersForNonFilesDataProvider')] + #[Test] public function resolveReturnsSplitParameters(array $input, array $expected, string $finalString): void { $subject = new PageLinkHandler(); @@ -72,10 +72,8 @@ final class PageLinkHandlerTest extends UnitTestCase self::assertSame($expected, $subject->resolveHandlerData($input)); } - /** - * @test - * @dataProvider resolveParametersForNonFilesDataProvider - */ + #[DataProvider('resolveParametersForNonFilesDataProvider')] + #[Test] public function splitParametersToUnifiedIdentifier(array $input, array $parameters, string $expected): void { $subject = new PageLinkHandler(); diff --git a/typo3/sysext/core/Tests/Unit/LinkHandling/RecordLinkHandlerTest.php b/typo3/sysext/core/Tests/Unit/LinkHandling/RecordLinkHandlerTest.php index d3182820dbe60cc2331569b29ccc0098e4869b1c..058e944755c1527f883312af6fdca238524a73fe 100644 --- a/typo3/sysext/core/Tests/Unit/LinkHandling/RecordLinkHandlerTest.php +++ b/typo3/sysext/core/Tests/Unit/LinkHandling/RecordLinkHandlerTest.php @@ -17,14 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\LinkHandling; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\LinkHandling\RecordLinkHandler; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class RecordLinkHandlerTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function asStringReturnsUrl(): void { $subject = new RecordLinkHandler(); @@ -57,10 +57,8 @@ final class RecordLinkHandlerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider missingParameterDataProvider - */ + #[DataProvider('missingParameterDataProvider')] + #[Test] public function resolveHandlerDataThrowsExceptionIfParameterIsMissing(array $parameters): void { $this->expectException(\InvalidArgumentException::class); @@ -70,10 +68,8 @@ final class RecordLinkHandlerTest extends UnitTestCase $subject->resolveHandlerData($parameters); } - /** - * @test - * @dataProvider missingParameterDataProvider - */ + #[DataProvider('missingParameterDataProvider')] + #[Test] public function asStringThrowsExceptionIfParameterIsMissing(array $parameters): void { $this->expectException(\InvalidArgumentException::class); diff --git a/typo3/sysext/core/Tests/Unit/LinkHandling/TelephoneLinkHandlerTest.php b/typo3/sysext/core/Tests/Unit/LinkHandling/TelephoneLinkHandlerTest.php index 7edf5833896030c10e55adf6048c23c843415ab4..6d2ad3f6a307279913a234511f1fc9322c27bc56 100644 --- a/typo3/sysext/core/Tests/Unit/LinkHandling/TelephoneLinkHandlerTest.php +++ b/typo3/sysext/core/Tests/Unit/LinkHandling/TelephoneLinkHandlerTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\LinkHandling; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\LinkHandling\TelephoneLinkHandler; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -79,20 +81,16 @@ final class TelephoneLinkHandlerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider resolveParametersForNonFilesDataProvider - */ + #[DataProvider('resolveParametersForNonFilesDataProvider')] + #[Test] public function resolveReturnsSplitParameters(array $input, array $expected): void { $subject = new TelephoneLinkHandler(); self::assertEquals($expected, $subject->resolveHandlerData($input)); } - /** - * @test - * @dataProvider resolveParametersForNonFilesDataProvider - */ + #[DataProvider('resolveParametersForNonFilesDataProvider')] + #[Test] public function splitParametersToUnifiedIdentifier(array $input, array $parameters, string $expected): void { $subject = new TelephoneLinkHandler(); diff --git a/typo3/sysext/core/Tests/Unit/LinkHandling/TypoLinkCodecServiceTest.php b/typo3/sysext/core/Tests/Unit/LinkHandling/TypoLinkCodecServiceTest.php index 7c590f26ca436a88437cd59ab502f541a2bced33..da64d857e6b8f910e275c7a4cceaf37f7fe1fe55 100644 --- a/typo3/sysext/core/Tests/Unit/LinkHandling/TypoLinkCodecServiceTest.php +++ b/typo3/sysext/core/Tests/Unit/LinkHandling/TypoLinkCodecServiceTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\LinkHandling; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\LinkHandling\TypoLinkCodecService; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -30,10 +32,8 @@ final class TypoLinkCodecServiceTest extends UnitTestCase $this->subject = new TypoLinkCodecService(); } - /** - * @test - * @dataProvider encodeReturnsExpectedResultDataProvider - */ + #[DataProvider('encodeReturnsExpectedResultDataProvider')] + #[Test] public function encodeReturnsExpectedResult(array $parts, string $expected): void { self::assertSame($expected, $this->subject->encode($parts)); @@ -72,10 +72,8 @@ final class TypoLinkCodecServiceTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider decodeReturnsExpectedResultDataProvider - */ + #[DataProvider('decodeReturnsExpectedResultDataProvider')] + #[Test] public function decodeReturnsExpectedResult(string $typoLink, array $expected): void { self::assertSame($expected, $this->subject->decode($typoLink)); diff --git a/typo3/sysext/core/Tests/Unit/LinkHandling/UrlLinkHandlerTest.php b/typo3/sysext/core/Tests/Unit/LinkHandling/UrlLinkHandlerTest.php index 97d6554206183b20a357800bfac1eb9753099bbd..41dabcb7d498286b71951be0eb4ce1895fbcbb7e 100644 --- a/typo3/sysext/core/Tests/Unit/LinkHandling/UrlLinkHandlerTest.php +++ b/typo3/sysext/core/Tests/Unit/LinkHandling/UrlLinkHandlerTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\LinkHandling; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\LinkHandling\LinkHandlingInterface; use TYPO3\CMS\Core\LinkHandling\UrlLinkHandler; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -135,31 +137,23 @@ final class UrlLinkHandlerTest extends UnitTestCase ]; } - /** - * @test - * - * @dataProvider resolveParametersForNonFilesDataProvider - */ + #[DataProvider('resolveParametersForNonFilesDataProvider')] + #[Test] public function resolveReturnsSplitParameters(array $input, array $expected, string $finalString): void { $subject = new UrlLinkHandler(); self::assertEquals($expected, $subject->resolveHandlerData($input)); } - /** - * @test - * - * @dataProvider resolveParametersForNonFilesDataProvider - */ + #[DataProvider('resolveParametersForNonFilesDataProvider')] + #[Test] public function splitParametersToUnifiedIdentifier(array $input, array $parameters, string $expected): void { $subject = new UrlLinkHandler(); self::assertEquals($expected, $subject->asString($parameters)); } - /** - * @test - */ + #[Test] public function getDefaultSchemeForNoSchemeInConfigurationReturnsFallbackScheme(): void { unset($GLOBALS['TYPO3_CONF_VARS']['SYS']['defaultScheme']); @@ -169,9 +163,7 @@ final class UrlLinkHandlerTest extends UnitTestCase self::assertSame(LinkHandlingInterface::DEFAULT_SCHEME, $result); } - /** - * @test - */ + #[Test] public function getDefaultSchemeForEmptySchemeInConfigurationReturnsFallbackScheme(): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['defaultScheme'] = ''; @@ -181,9 +173,7 @@ final class UrlLinkHandlerTest extends UnitTestCase self::assertSame(LinkHandlingInterface::DEFAULT_SCHEME, $result); } - /** - * @test - */ + #[Test] public function getDefaultSchemeForSchemeInConfigurationReturnsSchemeFromConfiguration(): void { $scheme = 'https'; diff --git a/typo3/sysext/core/Tests/Unit/Localization/DateFormatterTest.php b/typo3/sysext/core/Tests/Unit/Localization/DateFormatterTest.php index 001bfe89ac082ff94466de898f937348289068bc..179ef113be1fad14a8f0fe5f340e69dc5bd3ed7e 100644 --- a/typo3/sysext/core/Tests/Unit/Localization/DateFormatterTest.php +++ b/typo3/sysext/core/Tests/Unit/Localization/DateFormatterTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Localization; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Localization\DateFormatter; use TYPO3\CMS\Core\Localization\Locale; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -154,10 +156,8 @@ final class DateFormatterTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider formatDateProvider - */ + #[DataProvider('formatDateProvider')] + #[Test] public function formatFormatsCorrectly(string $expected, mixed $format, string|Locale|null $locale = 'C'): void { $input = new \DateTimeImmutable('2023-02-02 13:05:00'); diff --git a/typo3/sysext/core/Tests/Unit/Localization/LocaleTest.php b/typo3/sysext/core/Tests/Unit/Localization/LocaleTest.php index 5d13a3b773e752a5e1c24bb102217a92ce80ac4c..7612b60b759c529c532e2c20602d97b2a29c1be7 100644 --- a/typo3/sysext/core/Tests/Unit/Localization/LocaleTest.php +++ b/typo3/sysext/core/Tests/Unit/Localization/LocaleTest.php @@ -17,14 +17,13 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Localization; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Localization\Locale; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class LocaleTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function localeWithJustLanguageCodeSanitizesIncomingValuesProperly(): void { $subject = new Locale('en'); @@ -63,9 +62,7 @@ final class LocaleTest extends UnitTestCase self::assertEquals('en', (string)$subject); } - /** - * @test - */ + #[Test] public function localeWithLanguageAndScriptCodeSanitizesIncomingValuesProperly(): void { $subject = new Locale('zh_HANS'); @@ -75,9 +72,7 @@ final class LocaleTest extends UnitTestCase self::assertEquals('zh-Hans', (string)$subject); } - /** - * @test - */ + #[Test] public function localeWithLanguageAndScriptCodeAndCountryCodeSanitizesIncomingValuesProperly(): void { $subject = new Locale('zh_HANS_CN'); @@ -87,9 +82,7 @@ final class LocaleTest extends UnitTestCase self::assertEquals('zh-Hans-CN', (string)$subject); } - /** - * @test - */ + #[Test] public function variousCombinationsOfLanguageAndCountryCodeReturnsSanitizedValues(): void { $subject = new Locale('fr_CA'); @@ -104,9 +97,7 @@ final class LocaleTest extends UnitTestCase self::assertEquals('de-AT', (string)$subject); } - /** - * @test - */ + #[Test] public function dependenciesAreSetAndRetrievedCorrectly(): void { $subject = new Locale('fr_CA', ['fr', 'en']); diff --git a/typo3/sysext/core/Tests/Unit/Localization/LocalesTest.php b/typo3/sysext/core/Tests/Unit/Localization/LocalesTest.php index 69fd2cb2686dcbe59dbcb7dfa651a224a183bda5..39b37dddf2533e012202cb909ff2269b45174e2a 100644 --- a/typo3/sysext/core/Tests/Unit/Localization/LocalesTest.php +++ b/typo3/sysext/core/Tests/Unit/Localization/LocalesTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Localization; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Localization\Locales; use TYPO3\CMS\Core\Site\Entity\Site; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -42,9 +44,7 @@ final class LocalesTest extends UnitTestCase parent::tearDown(); } - /** - * @test - */ + #[Test] public function isValidLanguageKeyAlsoDetectsRegionSpecificKeys(): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['localization']['locales']['user'] = [ @@ -66,9 +66,7 @@ final class LocalesTest extends UnitTestCase self::assertTrue($locales->isValidLanguageKey('default')); } - /** - * @test - */ + #[Test] public function getLocaleDependenciesResolvesAutomaticAndDefinedDependencies(): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['localization']['locales']['user'] = [ @@ -121,10 +119,8 @@ final class LocalesTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider browserLanguageDetectionWorksDataProvider - */ + #[DataProvider('browserLanguageDetectionWorksDataProvider')] + #[Test] public function browserLanguageDetectionWorks(string $acceptLanguageHeader, string $expected): void { $detectedLanguage = (new Locales())->getPreferredClientLanguage( @@ -133,9 +129,7 @@ final class LocalesTest extends UnitTestCase self::assertSame($expected, $detectedLanguage); } - /** - * @test - */ + #[Test] public function setSystemLocaleFromSiteLanguageWithoutLocaleDoesNotSetLocale(): void { $site = $this->createSiteWithDefaultLanguage(''); @@ -146,9 +140,7 @@ final class LocalesTest extends UnitTestCase self::assertEquals($this->originalLocale, $currentLocale); } - /** - * @test - */ + #[Test] public function setSystemLocaleFromSiteLanguageWithProperLocaleSetsLocale(): void { $locale = 'en_US'; diff --git a/typo3/sysext/core/Tests/Unit/Localization/LocalizationFactoryTest.php b/typo3/sysext/core/Tests/Unit/Localization/LocalizationFactoryTest.php index 23ecfe0c3d94fd4fee4533e6171bf0074a5b8991..c892a563b2a2997194e6e0490848b74ef782bd01 100644 --- a/typo3/sysext/core/Tests/Unit/Localization/LocalizationFactoryTest.php +++ b/typo3/sysext/core/Tests/Unit/Localization/LocalizationFactoryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Localization; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Cache\CacheManager; use TYPO3\CMS\Core\Cache\Frontend\FrontendInterface; use TYPO3\CMS\Core\Localization\Exception\FileNotFoundException; @@ -27,9 +28,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class LocalizationFactoryTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getParsedDataCallsLocalizationOverrideIfFileNotFoundExceptionIsThrown(): void { $languageStoreMock = $this->createMock(LanguageStore::class); @@ -54,9 +53,7 @@ final class LocalizationFactoryTest extends UnitTestCase ->getParsedData(__DIR__ . '/Fixtures/locallang.invalid', 'default'); } - /** - * @test - */ + #[Test] public function ensureLocalizationIsProperlyCached(): void { $packageManagerMock = $this->createMock(PackageManager::class); diff --git a/typo3/sysext/core/Tests/Unit/Localization/Parser/XliffParserTest.php b/typo3/sysext/core/Tests/Unit/Localization/Parser/XliffParserTest.php index 14fc689e655d98abe4940099c6a5b5701299c22f..1385ae7395c3984f8445382fc3fa6b48c18c8c6f 100644 --- a/typo3/sysext/core/Tests/Unit/Localization/Parser/XliffParserTest.php +++ b/typo3/sysext/core/Tests/Unit/Localization/Parser/XliffParserTest.php @@ -17,15 +17,15 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Localization\Parser; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Localization\Parser\XliffParser; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class XliffParserTest extends UnitTestCase { - /** - * @test - * @dataProvider canParseXliffDataProvider - */ + #[DataProvider('canParseXliffDataProvider')] + #[Test] public function canParseXliff(string $languageKey, array $expectedLabels, bool $requireApprovedLocalizations): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['lang']['requireApprovedLocalizations'] = $requireApprovedLocalizations; diff --git a/typo3/sysext/core/Tests/Unit/Locking/FileLockStrategyTest.php b/typo3/sysext/core/Tests/Unit/Locking/FileLockStrategyTest.php index 02c7f6ef5a7af5eb16b3c4968436f9ffbec7a461..b1f5d1bb1a9b5e2dd3f4fecb67a7f663d7bcdf16 100644 --- a/typo3/sysext/core/Tests/Unit/Locking/FileLockStrategyTest.php +++ b/typo3/sysext/core/Tests/Unit/Locking/FileLockStrategyTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Locking; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Core\Environment; use TYPO3\CMS\Core\Locking\FileLockStrategy; use TYPO3\CMS\Core\Utility\GeneralUtility; @@ -27,9 +28,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; */ final class FileLockStrategyTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function constructorCreatesLockDirectoryIfNotExisting(): void { GeneralUtility::rmdir(Environment::getVarPath() . '/' . FileLockStrategy::FILE_LOCK_FOLDER, true); @@ -37,26 +36,20 @@ final class FileLockStrategyTest extends UnitTestCase self::assertDirectoryExists(Environment::getVarPath() . '/' . FileLockStrategy::FILE_LOCK_FOLDER); } - /** - * @test - */ + #[Test] public function constructorSetsFilePathToExpectedValue(): void { $lock = $this->getAccessibleMock(FileLockStrategy::class, null, ['999999999']); self::assertSame(Environment::getVarPath() . '/' . FileLockStrategy::FILE_LOCK_FOLDER . 'flock_' . md5('999999999'), $lock->_get('filePath')); } - /** - * @test - */ + #[Test] public function getPriorityReturnsDefaultPriority(): void { self::assertEquals(FileLockStrategy::DEFAULT_PRIORITY, FileLockStrategy::getPriority()); } - /** - * @test - */ + #[Test] public function setPriority(): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['locking']['strategies'][FileLockStrategy::class]['priority'] = 10; diff --git a/typo3/sysext/core/Tests/Unit/Locking/LockFactoryTest.php b/typo3/sysext/core/Tests/Unit/Locking/LockFactoryTest.php index a2bb9df22d4464085fe8fccc2629db9237406696..ae7f2126591cdeefc750c9a541750d575d488e49 100644 --- a/typo3/sysext/core/Tests/Unit/Locking/LockFactoryTest.php +++ b/typo3/sysext/core/Tests/Unit/Locking/LockFactoryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Locking; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Core\Locking\Exception\LockCreateException; use TYPO3\CMS\Core\Locking\FileLockStrategy; @@ -61,18 +62,14 @@ final class LockFactoryTest extends UnitTestCase parent::tearDown(); } - /** - * @test - */ + #[Test] public function addLockingStrategyAddsTheClassNameToTheInternalArray(): void { $this->mockFactory->addLockingStrategy(DummyLock::class); self::assertArrayHasKey(DummyLock::class, $this->mockFactory->_get('lockingStrategy')); } - /** - * @test - */ + #[Test] public function addLockingStrategyThrowsExceptionIfInterfaceIsNotImplemented(): void { $this->expectException(\InvalidArgumentException::class); @@ -81,9 +78,7 @@ final class LockFactoryTest extends UnitTestCase $this->mockFactory->addLockingStrategy(\stdClass::class); } - /** - * @test - */ + #[Test] public function getLockerReturnsExpectedClass(): void { $this->mockFactory->_set('lockingStrategy', [FileLockStrategy::class => true, DummyLock::class => true]); @@ -94,9 +89,7 @@ final class LockFactoryTest extends UnitTestCase self::assertInstanceOf(FileLockStrategy::class, $locker); } - /** - * @test - */ + #[Test] public function getLockerReturnsClassWithHighestPriority(): void { $this->mockFactory->_set('lockingStrategy', [SemaphoreLockStrategy::class => true, DummyLock::class => true]); @@ -104,9 +97,7 @@ final class LockFactoryTest extends UnitTestCase self::assertInstanceOf(DummyLock::class, $locker); } - /** - * @test - */ + #[Test] public function setPriorityGetLockerReturnsClassWithHighestPriority(): void { $lowestValue = min([ @@ -123,9 +114,7 @@ final class LockFactoryTest extends UnitTestCase unset($GLOBALS['TYPO3_CONF_VARS']['SYS']['locking']['strategies'][SemaphoreLockStrategy::class]['priority']); } - /** - * @test - */ + #[Test] public function getLockerThrowsExceptionIfNoMatchFound(): void { $this->expectException(LockCreateException::class); diff --git a/typo3/sysext/core/Tests/Unit/Locking/SemaphoreLockStrategyTest.php b/typo3/sysext/core/Tests/Unit/Locking/SemaphoreLockStrategyTest.php index f7f798da5b2a2c78402c567fc50a71c2c854323f..3d079f9ea18a96c32842f077bdcb868fa960cf3f 100644 --- a/typo3/sysext/core/Tests/Unit/Locking/SemaphoreLockStrategyTest.php +++ b/typo3/sysext/core/Tests/Unit/Locking/SemaphoreLockStrategyTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Locking; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Locking\SemaphoreLockStrategy; use TYPO3\CMS\Core\Locking\SimpleLockStrategy; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -26,9 +27,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; */ final class SemaphoreLockStrategyTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function acquireGetsSemaphore(): void { $lock = new SemaphoreLockStrategy('99999'); @@ -37,17 +36,13 @@ final class SemaphoreLockStrategyTest extends UnitTestCase $lock->destroy(); } - /** - * @test - */ + #[Test] public function getPriorityReturnsDefaultPriority(): void { self::assertEquals(SimpleLockStrategy::DEFAULT_PRIORITY, SimpleLockStrategy::getPriority()); } - /** - * @test - */ + #[Test] public function setPriority(): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['locking']['strategies'][SemaphoreLockStrategy::class]['priority'] = 10; diff --git a/typo3/sysext/core/Tests/Unit/Locking/SimpleLockStrategyTest.php b/typo3/sysext/core/Tests/Unit/Locking/SimpleLockStrategyTest.php index 72a6a5cfabece2eef01d9bf0e66f0663a8d3d45e..c63eb0fd8f4e4e5a6ef6e954bf50e2f1a330478b 100644 --- a/typo3/sysext/core/Tests/Unit/Locking/SimpleLockStrategyTest.php +++ b/typo3/sysext/core/Tests/Unit/Locking/SimpleLockStrategyTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Locking; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Core\Environment; use TYPO3\CMS\Core\Locking\SemaphoreLockStrategy; use TYPO3\CMS\Core\Locking\SimpleLockStrategy; @@ -25,9 +27,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class SimpleLockStrategyTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function constructorCreatesLockDirectoryIfNotExisting(): void { GeneralUtility::rmdir(Environment::getVarPath() . '/' . SimpleLockStrategy::FILE_LOCK_FOLDER, true); @@ -35,18 +35,14 @@ final class SimpleLockStrategyTest extends UnitTestCase self::assertDirectoryExists(Environment::getVarPath() . '/' . SimpleLockStrategy::FILE_LOCK_FOLDER); } - /** - * @test - */ + #[Test] public function constructorSetsResourceToPathWithIdIfUsingSimpleLocking(): void { $lock = $this->getAccessibleMock(SimpleLockStrategy::class, null, ['999999999']); self::assertSame(Environment::getVarPath() . '/' . SimpleLockStrategy::FILE_LOCK_FOLDER . 'simple_' . md5('999999999'), $lock->_get('filePath')); } - /** - * @test - */ + #[Test] public function acquireFixesPermissionsOnLockFile(): void { if (Environment::isWindows()) { @@ -67,9 +63,7 @@ final class SimpleLockStrategyTest extends UnitTestCase self::assertEquals('0777', $resultFilePermissions); } - /** - * @test - */ + #[Test] public function releaseRemovesLockfileInTypo3TempLocks(): void { $lock = $this->getAccessibleMock(SimpleLockStrategy::class, null, ['999999999']); @@ -91,10 +85,8 @@ final class SimpleLockStrategyTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider releaseDoesNotRemoveFilesNotWithinTypo3TempLocksDirectoryDataProvider - */ + #[DataProvider('releaseDoesNotRemoveFilesNotWithinTypo3TempLocksDirectoryDataProvider')] + #[Test] public function releaseDoesNotRemoveFilesNotWithinTypo3TempLocksDirectory(string $file): void { // Create test file @@ -112,17 +104,13 @@ final class SimpleLockStrategyTest extends UnitTestCase self::assertTrue($fileExists); } - /** - * @test - */ + #[Test] public function getPriorityReturnsDefaultPriority(): void { self::assertEquals(SemaphoreLockStrategy::DEFAULT_PRIORITY, SemaphoreLockStrategy::getPriority()); } - /** - * @test - */ + #[Test] public function setPriority(): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['locking']['strategies'][SimpleLockStrategy::class]['priority'] = 10; diff --git a/typo3/sysext/core/Tests/Unit/Log/LogLevelTest.php b/typo3/sysext/core/Tests/Unit/Log/LogLevelTest.php index 37ce53de281a6e9c63dbeabdc3f572bef1f170ee..53ac79e8683fa0f84b6bd8440ae0962b9d15f8ec 100644 --- a/typo3/sysext/core/Tests/Unit/Log/LogLevelTest.php +++ b/typo3/sysext/core/Tests/Unit/Log/LogLevelTest.php @@ -17,15 +17,15 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Log; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use Psr\Log\InvalidArgumentException; use TYPO3\CMS\Core\Log\LogLevel; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class LogLevelTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function isValidLevelValidatesValidLevels(): void { $validLevels = [0, 1, 2, 3, 4, 5, 6, 7]; @@ -34,9 +34,7 @@ final class LogLevelTest extends UnitTestCase } } - /** - * @test - */ + #[Test] public function isValidLevelDoesNotValidateInvalidLevels(): void { $invalidLevels = [-1, 8]; @@ -56,10 +54,8 @@ final class LogLevelTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider isValidLevelThrowsExceptionOnInvalidLevelIfAskedToDoSoDataProvider - */ + #[DataProvider('isValidLevelThrowsExceptionOnInvalidLevelIfAskedToDoSoDataProvider')] + #[Test] public function isValidLevelThrowsExceptionOnInvalidLevelIfAskedToDoSo($inputValue): void { $this->expectException(InvalidArgumentException::class); @@ -68,9 +64,7 @@ final class LogLevelTest extends UnitTestCase LogLevel::validateLevel($inputValue); } - /** - * @test - */ + #[Test] public function normalizeLevelConvertsValidLevelFromStringToInteger(): void { self::assertEquals(7, LogLevel::normalizeLevel('debug')); @@ -110,10 +104,8 @@ final class LogLevelTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider atLeastReturnsCorrectListOfLevelsDataProvider - */ + #[DataProvider('atLeastReturnsCorrectListOfLevelsDataProvider')] + #[Test] public function atLeastReturnsCorrectListOfLevels(string $level, array $expected): void { self::assertSame($expected, LogLevel::atLeast($level)); diff --git a/typo3/sysext/core/Tests/Unit/Log/LogManagerTest.php b/typo3/sysext/core/Tests/Unit/Log/LogManagerTest.php index 057dc15edce740931ca2b334a789733c810cb2fe..652a442e2daa445915d9cab1d1a78573da346904 100644 --- a/typo3/sysext/core/Tests/Unit/Log/LogManagerTest.php +++ b/typo3/sysext/core/Tests/Unit/Log/LogManagerTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Log; +use PHPUnit\Framework\Attributes\Test; use Psr\Log\LogLevel; use TYPO3\CMS\Core\Log\Logger; use TYPO3\CMS\Core\Log\LogManager; @@ -27,33 +28,25 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class LogManagerTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function logManagerReturnsLoggerWhenRequestedWithGetLogger(): void { self::assertInstanceOf(Logger::class, (new LogManager())->getLogger('test')); } - /** - * @test - */ + #[Test] public function logManagerTurnsUnderScoreStyleLoggerNamesIntoDotStyleLoggerNames(): void { self::assertSame('test.a.b', (new LogManager())->getLogger('test_a_b')->getName()); } - /** - * @test - */ + #[Test] public function logManagerTurnsNamespaceStyleLoggerNamesIntoDotStyleLoggerNames(): void { self::assertSame('test.a.b', (new LogManager())->getLogger('test\\a\\b')->getName()); } - /** - * @test - */ + #[Test] public function managerReturnsSameLoggerOnRepeatedRequest(): void { $loggerName = StringUtility::getUniqueId('test.core.log'); @@ -64,9 +57,7 @@ final class LogManagerTest extends UnitTestCase self::assertSame($logger1, $logger2); } - /** - * @test - */ + #[Test] public function configuresLoggerWithConfiguredWriter(): void { $component = 'test'; @@ -82,9 +73,7 @@ final class LogManagerTest extends UnitTestCase self::assertInstanceOf($writer, $writers[$level][0]); } - /** - * @test - */ + #[Test] public function configuresLoggerWithConfiguredProcessor(): void { $component = 'test'; diff --git a/typo3/sysext/core/Tests/Unit/Log/LogRecordTest.php b/typo3/sysext/core/Tests/Unit/Log/LogRecordTest.php index 852f1c6007c3c6fce3fc252435e0372ddd7cecb1..db758e8ebbbc76c85664928822704b89ad1d18bc 100644 --- a/typo3/sysext/core/Tests/Unit/Log/LogRecordTest.php +++ b/typo3/sysext/core/Tests/Unit/Log/LogRecordTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Log; +use PHPUnit\Framework\Attributes\Test; use Psr\Log\InvalidArgumentException; use Psr\Log\LogLevel; use TYPO3\CMS\Core\Log\LogRecord; @@ -40,9 +41,7 @@ final class LogRecordTest extends UnitTestCase return $record; } - /** - * @test - */ + #[Test] public function constructorSetsCorrectComponent(): void { $component = 'test.core.log'; @@ -50,9 +49,7 @@ final class LogRecordTest extends UnitTestCase self::assertEquals($component, $record->getComponent()); } - /** - * @test - */ + #[Test] public function constructorSetsCorrectLogLevel(): void { $logLevel = LogLevel::CRITICAL; @@ -60,9 +57,7 @@ final class LogRecordTest extends UnitTestCase self::assertEquals($logLevel, $record->getLevel()); } - /** - * @test - */ + #[Test] public function constructorSetsCorrectMessage(): void { $logMessage = 'test message'; @@ -70,9 +65,7 @@ final class LogRecordTest extends UnitTestCase self::assertEquals($logMessage, $record->getMessage()); } - /** - * @test - */ + #[Test] public function constructorSetsCorrectData(): void { $dataArray = [ @@ -82,9 +75,7 @@ final class LogRecordTest extends UnitTestCase self::assertEquals($dataArray, $record->getData()); } - /** - * @test - */ + #[Test] public function setComponentSetsComponent(): void { $record = $this->getRecord(); @@ -92,9 +83,7 @@ final class LogRecordTest extends UnitTestCase self::assertEquals($component, $record->setComponent($component)->getComponent()); } - /** - * @test - */ + #[Test] public function setLevelSetsLevel(): void { $record = $this->getRecord(); @@ -102,9 +91,7 @@ final class LogRecordTest extends UnitTestCase self::assertEquals($level, $record->setLevel($level)->getLevel()); } - /** - * @test - */ + #[Test] public function setLevelValidatesLevel(): void { $this->expectException(InvalidArgumentException::class); @@ -114,9 +101,7 @@ final class LogRecordTest extends UnitTestCase $record->setLevel('foo'); } - /** - * @test - */ + #[Test] public function setMessageSetsMessage(): void { $record = $this->getRecord(); @@ -124,9 +109,7 @@ final class LogRecordTest extends UnitTestCase self::assertEquals($message, $record->setMessage($message)->getMessage()); } - /** - * @test - */ + #[Test] public function setCreatedSetsCreated(): void { $record = $this->getRecord(); @@ -134,9 +117,7 @@ final class LogRecordTest extends UnitTestCase self::assertEquals($created, $record->setCreated($created)->getCreated()); } - /** - * @test - */ + #[Test] public function setRequestIdSetsRequestId(): void { $record = $this->getRecord(); @@ -144,9 +125,7 @@ final class LogRecordTest extends UnitTestCase self::assertEquals($requestId, $record->setRequestId($requestId)->getRequestId()); } - /** - * @test - */ + #[Test] public function toArrayReturnsCorrectValues(): void { $component = 'test.core.log'; @@ -161,9 +140,7 @@ final class LogRecordTest extends UnitTestCase self::assertEquals($data, $recordArray['data']); } - /** - * @test - */ + #[Test] public function toStringIncludesDataAsJson(): void { $dataArray = ['foo' => 'bar']; @@ -171,9 +148,7 @@ final class LogRecordTest extends UnitTestCase self::assertStringContainsString(json_encode($dataArray), (string)$record); } - /** - * @test - */ + #[Test] public function toStringIncludesExceptionDataAsJson(): void { $dataArray = ['exception' => new \Exception('foo', 1476049451)]; diff --git a/typo3/sysext/core/Tests/Unit/Log/LoggerTest.php b/typo3/sysext/core/Tests/Unit/Log/LoggerTest.php index 26396d010a8a1aec1b80c02ee4063a021d52171b..6ffff0e681ef5d4d14b5b5e867ef98ff2fd3dde7 100644 --- a/typo3/sysext/core/Tests/Unit/Log/LoggerTest.php +++ b/typo3/sysext/core/Tests/Unit/Log/LoggerTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Log; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use Psr\Log\LogLevel; use TYPO3\CMS\Core\Log\Logger; use TYPO3\CMS\Core\Log\LogRecord; @@ -27,18 +29,14 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class LoggerTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getNameGetsLoggerName(): void { $logger = new Logger('test.core.log'); self::assertSame('test.core.log', $logger->getName()); } - /** - * @test - */ + #[Test] public function loggerDoesNotLogRecordsLessCriticalThanLogLevel(): void { $logger = new Logger('test.core.log'); @@ -49,9 +47,7 @@ final class LoggerTest extends UnitTestCase self::assertEmpty($writer->getRecords()); } - /** - * @test - */ + #[Test] public function loggerCallsProcessor(): void { $component = 'test.core.log'; @@ -68,9 +64,7 @@ final class LoggerTest extends UnitTestCase $logger->warning($message); } - /** - * @test - */ + #[Test] public function loggerLogsRecord(): void { $logger = new Logger('test.core.log'); @@ -82,9 +76,7 @@ final class LoggerTest extends UnitTestCase $logger->warning('test'); } - /** - * @test - */ + #[Test] public function loggerLogsRecordsAtLeastAsCriticalAsLogLevel(): void { $logger = new Logger('test.core.log'); @@ -109,10 +101,8 @@ final class LoggerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider loggerLogsRecordsThroughShorthandMethodDataProvider - */ + #[DataProvider('loggerLogsRecordsThroughShorthandMethodDataProvider')] + #[Test] public function loggerLogsRecordsThroughShorthandMethod(string $shorthandMethod): void { $logger = new Logger('test.core.log'); @@ -122,9 +112,7 @@ final class LoggerTest extends UnitTestCase self::assertNotEmpty($writer->getRecords()); } - /** - * @test - */ + #[Test] public function loggerLogsRecordsMoreCriticalThanLogLevel(): void { $logger = new Logger('test.core.log'); @@ -135,9 +123,7 @@ final class LoggerTest extends UnitTestCase self::assertNotEmpty($writer->getRecords()); } - /** - * @test - */ + #[Test] public function addWriterAddsWriterToTheSpecifiedLevel(): void { $logger = new Logger('test.core.log'); @@ -147,9 +133,7 @@ final class LoggerTest extends UnitTestCase self::assertContains($writer, $writers[LogLevel::NOTICE]); } - /** - * @test - */ + #[Test] public function addWriterAddsWriterAlsoToHigherLevelsThanSpecified(): void { $logger = new Logger('test.core.log'); diff --git a/typo3/sysext/core/Tests/Unit/Log/Processor/AbstractMemoryProcessorTest.php b/typo3/sysext/core/Tests/Unit/Log/Processor/AbstractMemoryProcessorTest.php index 5f5f61e6e0d7e3ed3bf42bd3e009275bb76c8faf..315c74846f0b23af1869de1d16f419f019e2706f 100644 --- a/typo3/sysext/core/Tests/Unit/Log/Processor/AbstractMemoryProcessorTest.php +++ b/typo3/sysext/core/Tests/Unit/Log/Processor/AbstractMemoryProcessorTest.php @@ -17,14 +17,13 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Log\Processor; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Tests\Unit\Log\Processor\Fixtures\TestingMemoryProcessor; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class AbstractMemoryProcessorTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function setRealMemoryUsageSetsRealMemoryUsage(): void { $processor = new TestingMemoryProcessor(); @@ -32,9 +31,7 @@ final class AbstractMemoryProcessorTest extends UnitTestCase self::assertFalse($processor->getRealMemoryUsage()); } - /** - * @test - */ + #[Test] public function setFormatSizeSetsFormatSize(): void { $processor = new TestingMemoryProcessor(); diff --git a/typo3/sysext/core/Tests/Unit/Log/Processor/AbstractProcessorTest.php b/typo3/sysext/core/Tests/Unit/Log/Processor/AbstractProcessorTest.php index 2ed4ea9e55885d61dbc2368d3cd82f3b972f55a1..21950d6e497c394884163587c63eca33f2e9c36b 100644 --- a/typo3/sysext/core/Tests/Unit/Log/Processor/AbstractProcessorTest.php +++ b/typo3/sysext/core/Tests/Unit/Log/Processor/AbstractProcessorTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Log\Processor; +use PHPUnit\Framework\Attributes\Test; use Psr\Log\LogLevel; use TYPO3\CMS\Core\Log\Exception\InvalidLogProcessorConfigurationException; use TYPO3\CMS\Core\Log\Logger; @@ -29,9 +30,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class AbstractProcessorTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function processorRefusesInvalidConfigurationOptions(): void { $this->expectException(InvalidLogProcessorConfigurationException::class); @@ -43,9 +42,7 @@ final class AbstractProcessorTest extends UnitTestCase GeneralUtility::makeInstance(ProcessorFixture::class, $invalidConfiguration); } - /** - * @test - */ + #[Test] public function loggerExecutesProcessors(): void { $logger = new Logger('test.core.log'); diff --git a/typo3/sysext/core/Tests/Unit/Log/Processor/IntrospectionProcessorTest.php b/typo3/sysext/core/Tests/Unit/Log/Processor/IntrospectionProcessorTest.php index 519e63559dec3a8a5b952f1544ecf80b1c155bb9..dbd357d4d297d7ae51122ad3560d0c4ec88cf1a1 100644 --- a/typo3/sysext/core/Tests/Unit/Log/Processor/IntrospectionProcessorTest.php +++ b/typo3/sysext/core/Tests/Unit/Log/Processor/IntrospectionProcessorTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Log\Processor; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use Psr\Log\LogLevel; use TYPO3\CMS\Core\Log\LogRecord; @@ -64,9 +66,7 @@ final class IntrospectionProcessorTest extends UnitTestCase $this->processor = $this->getAccessibleMock(IntrospectionProcessor::class, ['getDebugBacktrace']); } - /** - * @test - */ + #[Test] public function introspectionProcessorAddsLastBacktraceItemToLogRecord(): void { $this->processor->method('getDebugBacktrace')->willReturn($this->dummyBacktrace); @@ -79,9 +79,7 @@ final class IntrospectionProcessorTest extends UnitTestCase self::assertEquals($this->dummyBacktrace[0]['function'], $logRecord['data']['function']); } - /** - * @test - */ + #[Test] public function introspectionProcessorShiftsLogRelatedFunctionsFromBacktrace(): void { $dummyBacktrace = $this->dummyBacktrace; @@ -123,10 +121,8 @@ final class IntrospectionProcessorTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider introspectionProcessorShiftsGivenNumberOfEntriesFromBacktraceDataProvider - */ + #[DataProvider('introspectionProcessorShiftsGivenNumberOfEntriesFromBacktraceDataProvider')] + #[Test] public function introspectionProcessorShiftsGivenNumberOfEntriesFromBacktrace($number): void { $this->processor->method('getDebugBacktrace')->willReturn($this->dummyBacktrace); @@ -141,9 +137,7 @@ final class IntrospectionProcessorTest extends UnitTestCase self::assertEquals($this->dummyBacktrace[$number]['function'], $logRecord['data']['function']); } - /** - * @test - */ + #[Test] public function introspectionProcessorLeavesOneEntryIfGivenNumberOfEntriesFromBacktraceIsGreaterOrEqualNumberOfBacktraceLevels(): void { $this->processor->method('getDebugBacktrace')->willReturn($this->dummyBacktrace); @@ -158,9 +152,7 @@ final class IntrospectionProcessorTest extends UnitTestCase self::assertEquals($this->dummyBacktrace[3]['function'], $logRecord['data']['function']); } - /** - * @test - */ + #[Test] public function appendFullBacktraceAddsTheFullBacktraceAsStringToTheLog(): void { $this->processor->method('getDebugBacktrace')->willReturn($this->dummyBacktrace); diff --git a/typo3/sysext/core/Tests/Unit/Log/Processor/MemoryPeakUsageProcessorTest.php b/typo3/sysext/core/Tests/Unit/Log/Processor/MemoryPeakUsageProcessorTest.php index d7aaa0e3e4251acb111b9fb9e4fba4a5e2aef7df..19293c1223b5d0a84e7fa3c5cde8f9d1df5f0c52 100644 --- a/typo3/sysext/core/Tests/Unit/Log/Processor/MemoryPeakUsageProcessorTest.php +++ b/typo3/sysext/core/Tests/Unit/Log/Processor/MemoryPeakUsageProcessorTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Log\Processor; +use PHPUnit\Framework\Attributes\Test; use Psr\Log\LogLevel; use TYPO3\CMS\Core\Log\LogRecord; use TYPO3\CMS\Core\Log\Processor\MemoryPeakUsageProcessor; @@ -24,9 +25,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class MemoryPeakUsageProcessorTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function memoryPeakUsageProcessorAddsMemoryPeakUsageDataToLogRecord(): void { $logRecord = new LogRecord('test.core.log', LogLevel::DEBUG, 'test'); diff --git a/typo3/sysext/core/Tests/Unit/Log/Processor/MemoryUsageProcessorTest.php b/typo3/sysext/core/Tests/Unit/Log/Processor/MemoryUsageProcessorTest.php index e92d2e07c4f1dd42f5fd8699170114c91888714a..75e0b7e1275ff6e97e34e9b1c8d71a74c2c8c1ba 100644 --- a/typo3/sysext/core/Tests/Unit/Log/Processor/MemoryUsageProcessorTest.php +++ b/typo3/sysext/core/Tests/Unit/Log/Processor/MemoryUsageProcessorTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Log\Processor; +use PHPUnit\Framework\Attributes\Test; use Psr\Log\LogLevel; use TYPO3\CMS\Core\Log\LogRecord; use TYPO3\CMS\Core\Log\Processor\MemoryUsageProcessor; @@ -24,9 +25,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class MemoryUsageProcessorTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function memoryUsageProcessorAddsMemoryUsageDataToLogRecord(): void { $logRecord = new LogRecord('test.core.log', LogLevel::DEBUG, 'test'); diff --git a/typo3/sysext/core/Tests/Unit/Log/Processor/WebProcessorTest.php b/typo3/sysext/core/Tests/Unit/Log/Processor/WebProcessorTest.php index 03aa0782911603611a738369f2790e1a1810862b..b26930009eb3eff84901f61b63e2697284e1c93d 100644 --- a/typo3/sysext/core/Tests/Unit/Log/Processor/WebProcessorTest.php +++ b/typo3/sysext/core/Tests/Unit/Log/Processor/WebProcessorTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Log\Processor; +use PHPUnit\Framework\Attributes\Test; use Psr\Log\LogLevel; use TYPO3\CMS\Core\Log\LogRecord; use TYPO3\CMS\Core\Log\Processor\WebProcessor; @@ -25,9 +26,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class WebProcessorTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function webProcessorAddsWebDataToLogRecord(): void { $_SERVER['REQUEST_URI'] = ''; diff --git a/typo3/sysext/core/Tests/Unit/Log/Writer/AbstractWriterTest.php b/typo3/sysext/core/Tests/Unit/Log/Writer/AbstractWriterTest.php index 59068c5ef9d9fd1de4eb3216e54964b4709edb0e..0dc198c1fea9ced1e144baf58659b79ddfe41e06 100644 --- a/typo3/sysext/core/Tests/Unit/Log/Writer/AbstractWriterTest.php +++ b/typo3/sysext/core/Tests/Unit/Log/Writer/AbstractWriterTest.php @@ -17,15 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Log\Writer; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Log\Exception\InvalidLogWriterConfigurationException; use TYPO3\CMS\Core\Tests\Unit\Log\Fixtures\WriterFixture; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class AbstractWriterTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function constructThrowsExceptionWithInvalidConfigurationOption(): void { $this->expectException(InvalidLogWriterConfigurationException::class); diff --git a/typo3/sysext/core/Tests/Unit/Log/Writer/DatabaseWriterTest.php b/typo3/sysext/core/Tests/Unit/Log/Writer/DatabaseWriterTest.php index 5a1f3d40c05670bcb47e282b7e7dee0d5fde2e36..3d5c869d5092f4d50bf88a559fbe55ab01a140b3 100644 --- a/typo3/sysext/core/Tests/Unit/Log/Writer/DatabaseWriterTest.php +++ b/typo3/sysext/core/Tests/Unit/Log/Writer/DatabaseWriterTest.php @@ -17,15 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Log\Writer; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Log\Writer\DatabaseWriter; use TYPO3\CMS\Core\Utility\StringUtility; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class DatabaseWriterTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getTableReturnsPreviouslySetTable(): void { $logTable = StringUtility::getUniqueId('logtable_'); diff --git a/typo3/sysext/core/Tests/Unit/Log/Writer/FileWriterTest.php b/typo3/sysext/core/Tests/Unit/Log/Writer/FileWriterTest.php index bee01e3d8d5f7cdc8b13058b64aa9b65758a022b..a8293cb7192e82ff300fb4549301b81fe70fadcb 100644 --- a/typo3/sysext/core/Tests/Unit/Log/Writer/FileWriterTest.php +++ b/typo3/sysext/core/Tests/Unit/Log/Writer/FileWriterTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Log\Writer; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use Psr\Log\LogLevel; use TYPO3\CMS\Core\Core\Environment; use TYPO3\CMS\Core\Log\Logger; @@ -69,9 +71,7 @@ final class FileWriterTest extends UnitTestCase return $this->testRoot . $this->logFileDirectory . '/' . $prependName . $this->logFileName; } - /** - * @test - */ + #[Test] public function setLogFileSetsLogFile(): void { $writer = GeneralUtility::makeInstance(FileWriter::class); @@ -79,9 +79,7 @@ final class FileWriterTest extends UnitTestCase self::assertEquals($this->getDefaultFileName(), $writer->getLogFile()); } - /** - * @test - */ + #[Test] public function setLogFileAcceptsAbsolutePath(): void { $writer = GeneralUtility::makeInstance(FileWriter::class); @@ -90,18 +88,14 @@ final class FileWriterTest extends UnitTestCase self::assertEquals($tempFile, $writer->getLogFile()); } - /** - * @test - */ + #[Test] public function createsLogFileDirectory(): void { $this->createWriter(); self::assertDirectoryExists($this->testRoot . $this->logFileDirectory); } - /** - * @test - */ + #[Test] public function createsLogFile(): void { $this->createWriter(); @@ -118,10 +112,8 @@ final class FileWriterTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider logsToFileDataProvider - */ + #[DataProvider('logsToFileDataProvider')] + #[Test] public function logsToFile(LogRecord $record, string $expectedResult): void { $this->createWriter()->writeLog($record); @@ -129,10 +121,8 @@ final class FileWriterTest extends UnitTestCase self::assertEquals($expectedResult, $logFileContents); } - /** - * @test - * @dataProvider logsToFileDataProvider - */ + #[DataProvider('logsToFileDataProvider')] + #[Test] public function differentWritersLogToDifferentFiles(LogRecord $record, string $expectedResult): void { $firstWriter = $this->createWriter(); @@ -148,9 +138,7 @@ final class FileWriterTest extends UnitTestCase self::assertEquals($expectedResult, $secondLogFileContents); } - /** - * @test - */ + #[Test] public function logsToFileWithUnescapedCharacters(): void { $recordWithData = GeneralUtility::makeInstance( @@ -168,9 +156,7 @@ final class FileWriterTest extends UnitTestCase self::assertStringContainsString($expectedResult, $logFileContents); } - /** - * @test - */ + #[Test] public function aSecondLogWriterToTheSameFileDoesNotOpenTheFileTwice(): void { $firstWriter = $this->getMockBuilder(FileWriter::class) @@ -187,9 +173,7 @@ final class FileWriterTest extends UnitTestCase $secondWriter->setLogFile($this->getDefaultFileName($logFilePrefix)); } - /** - * @test - */ + #[Test] public function fileHandleIsNotClosedIfSecondFileWriterIsStillUsingSameFile(): void { $firstWriter = $this->getMockBuilder(FileWriter::class) diff --git a/typo3/sysext/core/Tests/Unit/Mail/Event/AfterMailerSentMessageEventTest.php b/typo3/sysext/core/Tests/Unit/Mail/Event/AfterMailerSentMessageEventTest.php index 946e62860b2a962e027a24e68d24af996434ab26..baa516149da0f041592eccaaf79981514a150d9e 100644 --- a/typo3/sysext/core/Tests/Unit/Mail/Event/AfterMailerSentMessageEventTest.php +++ b/typo3/sysext/core/Tests/Unit/Mail/Event/AfterMailerSentMessageEventTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Mail\Event; +use PHPUnit\Framework\Attributes\Test; use Symfony\Component\Mailer\Transport\SendmailTransport; use TYPO3\CMS\Core\Mail\Event\AfterMailerSentMessageEvent; use TYPO3\CMS\Core\Mail\Mailer; @@ -37,9 +38,7 @@ final class AfterMailerSentMessageEventTest extends UnitTestCase GeneralUtility::setSingletonInstance(TransportFactory::class, $transportFactory); } - /** - * @test - */ + #[Test] public function gettersReturnInitializedObjects(): void { $mailer = (new Mailer()); diff --git a/typo3/sysext/core/Tests/Unit/Mail/Event/BeforeMailerSentMessageEventTest.php b/typo3/sysext/core/Tests/Unit/Mail/Event/BeforeMailerSentMessageEventTest.php index d5cef191f338c494429e9f5d59f3b8eb40281b59..ef5df1e5e5a08c481397c1f16f48ad3afee2d722 100644 --- a/typo3/sysext/core/Tests/Unit/Mail/Event/BeforeMailerSentMessageEventTest.php +++ b/typo3/sysext/core/Tests/Unit/Mail/Event/BeforeMailerSentMessageEventTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Mail\Event; +use PHPUnit\Framework\Attributes\Test; use Symfony\Component\Mailer\Envelope; use Symfony\Component\Mailer\Transport\SendmailTransport; use Symfony\Component\Mime\Address; @@ -40,9 +41,7 @@ final class BeforeMailerSentMessageEventTest extends UnitTestCase GeneralUtility::setSingletonInstance(TransportFactory::class, $transportFactory); } - /** - * @test - */ + #[Test] public function gettersReturnInitializedObjects(): void { $mailer = (new Mailer()); @@ -55,9 +54,7 @@ final class BeforeMailerSentMessageEventTest extends UnitTestCase self::assertEquals($rawMessage, $event->getMessage()); self::assertEquals($envelope, $event->getEnvelope()); } - /** - * @test - */ + #[Test] public function modifyingInitializedObjects(): void { $mailer = (new Mailer()); diff --git a/typo3/sysext/core/Tests/Unit/Mail/FileSpoolTest.php b/typo3/sysext/core/Tests/Unit/Mail/FileSpoolTest.php index dc535cbabd5c1e823a220a094f3f5aacdbc1c830..8488508e0b59e85571ab3dbe75c72ace5dd9efd1 100644 --- a/typo3/sysext/core/Tests/Unit/Mail/FileSpoolTest.php +++ b/typo3/sysext/core/Tests/Unit/Mail/FileSpoolTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Mail; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use Symfony\Component\Mailer\Envelope; use Symfony\Component\Mailer\Transport\NullTransport; use Symfony\Component\Mime\Address; @@ -39,10 +41,8 @@ final class FileSpoolTest extends UnitTestCase $this->subject->setTimeLimit(1); } - /** - * @test - * @dataProvider messageCountProvider - */ + #[DataProvider('messageCountProvider')] + #[Test] public function spoolsMessagesCorrectly(int $count): void { for ($i = 1; $i <= $count; $i++) { diff --git a/typo3/sysext/core/Tests/Unit/Mail/MailMessageTest.php b/typo3/sysext/core/Tests/Unit/Mail/MailMessageTest.php index de1f3963d0faad14057dd7c278e74c8556ff6628..2accad81f5446dc74d8314eb297fcc68e9fcbac0 100644 --- a/typo3/sysext/core/Tests/Unit/Mail/MailMessageTest.php +++ b/typo3/sysext/core/Tests/Unit/Mail/MailMessageTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Mail; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use Symfony\Component\Mime\Address; use TYPO3\CMS\Core\Mail\MailMessage; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -33,17 +35,13 @@ final class MailMessageTest extends UnitTestCase $this->subject = new MailMessage(); } - /** - * @test - */ + #[Test] public function isSentReturnsFalseIfMailWasNotSent(): void { self::assertFalse($this->subject->isSent()); } - /** - * @test - */ + #[Test] public function setSubjectWorksAsExpected(): void { $this->subject->setSubject('Test'); @@ -52,9 +50,7 @@ final class MailMessageTest extends UnitTestCase self::assertSame('Test2', $this->subject->getSubject()); } - /** - * @test - */ + #[Test] public function setDateWorksAsExpected(): void { $time = time(); @@ -65,9 +61,7 @@ final class MailMessageTest extends UnitTestCase self::assertSame($time, (int)$this->subject->getDate()->format('U')); } - /** - * @test - */ + #[Test] public function setReturnPathWorksAsExpected(): void { $this->subject->setReturnPath('noreply@typo3.com'); @@ -94,10 +88,8 @@ final class MailMessageTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider setSenderAddressDataProvider - */ + #[DataProvider('setSenderAddressDataProvider')] + #[Test] public function setSenderWorksAsExpected(string $address, ?string $name, array $expectedAddresses): void { $this->subject->setSender($address, $name); @@ -161,10 +153,8 @@ final class MailMessageTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider globalSetAddressDataProvider - */ + #[DataProvider('globalSetAddressDataProvider')] + #[Test] public function setFromWorksAsExpected(string|array $address, ?string $name, array $expectedAddresses): void { // We first add one address, because set should override / remove existing addresses @@ -173,10 +163,8 @@ final class MailMessageTest extends UnitTestCase $this->assertCorrectAddresses($this->subject->getFrom(), $expectedAddresses); } - /** - * @test - * @dataProvider globalSetAddressDataProvider - */ + #[DataProvider('globalSetAddressDataProvider')] + #[Test] public function setReplyToWorksAsExpected(string|array $address, ?string $name, array $expectedAddresses): void { // We first add one address, because set should override / remove existing addresses @@ -185,10 +173,8 @@ final class MailMessageTest extends UnitTestCase $this->assertCorrectAddresses($this->subject->getReplyTo(), $expectedAddresses); } - /** - * @test - * @dataProvider globalSetAddressDataProvider - */ + #[DataProvider('globalSetAddressDataProvider')] + #[Test] public function setToToWorksAsExpected(string|array $address, ?string $name, array $expectedAddresses): void { // We first add one address, because set should override / remove existing addresses @@ -197,10 +183,8 @@ final class MailMessageTest extends UnitTestCase $this->assertCorrectAddresses($this->subject->getTo(), $expectedAddresses); } - /** - * @test - * @dataProvider globalSetAddressDataProvider - */ + #[DataProvider('globalSetAddressDataProvider')] + #[Test] public function setCcToWorksAsExpected(string|array $address, ?string $name, array $expectedAddresses): void { // We first add one address, because set should override / remove existing addresses @@ -209,10 +193,8 @@ final class MailMessageTest extends UnitTestCase $this->assertCorrectAddresses($this->subject->getCc(), $expectedAddresses); } - /** - * @test - * @dataProvider globalSetAddressDataProvider - */ + #[DataProvider('globalSetAddressDataProvider')] + #[Test] public function setBccToWorksAsExpected(string|array $address, ?string $name, array $expectedAddresses): void { // We first add one address, because set should override / remove existing addresses @@ -242,59 +224,47 @@ final class MailMessageTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider globalAddAddressDataProvider - */ + #[DataProvider('globalAddAddressDataProvider')] + #[Test] public function addFromToWorksAsExpected(string|array $address, ?string $name, array $expectedAddresses): void { $this->subject->addFrom($address, $name); $this->assertCorrectAddresses($this->subject->getFrom(), $expectedAddresses); } - /** - * @test - * @dataProvider globalAddAddressDataProvider - */ + #[DataProvider('globalAddAddressDataProvider')] + #[Test] public function addReplyToToWorksAsExpected(string|array $address, ?string $name, array $expectedAddresses): void { $this->subject->addReplyTo($address, $name); $this->assertCorrectAddresses($this->subject->getReplyTo(), $expectedAddresses); } - /** - * @test - * @dataProvider globalAddAddressDataProvider - */ + #[DataProvider('globalAddAddressDataProvider')] + #[Test] public function addToToWorksAsExpected(string|array $address, ?string $name, array $expectedAddresses): void { $this->subject->addTo($address, $name); $this->assertCorrectAddresses($this->subject->getTo(), $expectedAddresses); } - /** - * @test - * @dataProvider globalAddAddressDataProvider - */ + #[DataProvider('globalAddAddressDataProvider')] + #[Test] public function addCcToWorksAsExpected(string|array $address, ?string $name, array $expectedAddresses): void { $this->subject->addCc($address, $name); $this->assertCorrectAddresses($this->subject->getCc(), $expectedAddresses); } - /** - * @test - * @dataProvider globalAddAddressDataProvider - */ + #[DataProvider('globalAddAddressDataProvider')] + #[Test] public function addBccToWorksAsExpected(string|array $address, ?string $name, array $expectedAddresses): void { $this->subject->addBcc($address, $name); $this->assertCorrectAddresses($this->subject->getBcc(), $expectedAddresses); } - /** - * @test - */ + #[Test] public function setReadReceiptToToWorksAsExpected(): void { $this->subject->setReadReceiptTo('foo@example.com'); @@ -312,10 +282,8 @@ final class MailMessageTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider exceptionIsThrownForInvalidArgumentCombinationsDataProvider - */ + #[DataProvider('exceptionIsThrownForInvalidArgumentCombinationsDataProvider')] + #[Test] public function exceptionIsThrownForInvalidArgumentCombinations(string $method): void { $this->expectException(\InvalidArgumentException::class); diff --git a/typo3/sysext/core/Tests/Unit/Mail/MailerTest.php b/typo3/sysext/core/Tests/Unit/Mail/MailerTest.php index ef82148c1c762f2371840eebc36f9c7a4298b82d..18bc4caf9d8a76f0fecdee65f8a7d44cae327150 100644 --- a/typo3/sysext/core/Tests/Unit/Mail/MailerTest.php +++ b/typo3/sysext/core/Tests/Unit/Mail/MailerTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Mail; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use Psr\Log\LoggerInterface; use Psr\Log\NullLogger; use Symfony\Component\Mailer\Transport\NullTransport; @@ -61,9 +63,7 @@ final class MailerTest extends UnitTestCase }; } - /** - * @test - */ + #[Test] public function injectedSettingsAreNotReplacedByGlobalSettings(): void { $settings = ['transport' => 'mbox', 'transport_mbox_file' => '/path/to/file']; @@ -77,9 +77,7 @@ final class MailerTest extends UnitTestCase $this->subject->__construct(); } - /** - * @test - */ + #[Test] public function globalSettingsAreUsedIfNoSettingsAreInjected(): void { $settings = ($GLOBALS['TYPO3_CONF_VARS']['MAIL'] = ['transport' => 'sendmail', 'transport_sendmail_command' => 'sendmail -bs']); @@ -101,10 +99,8 @@ final class MailerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider wrongConfigurationProvider - */ + #[DataProvider('wrongConfigurationProvider')] + #[Test] public function wrongConfigurationThrowsException(array $settings): void { $this->expectException(Exception::class); @@ -116,9 +112,7 @@ final class MailerTest extends UnitTestCase $this->subject->__construct(); } - /** - * @test - */ + #[Test] public function providingCorrectClassnameDoesNotThrowException(): void { $transportFactory = new TransportFactory($this->eventDispatcher, $this->logManager); @@ -127,9 +121,7 @@ final class MailerTest extends UnitTestCase $this->subject->__construct(); } - /** - * @test - */ + #[Test] public function noPortSettingSetsPortTo25(): void { $transportFactory = new TransportFactory($this->eventDispatcher, $this->logManager); @@ -140,9 +132,7 @@ final class MailerTest extends UnitTestCase self::assertEquals(25, $port); } - /** - * @test - */ + #[Test] public function emptyPortSettingSetsPortTo25(): void { $transportFactory = new TransportFactory($this->eventDispatcher, $this->logManager); @@ -153,9 +143,7 @@ final class MailerTest extends UnitTestCase self::assertEquals(25, $port); } - /** - * @test - */ + #[Test] public function givenPortSettingIsRespected(): void { $transportFactory = new TransportFactory($this->eventDispatcher, $this->logManager); @@ -180,10 +168,8 @@ final class MailerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider getRealTransportReturnsNoSpoolTransportProvider - */ + #[DataProvider('getRealTransportReturnsNoSpoolTransportProvider')] + #[Test] public function getRealTransportReturnsNoSpoolTransport($settings): void { $transportFactory = new TransportFactory($this->eventDispatcher, $this->logManager); diff --git a/typo3/sysext/core/Tests/Unit/Mail/TransportFactoryTest.php b/typo3/sysext/core/Tests/Unit/Mail/TransportFactoryTest.php index 6fed6dbc4f9ddfff4cf9cdde76cbb2e29e89657a..ffca2de0e1de600eac71ea59e7fe1f1270ebec19 100644 --- a/typo3/sysext/core/Tests/Unit/Mail/TransportFactoryTest.php +++ b/typo3/sysext/core/Tests/Unit/Mail/TransportFactoryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Mail; +use PHPUnit\Framework\Attributes\Test; use Psr\Log\NullLogger; use Symfony\Component\Mailer\Exception\TransportExceptionInterface; use Symfony\Component\Mailer\Transport\NullTransport; @@ -54,9 +55,7 @@ final class TransportFactoryTest extends UnitTestCase return $transportFactory; } - /** - * @test - */ + #[Test] public function getReturnsSpoolTransportUsingFileSpool(): void { $mailSettings = [ @@ -88,9 +87,7 @@ final class TransportFactoryTest extends UnitTestCase self::assertStringContainsString($mailSettings['transport_spool_filepath'], $path); } - /** - * @test - */ + #[Test] public function getReturnsSpoolTransportUsingMemorySpool(): void { $mailSettings = [ @@ -119,9 +116,7 @@ final class TransportFactoryTest extends UnitTestCase self::assertInstanceOf(MemorySpool::class, $transport); } - /** - * @test - */ + #[Test] public function getReturnsSpoolTransportUsingCustomSpool(): void { $mailSettings = [ @@ -149,9 +144,7 @@ final class TransportFactoryTest extends UnitTestCase self::assertSame($mailSettings, $transport->getSettings()); } - /** - * @test - */ + #[Test] public function getThrowsRuntimeExceptionForInvalidCustomSpool(): void { $this->expectExceptionCode(1466799482); @@ -177,9 +170,7 @@ final class TransportFactoryTest extends UnitTestCase $this->getSubject($eventDispatcher)->get($mailSettings); } - /** - * @test - */ + #[Test] public function getThrowsExceptionForMissingDsnConfig(): void { $this->expectExceptionCode(1615021869); @@ -192,9 +183,7 @@ final class TransportFactoryTest extends UnitTestCase $this->getSubject($eventDispatcher)->get($mailSettings); } - /** - * @test - */ + #[Test] public function dsnTransportCallsDispatchOfDispatcher(): void { $mailSettings = [ @@ -217,9 +206,7 @@ final class TransportFactoryTest extends UnitTestCase } } - /** - * @test - */ + #[Test] public function getReturnsMailerTransportInterface(): void { $mailSettings = [ @@ -244,9 +231,7 @@ final class TransportFactoryTest extends UnitTestCase self::assertInstanceOf(TransportInterface::class, $transport); } - /** - * @test - */ + #[Test] public function smtpTransportCallsDispatchOfDispatcher(): void { $mailSettings = [ @@ -280,9 +265,7 @@ final class TransportFactoryTest extends UnitTestCase } } - /** - * @test - */ + #[Test] public function sendmailTransportCallsDispatchOfDispatcher(): void { $mailSettings = [ @@ -316,9 +299,7 @@ final class TransportFactoryTest extends UnitTestCase } } - /** - * @test - */ + #[Test] public function nullTransportCallsDispatchOfDispatcher(): void { $mailSettings = [ @@ -348,9 +329,7 @@ final class TransportFactoryTest extends UnitTestCase $transport->send($message); } - /** - * @test - */ + #[Test] public function smtpTransportIsCorrectlyConfigured(): void { $mailSettings = [ diff --git a/typo3/sysext/core/Tests/Unit/Messaging/FlashMessageRendererResolverTest.php b/typo3/sysext/core/Tests/Unit/Messaging/FlashMessageRendererResolverTest.php index 1be0ea44e036290fd1e01af7e3cbe27d2f4e4f00..6ac1ac90c8c4382610b4aa98307c8d728d27eb9c 100644 --- a/typo3/sysext/core/Tests/Unit/Messaging/FlashMessageRendererResolverTest.php +++ b/typo3/sysext/core/Tests/Unit/Messaging/FlashMessageRendererResolverTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Messaging; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Messaging\FlashMessageRendererResolver; use TYPO3\CMS\Core\Messaging\Renderer\FlashMessageRendererInterface; use TYPO3\CMS\Core\Utility\GeneralUtility; @@ -24,9 +25,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class FlashMessageRendererResolverTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function flashMessageRendererResolverResolveRendererWithoutContext(): void { $rendererClass = GeneralUtility::makeInstance(FlashMessageRendererResolver::class)->resolve(); diff --git a/typo3/sysext/core/Tests/Unit/Messaging/FlashMessageServiceTest.php b/typo3/sysext/core/Tests/Unit/Messaging/FlashMessageServiceTest.php index 4e70a8374dcf77099b8cc2ec395efaed739fd1a9..a0285093558367b183f9177d3303ed620fe7ca08 100644 --- a/typo3/sysext/core/Tests/Unit/Messaging/FlashMessageServiceTest.php +++ b/typo3/sysext/core/Tests/Unit/Messaging/FlashMessageServiceTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Messaging; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Messaging\FlashMessageService; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -30,9 +31,7 @@ final class FlashMessageServiceTest extends UnitTestCase $this->flashMessageService = new FlashMessageService(); } - /** - * @test - */ + #[Test] public function getMessageQueueByIdentifierRegistersNewFlashmessageQueuesOnlyOnce(): void { self::assertSame( diff --git a/typo3/sysext/core/Tests/Unit/Messaging/FlashMessageTest.php b/typo3/sysext/core/Tests/Unit/Messaging/FlashMessageTest.php index b1c57db6b81ee5d97911f51985d95202a4610ddf..f89812698603821f3e241613c52a894a9b25fc3b 100644 --- a/typo3/sysext/core/Tests/Unit/Messaging/FlashMessageTest.php +++ b/typo3/sysext/core/Tests/Unit/Messaging/FlashMessageTest.php @@ -17,15 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Messaging; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Messaging\FlashMessage; use TYPO3\CMS\Core\Type\ContextualFeedbackSeverity; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class FlashMessageTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function jsonSerializeReturnsArrayWithDetailData(): void { $message = new FlashMessage('aMessage', 'aTitle', ContextualFeedbackSeverity::INFO); diff --git a/typo3/sysext/core/Tests/Unit/Messaging/Renderer/BootstrapRendererTest.php b/typo3/sysext/core/Tests/Unit/Messaging/Renderer/BootstrapRendererTest.php index e4f7bd5d1825865441aef7a3f3876c14888ae108..196be30fe07cc55b472690b7f2572f778f91818b 100644 --- a/typo3/sysext/core/Tests/Unit/Messaging/Renderer/BootstrapRendererTest.php +++ b/typo3/sysext/core/Tests/Unit/Messaging/Renderer/BootstrapRendererTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Messaging\Renderer; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Imaging\Icon; use TYPO3\CMS\Core\Imaging\IconFactory; use TYPO3\CMS\Core\Messaging\FlashMessage; @@ -45,9 +46,7 @@ final class BootstrapRendererTest extends UnitTestCase parent::tearDown(); } - /** - * @test - */ + #[Test] public function renderCreatesCorrectOutputForFlashMessage(): void { $rendererClass = GeneralUtility::makeInstance(BootstrapRenderer::class); @@ -65,9 +64,7 @@ final class BootstrapRendererTest extends UnitTestCase self::assertStringContainsString('<p class="alert-message">messageBody</p>', $output); } - /** - * @test - */ + #[Test] public function renderCreatesCorrectOutputForFlashMessageWithoutTitle(): void { $rendererClass = GeneralUtility::makeInstance(BootstrapRenderer::class); diff --git a/typo3/sysext/core/Tests/Unit/Messaging/Renderer/ListRendererTest.php b/typo3/sysext/core/Tests/Unit/Messaging/Renderer/ListRendererTest.php index d8f8693232895bade240d3673c119fe5489991a7..ca87563bf1d879ef076498af4037e287874601b9 100644 --- a/typo3/sysext/core/Tests/Unit/Messaging/Renderer/ListRendererTest.php +++ b/typo3/sysext/core/Tests/Unit/Messaging/Renderer/ListRendererTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Messaging\Renderer; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Messaging\FlashMessage; use TYPO3\CMS\Core\Messaging\Renderer\ListRenderer; use TYPO3\CMS\Core\Type\ContextualFeedbackSeverity; @@ -25,9 +26,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ListRendererTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function renderCreatesCorrectOutputForFlashMessage(): void { $rendererClass = GeneralUtility::makeInstance(ListRenderer::class); @@ -40,9 +39,7 @@ final class ListRendererTest extends UnitTestCase self::assertSame('<ul class="typo3-messages"><li class="alert alert-notice"><h4 class="alert-title">messageTitle</h4><p class="alert-message">messageBody</p></li></ul>', $rendererClass->render([$flashMessage])); } - /** - * @test - */ + #[Test] public function renderCreatesCorrectOutputForFlashMessageWithoutTitle(): void { $rendererClass = GeneralUtility::makeInstance(ListRenderer::class); diff --git a/typo3/sysext/core/Tests/Unit/Messaging/Renderer/PlaintextRendererTest.php b/typo3/sysext/core/Tests/Unit/Messaging/Renderer/PlaintextRendererTest.php index 1e299eef9a6cc4e6048a4d00f267f6b5647f1dcf..b1a5fc4aaf2716e471ac77f063673250de1518f5 100644 --- a/typo3/sysext/core/Tests/Unit/Messaging/Renderer/PlaintextRendererTest.php +++ b/typo3/sysext/core/Tests/Unit/Messaging/Renderer/PlaintextRendererTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Messaging\Renderer; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Messaging\FlashMessage; use TYPO3\CMS\Core\Messaging\Renderer\PlaintextRenderer; use TYPO3\CMS\Core\Type\ContextualFeedbackSeverity; @@ -25,9 +26,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class PlaintextRendererTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function renderCreatesCorrectOutputForFlashMessage(): void { $rendererClass = GeneralUtility::makeInstance(PlaintextRenderer::class); @@ -40,9 +39,7 @@ final class PlaintextRendererTest extends UnitTestCase self::assertSame('[NOTICE] messageTitle: messageBody', $rendererClass->render([$flashMessage])); } - /** - * @test - */ + #[Test] public function renderCreatesCorrectOutputForFlashMessageWithoutTitle(): void { $rendererClass = GeneralUtility::makeInstance(PlaintextRenderer::class); diff --git a/typo3/sysext/core/Tests/Unit/MetaTag/GenericMetaTagManagerTest.php b/typo3/sysext/core/Tests/Unit/MetaTag/GenericMetaTagManagerTest.php index a6bf266762dd75248b89ae91f410740b0b2641aa..0516b4cfe6eefdd195c15c566bf00931587a7ceb 100644 --- a/typo3/sysext/core/Tests/Unit/MetaTag/GenericMetaTagManagerTest.php +++ b/typo3/sysext/core/Tests/Unit/MetaTag/GenericMetaTagManagerTest.php @@ -17,14 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\MetaTag; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\MetaTag\GenericMetaTagManager; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class GenericMetaTagManagerTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function checkIfGetAllHandledPropertiesReturnsNonEmptyArray(): void { $manager = new GenericMetaTagManager(); @@ -33,9 +33,7 @@ final class GenericMetaTagManagerTest extends UnitTestCase self::assertEmpty($handledProperties); } - /** - * @test - */ + #[Test] public function checkIfMethodCanHandlePropertyAlwaysReturnsTrue(): void { $manager = new GenericMetaTagManager(); @@ -44,11 +42,8 @@ final class GenericMetaTagManagerTest extends UnitTestCase self::assertTrue($manager->canHandleProperty('og:title')); } - /** - * @dataProvider propertiesProvider - * - * @test - */ + #[DataProvider('propertiesProvider')] + #[Test] public function checkIfPropertyIsStoredAfterAddingProperty($property, $expected, $expectedRenderedTag): void { $manager = new GenericMetaTagManager(); @@ -64,9 +59,7 @@ final class GenericMetaTagManagerTest extends UnitTestCase self::assertEquals($expectedRenderedTag, $manager->renderProperty($property['property'])); } - /** - * @test - */ + #[Test] public function checkRenderAllPropertiesRendersCorrectMetaTags(): void { $properties = [ @@ -128,9 +121,7 @@ final class GenericMetaTagManagerTest extends UnitTestCase self::assertEquals($expected, $manager->renderAllProperties()); } - /** - * @test - */ + #[Test] public function checkIfRemovePropertyReallyRemovesProperty(): void { $manager = new GenericMetaTagManager(); diff --git a/typo3/sysext/core/Tests/Unit/MetaTag/MetaTagManagerRegistryTest.php b/typo3/sysext/core/Tests/Unit/MetaTag/MetaTagManagerRegistryTest.php index cd28dba7ddbea0bf0b9a87cb55300febf05dd634..708f0375c5eb55891ea468bd4faa508a6810f018 100644 --- a/typo3/sysext/core/Tests/Unit/MetaTag/MetaTagManagerRegistryTest.php +++ b/typo3/sysext/core/Tests/Unit/MetaTag/MetaTagManagerRegistryTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\MetaTag; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\MetaTag\GenericMetaTagManager; use TYPO3\CMS\Core\MetaTag\Html5MetaTagManager; use TYPO3\CMS\Core\MetaTag\MetaTagManagerRegistry; @@ -28,9 +30,7 @@ final class MetaTagManagerRegistryTest extends UnitTestCase { protected bool $resetSingletonInstances = true; - /** - * @test - */ + #[Test] public function checkRegisterNonExistingManagerDoesntThrowErrorWhenFetchingManagers(): void { $metaTagManagerRegistry = new MetaTagManagerRegistry(); @@ -39,10 +39,8 @@ final class MetaTagManagerRegistryTest extends UnitTestCase $metaTagManagerRegistry->getAllManagers(); } - /** - * @dataProvider registerMetaTagManagersProvider - * @test - */ + #[DataProvider('registerMetaTagManagersProvider')] + #[Test] public function checkRegisterExistingManagerDoRegister(array $managersToRegister, array $expected): void { $metaTagManagerRegistry = new MetaTagManagerRegistry(); @@ -66,9 +64,7 @@ final class MetaTagManagerRegistryTest extends UnitTestCase self::assertEquals($expected, $managers); } - /** - * @test - */ + #[Test] public function checkConditionRaceResultsIntoException(): void { $input = [ diff --git a/typo3/sysext/core/Tests/Unit/Middleware/VerifyHostHeaderTest.php b/typo3/sysext/core/Tests/Unit/Middleware/VerifyHostHeaderTest.php index 2d835a886de3bb2ea93d83cba193f559642ed425..b16d612bd3bfcf088d3bf74ef4a71fd8e02bec81 100644 --- a/typo3/sysext/core/Tests/Unit/Middleware/VerifyHostHeaderTest.php +++ b/typo3/sysext/core/Tests/Unit/Middleware/VerifyHostHeaderTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Middleware; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use Psr\Http\Server\RequestHandlerInterface; use TYPO3\CMS\Core\Http\Response; use TYPO3\CMS\Core\Http\ServerRequest; @@ -25,9 +27,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class VerifyHostHeaderTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function isAllowedHostHeaderValueReturnsFalseIfTrustedHostsIsNotConfigured(): void { $subject = new VerifyHostHeader(''); @@ -63,9 +63,9 @@ final class VerifyHostHeaderTest extends UnitTestCase /** * @param string $httpHost HTTP_HOST string * @param string $hostNamePattern trusted hosts pattern - * @test - * @dataProvider hostnamesMatchingTrustedHostsConfigurationDataProvider */ + #[DataProvider('hostnamesMatchingTrustedHostsConfigurationDataProvider')] + #[Test] public function isAllowedHostHeaderValueReturnsTrueIfHostValueMatches(string $httpHost, string $hostNamePattern): void { $serverParams = $_SERVER; @@ -77,9 +77,9 @@ final class VerifyHostHeaderTest extends UnitTestCase /** * @param string $httpHost HTTP_HOST string * @param string $hostNamePattern trusted hosts pattern - * @test - * @dataProvider hostnamesNotMatchingTrustedHostsConfigurationDataProvider */ + #[DataProvider('hostnamesNotMatchingTrustedHostsConfigurationDataProvider')] + #[Test] public function isAllowedHostHeaderValueReturnsFalseIfHostValueMatches(string $httpHost, string $hostNamePattern): void { $serverParams = $_SERVER; @@ -167,10 +167,8 @@ final class VerifyHostHeaderTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider serverNamePatternDataProvider - */ + #[DataProvider('serverNamePatternDataProvider')] + #[Test] public function isAllowedHostHeaderValueWorksCorrectlyWithWithServerNamePattern( string $httpHost, string $serverName, @@ -188,10 +186,8 @@ final class VerifyHostHeaderTest extends UnitTestCase self::assertSame($isAllowed, $subject->isAllowedHostHeaderValue($httpHost, $serverParams)); } - /** - * @test - * @dataProvider serverNamePatternDataProvider - */ + #[DataProvider('serverNamePatternDataProvider')] + #[Test] public function isAllowedHostHeaderValueWorksCorrectlyWithWithServerNamePatternAndSslProxy( string $httpHost, string $serverName, @@ -210,10 +206,8 @@ final class VerifyHostHeaderTest extends UnitTestCase self::assertSame($isAllowed, $subject->isAllowedHostHeaderValue($httpHost, $serverParams)); } - /** - * @test - * @dataProvider hostnamesNotMatchingTrustedHostsConfigurationDataProvider - */ + #[DataProvider('hostnamesNotMatchingTrustedHostsConfigurationDataProvider')] + #[Test] public function processThrowsExceptionForNotAllowedHostnameValues(string $httpHost, string $hostNamePattern): void { $serverParams = $_SERVER; @@ -228,10 +222,8 @@ final class VerifyHostHeaderTest extends UnitTestCase $subject->process($request, $requestHandlerMock); } - /** - * @test - * @dataProvider hostnamesNotMatchingTrustedHostsConfigurationDataProvider - */ + #[DataProvider('hostnamesNotMatchingTrustedHostsConfigurationDataProvider')] + #[Test] public function processAllowsAllHostnameValuesIfHostPatternIsSetToAllowAll(string $httpHost): void { $serverParams = $_SERVER; diff --git a/typo3/sysext/core/Tests/Unit/Migrations/TcaMigrationTest.php b/typo3/sysext/core/Tests/Unit/Migrations/TcaMigrationTest.php index 54b8f3c92aed8a7bbbde31d7b36ddc38ea231c74..afae6f624d967d64ac12fe4ec717ed491ec69ded 100644 --- a/typo3/sysext/core/Tests/Unit/Migrations/TcaMigrationTest.php +++ b/typo3/sysext/core/Tests/Unit/Migrations/TcaMigrationTest.php @@ -17,15 +17,15 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Migrations; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Migrations\TcaMigration; use TYPO3\CMS\Core\Resource\Filter\FileExtensionFilter; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class TcaMigrationTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function missingTypeThrowsException(): void { $input = [ @@ -53,9 +53,7 @@ final class TcaMigrationTest extends UnitTestCase $subject->migrate($input); } - /** - * @test - */ + #[Test] public function migrateReturnsGivenArrayUnchangedIfNoMigrationNeeded(): void { $input = $expected = [ @@ -83,9 +81,7 @@ final class TcaMigrationTest extends UnitTestCase self::assertEquals($expected, $subject->migrate($input)); } - /** - * @test - */ + #[Test] public function migrateAddsMissingColumnsConfig(): void { $input = [ @@ -138,9 +134,7 @@ final class TcaMigrationTest extends UnitTestCase self::assertEquals($expected, $subject->migrate($input)); } - /** - * @test - */ + #[Test] public function ctrlSelIconFieldPathIsRemoved(): void { $input = [ @@ -176,9 +170,7 @@ final class TcaMigrationTest extends UnitTestCase self::assertEquals($expected, $subject->migrate($input)); } - /** - * @test - */ + #[Test] public function ctrlSetToDefaultOnCopyIsRemoved(): void { $input = [ @@ -410,19 +402,15 @@ final class TcaMigrationTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider ctrlIntegrityColumnsAreAvailableDataProvider - */ + #[DataProvider('ctrlIntegrityColumnsAreAvailableDataProvider')] + #[Test] public function ctrlIntegrityColumnsAreAvailable(array $tca, array $expectation): void { $subject = new TcaMigration(); self::assertSame($expectation, $subject->migrate($tca)); } - /** - * @test - */ + #[Test] public function removeEnableMultiSelectFilterTextfieldConfigurationIsRemoved(): void { $input = [ @@ -473,9 +461,7 @@ final class TcaMigrationTest extends UnitTestCase self::assertEquals($expected, $subject->migrate($input)); } - /** - * @test - */ + #[Test] public function removeExcludeFieldForTransOrigPointerFieldIsRemoved(): void { $input = [ @@ -555,9 +541,7 @@ final class TcaMigrationTest extends UnitTestCase self::assertEquals($expected, $subject->migrate($input)); } - /** - * @test - */ + #[Test] public function removeShowRecordFieldListFieldIsRemoved(): void { $input = [ @@ -588,9 +572,7 @@ final class TcaMigrationTest extends UnitTestCase self::assertEquals($expected, $subject->migrate($input)); } - /** - * @test - */ + #[Test] public function ctrlShadowColumnsForMovePlaceholdersIsRemoved(): void { $input = [ @@ -623,9 +605,7 @@ final class TcaMigrationTest extends UnitTestCase self::assertEquals($expected, $subject->migrate($input)); } - /** - * @test - */ + #[Test] public function ctrlShadowColumnsForMoveAndPlaceholdersIsRemoved(): void { $input = [ @@ -659,9 +639,7 @@ final class TcaMigrationTest extends UnitTestCase self::assertEquals($expected, $subject->migrate($input)); } - /** - * @test - */ + #[Test] public function languageFieldsAreMigratedToTcaTypeLanguage(): void { $input = [ @@ -820,9 +798,7 @@ final class TcaMigrationTest extends UnitTestCase self::assertEquals($expected, $subject->migrate($input)); } - /** - * @test - */ + #[Test] public function showRemovedLocalizationRecordsRemoved(): void { $input = [ @@ -903,9 +879,7 @@ final class TcaMigrationTest extends UnitTestCase self::assertEquals($expected, $subject->migrate($input)); } - /** - * @test - */ + #[Test] public function fileFolderConfigurationIsMigrated(): void { $input = [ @@ -1054,9 +1028,7 @@ final class TcaMigrationTest extends UnitTestCase self::assertEquals($expected, $subject->migrate($input)); } - /** - * @test - */ + #[Test] public function levelLinksPositionIsMigrated(): void { $input = [ @@ -1167,9 +1139,7 @@ final class TcaMigrationTest extends UnitTestCase self::assertEquals($expected, $subject->migrate($input)); } - /** - * @test - */ + #[Test] public function rootUidIsMigratedToStartingPositions(): void { $input = [ @@ -1321,10 +1291,8 @@ final class TcaMigrationTest extends UnitTestCase ]; } - /** - * @dataProvider internalTypeFolderMigratedToTypeDataProvider - * @test - */ + #[DataProvider('internalTypeFolderMigratedToTypeDataProvider')] + #[Test] public function internalTypeFolderMigratedToType(array $input, array $expected): void { $subject = new TcaMigration(); @@ -1441,10 +1409,8 @@ final class TcaMigrationTest extends UnitTestCase ]; } - /** - * @dataProvider requiredFlagIsMigratedDataProvider - * @test - */ + #[DataProvider('requiredFlagIsMigratedDataProvider')] + #[Test] public function requiredFlagIsMigrated(array $input, array $expected): void { $subject = new TcaMigration(); @@ -1562,11 +1528,11 @@ final class TcaMigrationTest extends UnitTestCase } /** - * @dataProvider evalNullMigratedToNullableOptionDataProvider - * @test * @param array<string, mixed> $input * @param array<string, mixed> $expected */ + #[DataProvider('evalNullMigratedToNullableOptionDataProvider')] + #[Test] public function evalNullMigratedToNullableOption(array $input, array $expected): void { $subject = new TcaMigration(); @@ -1666,10 +1632,8 @@ final class TcaMigrationTest extends UnitTestCase ]; } - /** - * @dataProvider evalEmailMigratedToTypeDataProvider - * @test - */ + #[DataProvider('evalEmailMigratedToTypeDataProvider')] + #[Test] public function evalEmailMigratedToType(array $input, array $expected): void { $subject = new TcaMigration(); @@ -1736,10 +1700,8 @@ final class TcaMigrationTest extends UnitTestCase ]; } - /** - * @dataProvider typeNoneColsMigratedToSizeDataProvider - * @test - */ + #[DataProvider('typeNoneColsMigratedToSizeDataProvider')] + #[Test] public function typeNoneColsMigratedToSize(array $tca, array $expected): void { $subject = new TcaMigration(); @@ -1976,10 +1938,8 @@ final class TcaMigrationTest extends UnitTestCase ]; } - /** - * @dataProvider renderTypeInputLinkMigratedToTypeLinkDataProvider - * @test - */ + #[DataProvider('renderTypeInputLinkMigratedToTypeLinkDataProvider')] + #[Test] public function renderTypeInputLinkMigratedToTypeLink(array $input, array $expected): void { $subject = new TcaMigration(); @@ -2097,10 +2057,8 @@ final class TcaMigrationTest extends UnitTestCase ]; } - /** - * @dataProvider evalPasswordSaltedPasswordMigratedToTypePasswordDataProvider - * @test - */ + #[DataProvider('evalPasswordSaltedPasswordMigratedToTypePasswordDataProvider')] + #[Test] public function evalPasswordSaltedPasswordMigratedToTypePassword(array $input, array $expected): void { $subject = new TcaMigration(); @@ -2383,19 +2341,15 @@ final class TcaMigrationTest extends UnitTestCase ]; } - /** - * @dataProvider renderTypeInputDateTimeMigratedToTypeDatetimeDataProvider - * @test - */ + #[DataProvider('renderTypeInputDateTimeMigratedToTypeDatetimeDataProvider')] + #[Test] public function renderTypeInputDateTimeMigratedToTypeDatetime(array $input, array $expected): void { $subject = new TcaMigration(); self::assertSame($expected, $subject->migrate($input)); } - /** - * @test - */ + #[Test] public function authModeEnforceIsRemoved(): void { $input = [ @@ -2444,9 +2398,7 @@ final class TcaMigrationTest extends UnitTestCase self::assertSame($expected, (new TcaMigration())->migrate($input)); } - /** - * @test - */ + #[Test] public function authModeValuesAreEnforced(): void { $input = [ @@ -2793,10 +2745,8 @@ final class TcaMigrationTest extends UnitTestCase ]; } - /** - * @dataProvider selectIndividualAllowDenyMigratedToNewPositionDataProvider - * @test - */ + #[DataProvider('selectIndividualAllowDenyMigratedToNewPositionDataProvider')] + #[Test] public function selectIndividualAllowDenyMigratedToNewPosition(array $input, array $expected): void { $subject = new TcaMigration(); @@ -2876,10 +2826,8 @@ final class TcaMigrationTest extends UnitTestCase ]; } - /** - * @dataProvider renderTypeColorpickerToTypeColorDataProvider - * @test - */ + #[DataProvider('renderTypeColorpickerToTypeColorDataProvider')] + #[Test] public function renderTypeColorpickerToTypeColor(array $input, array $expected): void { $subject = new TcaMigration(); @@ -3047,11 +2995,11 @@ final class TcaMigrationTest extends UnitTestCase } /** - * @dataProvider typeTextWithEvalIntOrDouble2MigratedToTypeNumberDataProvider - * @test * @param array<string, mixed> $input * @param array<string, mixed> $expected */ + #[DataProvider('typeTextWithEvalIntOrDouble2MigratedToTypeNumberDataProvider')] + #[Test] public function typeTextWithEvalIntOrDouble2MigratedToTypeNumber(array $input, array $expected): void { $subject = new TcaMigration(); @@ -3098,20 +3046,18 @@ final class TcaMigrationTest extends UnitTestCase } /** - * @dataProvider propertyAlwaysDescriptionIsRemovedDataProvider - * @test * @param array<string, mixed> $input * @param array<string, mixed> $expected */ + #[DataProvider('propertyAlwaysDescriptionIsRemovedDataProvider')] + #[Test] public function propertyAlwaysDescriptionIsRemoved(array $input, array $expected): void { $subject = new TcaMigration(); self::assertSame($expected, $subject->migrate($input)); } - /** - * @test - */ + #[Test] public function ctrlCruserIdIsRemoved(): void { $input = [ @@ -3413,12 +3359,12 @@ final class TcaMigrationTest extends UnitTestCase } /** - * @dataProvider falHandlingInTypeInlineIsMigratedToTypeFileDataProvider - * @test * @param array<string, mixed> $input * @param array<string, mixed> $expected * @param string $expectedMessagePart */ + #[DataProvider('falHandlingInTypeInlineIsMigratedToTypeFileDataProvider')] + #[Test] public function falHandlingInTypeInlineIsMigratedToTypeFile(array $input, array $expected, $expectedMessagePart = ''): void { $subject = new TcaMigration(); @@ -3435,9 +3381,7 @@ final class TcaMigrationTest extends UnitTestCase } } - /** - * @test - */ + #[Test] public function falRelatedElementBrowserOptionsAreRemovedFromTypeGroup(): void { $input = [ @@ -3470,9 +3414,7 @@ final class TcaMigrationTest extends UnitTestCase self::assertSame($expected, $subject->migrate($input)); } - /** - * @test - */ + #[Test] public function falRelatedOptionsAreRemovedFromTypeInline(): void { $input = [ @@ -3508,9 +3450,7 @@ final class TcaMigrationTest extends UnitTestCase self::assertSame($expected, $subject->migrate($input)); } - /** - * @test - */ + #[Test] public function passContentIsRemovedFromTypeNone(): void { $input = [ @@ -3551,9 +3491,7 @@ final class TcaMigrationTest extends UnitTestCase self::assertSame($expected, (new TcaMigration())->migrate($input)); } - /** - * @test - */ + #[Test] public function itemsAreMigratedToAssociatedArray(): void { $input = [ diff --git a/typo3/sysext/core/Tests/Unit/Package/AbstractServiceProviderTest.php b/typo3/sysext/core/Tests/Unit/Package/AbstractServiceProviderTest.php index 2d2e53cdaeef491208341fadfbee43c805318c94..273ab4059456934c8ffdbe2d951bae9377bbb48f 100644 --- a/typo3/sysext/core/Tests/Unit/Package/AbstractServiceProviderTest.php +++ b/typo3/sysext/core/Tests/Unit/Package/AbstractServiceProviderTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Package; +use PHPUnit\Framework\Attributes\Test; use Psr\Container\ContainerInterface; use Psr\Log\LoggerInterface; use Psr\Log\NullLogger; @@ -31,9 +32,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class AbstractServiceProviderTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function configureMiddlewaresReturnsMergedMiddlewares(): void { $containerMock = $this->createMock(ContainerInterface::class); @@ -55,9 +54,7 @@ final class AbstractServiceProviderTest extends UnitTestCase self::assertEquals($expected, $middlewares); } - /** - * @test - */ + #[Test] public function configureMiddlewaresReturnsMergedMiddlewaresWithPseudoServiceProvider(): void { $containerMock = $this->createMock(ContainerInterface::class); @@ -84,9 +81,7 @@ final class AbstractServiceProviderTest extends UnitTestCase self::assertEquals($expected, $middlewares); } - /** - * @test - */ + #[Test] public function configureMiddlewaresReturnsMergedMiddlewaresWithOverrides(): void { $containerMock = $this->createMock(ContainerInterface::class); @@ -114,9 +109,7 @@ final class AbstractServiceProviderTest extends UnitTestCase self::assertEquals($expected, $middlewares); } - /** - * @test - */ + #[Test] public function configureMiddlewaresReturnsMergedMiddlewaresWithReplacements(): void { $containerMock = $this->createMock(ContainerInterface::class); @@ -143,9 +136,7 @@ final class AbstractServiceProviderTest extends UnitTestCase self::assertEquals($expected, $middlewares); } - /** - * @test - */ + #[Test] public function newReturnsClassInstance(): void { $newClosure = $this->getClosureForNew(); @@ -153,9 +144,7 @@ final class AbstractServiceProviderTest extends UnitTestCase self::assertInstanceOf(\stdClass::class, $instance); } - /** - * @test - */ + #[Test] public function newInjectsLogger(): void { $containerMock = $this->createMock(ContainerInterface::class); diff --git a/typo3/sysext/core/Tests/Unit/Package/MetaDataTest.php b/typo3/sysext/core/Tests/Unit/Package/MetaDataTest.php index 54e06e7ac7711814c267a586e6f15ad1eeb609a5..a93da444f1068d12bd3ae888b5c97090286f424b 100644 --- a/typo3/sysext/core/Tests/Unit/Package/MetaDataTest.php +++ b/typo3/sysext/core/Tests/Unit/Package/MetaDataTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Package; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Package\MetaData; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -49,10 +51,8 @@ final class MetaDataTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider typeIsCorrectlyResolvedDataProvider - */ + #[DataProvider('typeIsCorrectlyResolvedDataProvider')] + #[Test] public function typeIsCorrectlyResolved(?string $type, bool $isExtension, bool $isFramework): void { $metaData = new MetaData('foo'); diff --git a/typo3/sysext/core/Tests/Unit/Package/PackageManagerTest.php b/typo3/sysext/core/Tests/Unit/Package/PackageManagerTest.php index 7b7f4885ed265646d4024408358aa8a12da358f0..47c2af3a894d8fda90703b386d8e3dcaf88f9e2b 100644 --- a/typo3/sysext/core/Tests/Unit/Package/PackageManagerTest.php +++ b/typo3/sysext/core/Tests/Unit/Package/PackageManagerTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Package; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Core\Cache\Backend\SimpleFileBackend; use TYPO3\CMS\Core\Cache\Frontend\PhpFrontend; @@ -107,9 +109,9 @@ final class PackageManagerTest extends UnitTestCase } /** - * @test * @throws UnknownPackageException */ + #[Test] public function getPackageReturnsTheSpecifiedPackage(): void { $this->createPackage('TYPO3.MyPackage'); @@ -119,9 +121,9 @@ final class PackageManagerTest extends UnitTestCase } /** - * @test * @throws UnknownPackageException */ + #[Test] public function getPackageThrowsExceptionOnUnknownPackage(): void { $this->expectException(UnknownPackageException::class); @@ -130,9 +132,7 @@ final class PackageManagerTest extends UnitTestCase $this->packageManager->getPackage('PrettyUnlikelyThatThisPackageExists'); } - /** - * @test - */ + #[Test] public function scanAvailablePackagesTraversesThePackagesDirectoryAndRegistersPackagesItFinds(): void { $expectedPackageKeys = [ @@ -161,9 +161,7 @@ final class PackageManagerTest extends UnitTestCase self::assertEquals(sort($expectedPackageKeys), sort($actualPackageKeys)); } - /** - * @test - */ + #[Test] public function scanAvailablePackagesKeepsExistingPackageConfiguration(): void { $expectedPackageKeys = [ @@ -206,9 +204,7 @@ final class PackageManagerTest extends UnitTestCase self::assertEquals('Application/' . $packageKey . '/', $packageStates['packages'][$packageKey]['packagePath']); } - /** - * @test - */ + #[Test] public function extractPackageKeyFromPackagePathFindsPackageKey(): void { $package = $this->createPackage('typo3/my-package'); @@ -219,9 +215,9 @@ final class PackageManagerTest extends UnitTestCase } /** - * @test * @throws UnknownPackagePathException */ + #[Test] public function extractPackageKeyFromPackagePathThrowsExceptionOnNonPackagePaths(): void { $this->expectException(UnknownPackageException::class); @@ -231,9 +227,9 @@ final class PackageManagerTest extends UnitTestCase } /** - * @test * @throws UnknownPackageException */ + #[Test] public function extractPackageKeyFromPackagePathThrowsExceptionOnInvalidPackagePaths(): void { $this->expectException(UnknownPackagePathException::class); @@ -242,9 +238,7 @@ final class PackageManagerTest extends UnitTestCase $this->packageManager->extractPackageKeyFromPackagePath('EXT:typo3/my-package/path/to/file'); } - /** - * @test - */ + #[Test] public function packageStatesConfigurationContainsRelativePaths(): void { $packageKeys = [ @@ -294,10 +288,8 @@ final class PackageManagerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider packageKeysAndPaths - */ + #[DataProvider('packageKeysAndPaths')] + #[Test] public function createPackageCreatesPackageFolderAndReturnsPackage($packageKey, $expectedPackagePath): void { $actualPackage = $this->createPackage($packageKey); @@ -310,11 +302,11 @@ final class PackageManagerTest extends UnitTestCase } /** - * @test * @throws ProtectedPackageKeyException * @throws UnknownPackageException * @throws PackageStatesFileNotWritableException */ + #[Test] public function activatePackageAndDeactivatePackageActivateAndDeactivateTheGivenPackage(): void { $packageKey = 'Acme.YetAnotherTestPackage'; @@ -331,11 +323,11 @@ final class PackageManagerTest extends UnitTestCase } /** - * @test * @throws PackageStatesFileNotWritableException * @throws ProtectedPackageKeyException * @throws UnknownPackageException */ + #[Test] public function deactivatePackageThrowsAnExceptionIfPackageIsProtected(): void { $this->expectException(ProtectedPackageKeyException::class); @@ -348,11 +340,11 @@ final class PackageManagerTest extends UnitTestCase } /** - * @test * @throws ProtectedPackageKeyException * @throws UnknownPackageException * @throws Exception */ + #[Test] public function deletePackageThrowsErrorIfPackageIsNotAvailable(): void { $this->expectException(UnknownPackageException::class); @@ -363,12 +355,12 @@ final class PackageManagerTest extends UnitTestCase } /** - * @test * @throws InvalidPackageStateException * @throws ProtectedPackageKeyException * @throws UnknownPackageException * @throws Exception */ + #[Test] public function deletePackageThrowsAnExceptionIfPackageIsProtected(): void { $this->expectException(ProtectedPackageKeyException::class); @@ -380,12 +372,12 @@ final class PackageManagerTest extends UnitTestCase } /** - * @test * @throws InvalidPackageStateException * @throws ProtectedPackageKeyException * @throws UnknownPackageException * @throws Exception */ + #[Test] public function deletePackageRemovesPackageFromAvailableAndActivePackagesAndDeletesThePackageDirectory(): void { $this->createPackage('Acme.YetAnotherTestPackage'); @@ -582,10 +574,8 @@ final class PackageManagerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider buildDependencyGraphBuildsCorrectGraphDataProvider - */ + #[DataProvider('buildDependencyGraphBuildsCorrectGraphDataProvider')] + #[Test] public function buildDependencyGraphBuildsCorrectGraph(array $unsortedPackageStatesConfiguration, array $frameworkPackageKeys, array $expectedGraph): void { $packageManager = $this->getAccessibleMock(PackageManager::class, ['findFrameworkPackages'], [new DependencyOrderingService()]); @@ -706,10 +696,8 @@ final class PackageManagerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider packageSortingDataProvider - */ + #[DataProvider('packageSortingDataProvider')] + #[Test] public function sortPackageStatesConfigurationByDependencyMakesSureThatDependantPackagesAreStandingBeforeAPackageInTheInternalPackagesAndPackagesConfigurationArrays( array $unsortedPackageStatesConfiguration, array $frameworkPackageKeys, @@ -723,9 +711,7 @@ final class PackageManagerTest extends UnitTestCase self::assertEquals($expectedSortedPackageKeys, $sortedPackageKeys, 'The package states configurations have not been ordered according to their dependencies!'); } - /** - * @test - */ + #[Test] public function sortPackageStatesConfigurationByDependencyThrowsExceptionWhenCycleDetected(): void { $unsortedPackageStatesConfiguration = [ diff --git a/typo3/sysext/core/Tests/Unit/Package/PackageTest.php b/typo3/sysext/core/Tests/Unit/Package/PackageTest.php index d3ca8884f271a7e85bbe91512f1f10eba773ad92..821e4237a23bca2d9d0e5ee00f95880838a3c1a0 100644 --- a/typo3/sysext/core/Tests/Unit/Package/PackageTest.php +++ b/typo3/sysext/core/Tests/Unit/Package/PackageTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Package; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Core\Environment; use TYPO3\CMS\Core\Package\Exception\InvalidPackageKeyException; use TYPO3\CMS\Core\Package\Exception\InvalidPackagePathException; @@ -40,9 +42,7 @@ final class PackageTest extends UnitTestCase $this->testFilesToDelete[] = $this->testRoot; } - /** - * @test - */ + #[Test] public function constructThrowsPackageDoesNotExistException(): void { $this->expectException(InvalidPackagePathException::class); @@ -64,10 +64,8 @@ final class PackageTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider validPackageKeys - */ + #[DataProvider('validPackageKeys')] + #[Test] public function constructAcceptsValidPackageKeys($packageKey): void { $packagePath = $this->testRoot . str_replace('\\', '/', $packageKey) . '/'; @@ -90,10 +88,8 @@ final class PackageTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider invalidPackageKeys - */ + #[DataProvider('invalidPackageKeys')] + #[Test] public function constructRejectsInvalidPackageKeys($packageKey): void { $this->expectException(InvalidPackageKeyException::class); @@ -106,9 +102,7 @@ final class PackageTest extends UnitTestCase new Package($packageManagerMock, $packageKey, $packagePath); } - /** - * @test - */ + #[Test] public function aPackageCanBeFlaggedAsProtected(): void { $packagePath = $this->testRoot . 'Application/Vendor/Dummy/'; diff --git a/typo3/sysext/core/Tests/Unit/Page/AssetCollectorTest.php b/typo3/sysext/core/Tests/Unit/Page/AssetCollectorTest.php index c413b217576d9b51e556208eada6dd1165162df0..3a6938469bb655fac68a48b2d861196fa2894e32 100644 --- a/typo3/sysext/core/Tests/Unit/Page/AssetCollectorTest.php +++ b/typo3/sysext/core/Tests/Unit/Page/AssetCollectorTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Page; +use PHPUnit\Framework\Attributes\DataProviderExternal; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Page\AssetCollector; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -32,10 +34,8 @@ final class AssetCollectorTest extends UnitTestCase $this->assetCollector = GeneralUtility::makeInstance(AssetCollector::class); } - /** - * @test - * @dataProvider \TYPO3\CMS\Core\Tests\Unit\Page\AssetDataProvider::filesDataProvider - */ + #[DataProviderExternal(\TYPO3\CMS\Core\Tests\Unit\Page\AssetDataProvider::class, 'filesDataProvider')] + #[Test] public function styleSheets(array $files, array $expectedResult): void { foreach ($files as $file) { @@ -63,10 +63,8 @@ final class AssetCollectorTest extends UnitTestCase self::assertSame([], $this->assetCollector->getMedia()); } - /** - * @test - * @dataProvider \TYPO3\CMS\Core\Tests\Unit\Page\AssetDataProvider::filesDataProvider - */ + #[DataProviderExternal(\TYPO3\CMS\Core\Tests\Unit\Page\AssetDataProvider::class, 'filesDataProvider')] + #[Test] public function javaScript(array $files, array $expectedResult): void { foreach ($files as $file) { @@ -94,10 +92,8 @@ final class AssetCollectorTest extends UnitTestCase self::assertSame([], $this->assetCollector->getMedia()); } - /** - * @test - * @dataProvider \TYPO3\CMS\Core\Tests\Unit\Page\AssetDataProvider::inlineDataProvider - */ + #[DataProviderExternal(\TYPO3\CMS\Core\Tests\Unit\Page\AssetDataProvider::class, 'inlineDataProvider')] + #[Test] public function inlineJavaScript(array $sources, array $expectedResult): void { foreach ($sources as $source) { @@ -125,10 +121,8 @@ final class AssetCollectorTest extends UnitTestCase self::assertSame([], $this->assetCollector->getMedia()); } - /** - * @test - * @dataProvider \TYPO3\CMS\Core\Tests\Unit\Page\AssetDataProvider::inlineDataProvider - */ + #[DataProviderExternal(\TYPO3\CMS\Core\Tests\Unit\Page\AssetDataProvider::class, 'inlineDataProvider')] + #[Test] public function inlineStyles(array $sources, array $expectedResult): void { foreach ($sources as $source) { @@ -156,10 +150,8 @@ final class AssetCollectorTest extends UnitTestCase self::assertSame([], $this->assetCollector->getMedia()); } - /** - * @test - * @dataProvider \TYPO3\CMS\Core\Tests\Unit\Page\AssetDataProvider::mediaDataProvider - */ + #[DataProviderExternal(\TYPO3\CMS\Core\Tests\Unit\Page\AssetDataProvider::class, 'mediaDataProvider')] + #[Test] public function media(array $images, array $expectedResult): void { foreach ($images as $image) { diff --git a/typo3/sysext/core/Tests/Unit/Page/AssetRendererTest.php b/typo3/sysext/core/Tests/Unit/Page/AssetRendererTest.php index 0661badab37804a9136e54a8dc230efac4d9de25..b108d7153f390c66531fd48a52bd708c2709abd9 100644 --- a/typo3/sysext/core/Tests/Unit/Page/AssetRendererTest.php +++ b/typo3/sysext/core/Tests/Unit/Page/AssetRendererTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Page; +use PHPUnit\Framework\Attributes\DataProviderExternal; +use PHPUnit\Framework\Attributes\Test; use Psr\EventDispatcher\EventDispatcherInterface; use TYPO3\CMS\Core\Page\AssetCollector; use TYPO3\CMS\Core\Page\AssetRenderer; @@ -40,10 +42,8 @@ final class AssetRendererTest extends UnitTestCase ); } - /** - * @test - * @dataProvider \TYPO3\CMS\Core\Tests\Unit\Page\AssetDataProvider::filesDataProvider - */ + #[DataProviderExternal(\TYPO3\CMS\Core\Tests\Unit\Page\AssetDataProvider::class, 'filesDataProvider')] + #[Test] public function styleSheets(array $files, array $expectedResult, array $expectedMarkup): void { $assetCollector = GeneralUtility::makeInstance(AssetCollector::class); @@ -55,10 +55,8 @@ final class AssetRendererTest extends UnitTestCase self::assertSame($expectedMarkup['css_prio'], $this->assetRenderer->renderStyleSheets(true)); } - /** - * @test - * @dataProvider \TYPO3\CMS\Core\Tests\Unit\Page\AssetDataProvider::filesDataProvider - */ + #[DataProviderExternal(\TYPO3\CMS\Core\Tests\Unit\Page\AssetDataProvider::class, 'filesDataProvider')] + #[Test] public function javaScript(array $files, array $expectedResult, array $expectedMarkup): void { $assetCollector = GeneralUtility::makeInstance(AssetCollector::class); @@ -70,10 +68,8 @@ final class AssetRendererTest extends UnitTestCase self::assertSame($expectedMarkup['js_prio'], $this->assetRenderer->renderJavaScript(true)); } - /** - * @test - * @dataProvider \TYPO3\CMS\Core\Tests\Unit\Page\AssetDataProvider::inlineDataProvider - */ + #[DataProviderExternal(\TYPO3\CMS\Core\Tests\Unit\Page\AssetDataProvider::class, 'inlineDataProvider')] + #[Test] public function inlineJavaScript(array $sources, array $expectedResult, array $expectedMarkup): void { $assetCollector = GeneralUtility::makeInstance(AssetCollector::class); @@ -85,10 +81,8 @@ final class AssetRendererTest extends UnitTestCase self::assertSame($expectedMarkup['js_prio'], $this->assetRenderer->renderInlineJavaScript(true)); } - /** - * @test - * @dataProvider \TYPO3\CMS\Core\Tests\Unit\Page\AssetDataProvider::inlineDataProvider - */ + #[DataProviderExternal(\TYPO3\CMS\Core\Tests\Unit\Page\AssetDataProvider::class, 'inlineDataProvider')] + #[Test] public function inlineStyleSheets(array $sources, array $expectedResult, array $expectedMarkup): void { $assetCollector = GeneralUtility::makeInstance(AssetCollector::class); @@ -100,10 +94,8 @@ final class AssetRendererTest extends UnitTestCase self::assertSame($expectedMarkup['css_prio'], $this->assetRenderer->renderInlineStyleSheets(true)); } - /** - * @test - * @dataProvider \TYPO3\CMS\Core\Tests\Unit\Page\AssetDataProvider::renderMethodsAndEventsDataProvider - */ + #[DataProviderExternal(\TYPO3\CMS\Core\Tests\Unit\Page\AssetDataProvider::class, 'renderMethodsAndEventsDataProvider')] + #[Test] public function beforeRenderingEvent( string $renderMethodName, bool $isInline, diff --git a/typo3/sysext/core/Tests/Unit/Page/ImportMapTest.php b/typo3/sysext/core/Tests/Unit/Page/ImportMapTest.php index 211d58cce5afea52b83b226b665504d5da0f95a6..c80ca41f3507bb724f4e72b15a6b780fca21f0ff 100644 --- a/typo3/sysext/core/Tests/Unit/Page/ImportMapTest.php +++ b/typo3/sysext/core/Tests/Unit/Page/ImportMapTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Page; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Core\Environment; use TYPO3\CMS\Core\Package\MetaData; use TYPO3\CMS\Core\Package\PackageInterface; @@ -62,9 +63,7 @@ final class ImportMapTest extends UnitTestCase parent::tearDown(); } - /** - * @test - */ + #[Test] public function emptyOutputIfNoModuleIsLoaded(): void { $this->packages = ['core']; @@ -75,9 +74,7 @@ final class ImportMapTest extends UnitTestCase self::assertSame('', $output); } - /** - * @test - */ + #[Test] public function emptyOutputIfNoModuleIsDefined(): void { $this->packages = ['package1']; @@ -90,9 +87,7 @@ final class ImportMapTest extends UnitTestCase self::assertNull($url); } - /** - * @test - */ + #[Test] public function resolveImport(): void { $this->packages = ['core']; @@ -103,9 +98,7 @@ final class ImportMapTest extends UnitTestCase self::assertStringStartsWith('Fixtures/ImportMap/core/Resources/Public/JavaScript/Contrib/lit/index.js?bust=', $url); } - /** - * @test - */ + #[Test] public function resolveAndImplicitlyIncludeModuleConfiguration(): void { $this->packages = ['core']; @@ -120,9 +113,7 @@ final class ImportMapTest extends UnitTestCase ExtensionManagementUtility::setPackageManager($this->createMock(PackageManager::class)); } - /** - * @test - */ + #[Test] public function renderIncludedImportConfiguration(): void { $this->packages = ['core']; @@ -135,9 +126,7 @@ final class ImportMapTest extends UnitTestCase self::assertStringContainsString('"@typo3/core/Module1.js":"/Fixtures/ImportMap/core/Resources/Public/JavaScript/Module1.js?bust=', $output); } - /** - * @test - */ + #[Test] public function composesTwoImportMaps(): void { $this->packages = ['core', 'package2']; @@ -151,9 +140,7 @@ final class ImportMapTest extends UnitTestCase ExtensionManagementUtility::setPackageManager($this->createMock(PackageManager::class)); } - /** - * @test - */ + #[Test] public function handlesImportMapOverwrites(): void { $this->packages = ['package2', 'package3']; @@ -171,9 +158,7 @@ final class ImportMapTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function dependenciesAreLoaded(): void { $this->packages = ['core', 'package2']; @@ -184,9 +169,7 @@ final class ImportMapTest extends UnitTestCase self::assertStringContainsString('@typo3/core/', $output); } - /** - * @test - */ + #[Test] public function unusedConfigurationsAreOmitted(): void { $this->packages = ['core', 'package2', 'package4']; @@ -202,9 +185,7 @@ final class ImportMapTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function includeAllImportsIsRespected(): void { $this->packages = ['core', 'package2', 'package4']; diff --git a/typo3/sysext/core/Tests/Unit/Page/JavaScriptModuleInstructionTest.php b/typo3/sysext/core/Tests/Unit/Page/JavaScriptModuleInstructionTest.php index 5d81399ee2ac2f7a7d1f489ed764957ff498ac2f..6a3dab05b8a05625b328dac12de677f52c370971 100644 --- a/typo3/sysext/core/Tests/Unit/Page/JavaScriptModuleInstructionTest.php +++ b/typo3/sysext/core/Tests/Unit/Page/JavaScriptModuleInstructionTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Page; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Page\JavaScriptModuleInstruction; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -33,10 +35,8 @@ final class JavaScriptModuleInstructionTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider flagsAreAssignedDataProvider - */ + #[DataProvider('flagsAreAssignedDataProvider')] + #[Test] public function flagsAreAssigned(int $expectation, int $flags, int ...$additionalFlags): void { $subject = new JavaScriptModuleInstruction('Test', $flags); diff --git a/typo3/sysext/core/Tests/Unit/Page/PageRendererTest.php b/typo3/sysext/core/Tests/Unit/Page/PageRendererTest.php index e41ad703b56a49c7f3f5dd63b665f1d856a27a87..adc012106f110c14fcd7af6d32c8c1c259422ed6 100644 --- a/typo3/sysext/core/Tests/Unit/Page/PageRendererTest.php +++ b/typo3/sysext/core/Tests/Unit/Page/PageRendererTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Page; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Page\ImportMap; use TYPO3\CMS\Core\Page\ImportMapFactory; use TYPO3\CMS\Core\Page\PageRenderer; @@ -43,9 +45,7 @@ final class PageRendererTest extends UnitTestCase GeneralUtility::setSingletonInstance(ImportMapFactory::class, $importMapFactoryMock); } - /** - * @test - */ + #[Test] public function renderMethodCallsResetInAnyCase(): void { $pageRenderer = $this->getMockBuilder(PageRenderer::class) @@ -57,9 +57,7 @@ final class PageRendererTest extends UnitTestCase $pageRenderer->render(); } - /** - * @test - */ + #[Test] public function addBodyContentAddsContent(): void { $subject = $this->getAccessibleMock(PageRenderer::class, null, [], '', false); @@ -73,9 +71,7 @@ final class PageRendererTest extends UnitTestCase self::assertEquals($expectedReturnValue, $out); } - /** - * @test - */ + #[Test] public function addInlineLanguageLabelFileSetsInlineLanguageLabelFiles(): void { $subject = $this->getAccessibleMock(PageRenderer::class, null, [], '', false); @@ -95,9 +91,7 @@ final class PageRendererTest extends UnitTestCase self::assertSame($expectedInlineLanguageLabelFile, array_pop($actualResult)); } - /** - * @test - */ + #[Test] public function addInlineLanguageLabelFileSetsTwoDifferentInlineLanguageLabelFiles(): void { $subject = $this->getAccessibleMock(PageRenderer::class, null, [], '', false); @@ -126,9 +120,7 @@ final class PageRendererTest extends UnitTestCase self::assertSame($expectedInlineLanguageLabelFile1, array_pop($actualResult)); } - /** - * @test - */ + #[Test] public function addInlineLanguageLabelFileDoesNotSetSameLanguageFileTwice(): void { $subject = $this->getAccessibleMock(PageRenderer::class, null, [], '', false); @@ -141,9 +133,7 @@ final class PageRendererTest extends UnitTestCase self::assertCount(1, $subject->getInlineLanguageLabelFiles()); } - /** - * @test - */ + #[Test] public function includeLanguageFileForInlineDoesNotAddToInlineLanguageLabelsIfFileCouldNotBeRead(): void { $subject = $this->getAccessibleMock(PageRenderer::class, ['readLLfile'], [], '', false); @@ -200,10 +190,8 @@ final class PageRendererTest extends UnitTestCase ]; } - /** - * @dataProvider includeLanguageFileForInlineAddsProcessesLabelsToInlineLanguageLabelsProvider - * @test - */ + #[DataProvider('includeLanguageFileForInlineAddsProcessesLabelsToInlineLanguageLabelsProvider')] + #[Test] public function includeLanguageFileForInlineAddsProcessesLabelsToInlineLanguageLabels(array $llFileContent, string $selectionPrefix, string $stripFromSelectionName, array $expectation): void { $subject = $this->getAccessibleMock(PageRenderer::class, ['readLLfile'], [], '', false); @@ -215,9 +203,7 @@ final class PageRendererTest extends UnitTestCase self::assertEquals($expectation, $subject->_get('inlineLanguageLabels')); } - /** - * @test - */ + #[Test] public function getAddedMetaTag(): void { $subject = $this->getMockBuilder(PageRenderer::class) @@ -234,9 +220,7 @@ final class PageRendererTest extends UnitTestCase self::assertSame($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function overrideMetaTag(): void { $subject = $this->getMockBuilder(PageRenderer::class) @@ -254,9 +238,7 @@ final class PageRendererTest extends UnitTestCase self::assertSame($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function unsetAddedMetaTag(): void { $subject = $this->getMockBuilder(PageRenderer::class) @@ -270,9 +252,7 @@ final class PageRendererTest extends UnitTestCase self::assertSame($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function parseLanguageLabelsForJavaScriptReturnsEmptyStringIfEmpty(): void { $subject = $this->getAccessibleMock(PageRenderer::class, null, [], '', false); @@ -282,9 +262,7 @@ final class PageRendererTest extends UnitTestCase self::assertEmpty($actual); } - /** - * @test - */ + #[Test] public function parseLanguageLabelsForJavaScriptReturnsFlatArray(): void { $subject = $this->getAccessibleMock(PageRenderer::class, null, [], '', false); diff --git a/typo3/sysext/core/Tests/Unit/Pagination/ArrayPaginatorTest.php b/typo3/sysext/core/Tests/Unit/Pagination/ArrayPaginatorTest.php index 284a818ceb1b10958b5fcee9175a1975ea2df98e..afdf402b085b1bb3b96bd7c29be3beefc9b05589 100644 --- a/typo3/sysext/core/Tests/Unit/Pagination/ArrayPaginatorTest.php +++ b/typo3/sysext/core/Tests/Unit/Pagination/ArrayPaginatorTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Pagination; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Pagination\ArrayPaginator; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -32,17 +33,14 @@ final class ArrayPaginatorTest extends UnitTestCase /** * A short integration test to check that the fixtures are as expected - * - * @test */ + #[Test] public function integration(): void { self::assertCount(14, $this->fixture); } - /** - * @test - */ + #[Test] public function checkPaginatorWithDefaultConfiguration(): void { $paginator = new ArrayPaginator($this->fixture); @@ -53,9 +51,7 @@ final class ArrayPaginatorTest extends UnitTestCase self::assertCount(10, $paginator->getPaginatedItems()); } - /** - * @test - */ + #[Test] public function paginatorRespectsItemsPerPageConfiguration(): void { $paginator = new ArrayPaginator( @@ -70,9 +66,7 @@ final class ArrayPaginatorTest extends UnitTestCase self::assertCount(3, $paginator->getPaginatedItems()); } - /** - * @test - */ + #[Test] public function paginatorRespectsItemsPerPageConfigurationAndCurrentPage(): void { $paginator = new ArrayPaginator( @@ -87,9 +81,7 @@ final class ArrayPaginatorTest extends UnitTestCase self::assertCount(3, $paginator->getPaginatedItems()); } - /** - * @test - */ + #[Test] public function paginatorProperlyCalculatesLastPage(): void { $paginator = new ArrayPaginator( @@ -104,9 +96,7 @@ final class ArrayPaginatorTest extends UnitTestCase self::assertCount(2, $paginator->getPaginatedItems()); } - /** - * @test - */ + #[Test] public function withCurrentPageNumberThrowsInvalidArgumentExceptionIfCurrentPageIsLowerThanOne(): void { $this->expectExceptionCode(1573047338); @@ -119,9 +109,7 @@ final class ArrayPaginatorTest extends UnitTestCase $paginator->withCurrentPageNumber(0); } - /** - * @test - */ + #[Test] public function paginatorSetsCurrentPageToLastPageIfCurrentPageExceedsMaximum(): void { $paginator = new ArrayPaginator( @@ -135,9 +123,7 @@ final class ArrayPaginatorTest extends UnitTestCase self::assertCount(4, $paginator->getPaginatedItems()); } - /** - * @test - */ + #[Test] public function paginatorProperlyCalculatesOnlyOnePage(): void { $paginator = new ArrayPaginator( diff --git a/typo3/sysext/core/Tests/Unit/Pagination/SimplePaginationTest.php b/typo3/sysext/core/Tests/Unit/Pagination/SimplePaginationTest.php index 6fb605f87303efe6c79a4c72c656ae9a7967727b..cc353bc97acc6790534c065d48184a9dda044706 100644 --- a/typo3/sysext/core/Tests/Unit/Pagination/SimplePaginationTest.php +++ b/typo3/sysext/core/Tests/Unit/Pagination/SimplePaginationTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Pagination; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Pagination\ArrayPaginator; use TYPO3\CMS\Core\Pagination\SimplePagination; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -36,9 +37,7 @@ final class SimplePaginationTest extends UnitTestCase $this->paginator = new ArrayPaginator(range(1, 14, 1)); } - /** - * @test - */ + #[Test] public function checkSimplePaginationWithAPaginatorWithDefaultSettings(): void { $pagination = new SimplePagination($this->paginator); @@ -52,9 +51,7 @@ final class SimplePaginationTest extends UnitTestCase self::assertSame([1, 2], $pagination->getAllPageNumbers()); } - /** - * @test - */ + #[Test] public function checkSimplePaginationWithAnIncreasedCurrentPageNumber(): void { $paginator = $this->paginator @@ -72,9 +69,7 @@ final class SimplePaginationTest extends UnitTestCase self::assertSame([1, 2], $pagination->getAllPageNumbers()); } - /** - * @test - */ + #[Test] public function checkSimplePaginationWithAnIncreasedCurrentPageNumberAndItemsPerPage(): void { $paginator = $this->paginator @@ -92,9 +87,7 @@ final class SimplePaginationTest extends UnitTestCase self::assertSame([1, 2, 3, 4, 5], $pagination->getAllPageNumbers()); } - /** - * @test - */ + #[Test] public function checkPaginationWithAPaginatorThatOnlyHasOnePage(): void { $paginator = $this->paginator @@ -111,9 +104,7 @@ final class SimplePaginationTest extends UnitTestCase self::assertSame([1], $pagination->getAllPageNumbers()); } - /** - * @test - */ + #[Test] public function checkPaginatorWithOutOfBoundsCurrentPage(): void { $paginator = $this->paginator diff --git a/typo3/sysext/core/Tests/Unit/Pagination/SlidingWindowPaginationTest.php b/typo3/sysext/core/Tests/Unit/Pagination/SlidingWindowPaginationTest.php index db6d893dad2bc7477f55216714b22e9dcd366164..e9383ca793d882fb3af675c9b64e44f0ea2b34ba 100644 --- a/typo3/sysext/core/Tests/Unit/Pagination/SlidingWindowPaginationTest.php +++ b/typo3/sysext/core/Tests/Unit/Pagination/SlidingWindowPaginationTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Pagination; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Pagination\ArrayPaginator; use TYPO3\CMS\Core\Pagination\SlidingWindowPagination; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -25,9 +26,7 @@ final class SlidingWindowPaginationTest extends UnitTestCase { protected $paginator = []; - /** - * @test - */ + #[Test] public function checkSlidingWindowPaginationWithAPaginatorWithDefaultSettings(): void { $pagination = new SlidingWindowPagination($this->paginator, 5); @@ -46,9 +45,7 @@ final class SlidingWindowPaginationTest extends UnitTestCase self::assertSame(5, $pagination->getMaximumNumberOfLinks()); } - /** - * @test - */ + #[Test] public function checkSlidingWindowPaginationWithAnIncreasedCurrentPageNumber(): void { $paginator = $this->paginator->withCurrentPageNumber(2); @@ -68,9 +65,7 @@ final class SlidingWindowPaginationTest extends UnitTestCase self::assertSame(5, $pagination->getMaximumNumberOfLinks()); } - /** - * @test - */ + #[Test] public function checkSlidingWindowPaginationWithAnIncreasedCurrentPageNumberAndItemsPerPage(): void { $paginator = $this->paginator @@ -92,9 +87,7 @@ final class SlidingWindowPaginationTest extends UnitTestCase self::assertSame(5, $pagination->getMaximumNumberOfLinks()); } - /** - * @test - */ + #[Test] public function checkPaginationWithAPaginatorThatOnlyHasOnePage(): void { $paginator = $this->paginator->withItemsPerPage(50); @@ -114,9 +107,7 @@ final class SlidingWindowPaginationTest extends UnitTestCase self::assertSame(5, $pagination->getMaximumNumberOfLinks()); } - /** - * @test - */ + #[Test] public function checkPaginatorWithOutOfBoundsCurrentPage(): void { $paginator = $this->paginator diff --git a/typo3/sysext/core/Tests/Unit/PasswordPolicy/Validator/CorePasswordValidatorTest.php b/typo3/sysext/core/Tests/Unit/PasswordPolicy/Validator/CorePasswordValidatorTest.php index 0bd38bc171149791dc07e19f703c14d056f2ff4e..cbdd54c927ec901b36fbafe5909690806260c85c 100644 --- a/typo3/sysext/core/Tests/Unit/PasswordPolicy/Validator/CorePasswordValidatorTest.php +++ b/typo3/sysext/core/Tests/Unit/PasswordPolicy/Validator/CorePasswordValidatorTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\PasswordPolicy\Validator; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Localization\LanguageService; use TYPO3\CMS\Core\PasswordPolicy\Validator\CorePasswordValidator; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -91,10 +93,8 @@ final class CorePasswordValidatorTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider validatorReturnsExpectedResultsDataProvider - */ + #[DataProvider('validatorReturnsExpectedResultsDataProvider')] + #[Test] public function validatorReturnsExpectedResults($options, $password, $expected) { $validator = new CorePasswordValidator($options); diff --git a/typo3/sysext/core/Tests/Unit/PasswordPolicy/Validator/Dto/ContextDataTest.php b/typo3/sysext/core/Tests/Unit/PasswordPolicy/Validator/Dto/ContextDataTest.php index 44173273a264b80a54cc042f160121dc60dca661..5633fe5bb8ae3380b591ac466989733c8c74162c 100644 --- a/typo3/sysext/core/Tests/Unit/PasswordPolicy/Validator/Dto/ContextDataTest.php +++ b/typo3/sysext/core/Tests/Unit/PasswordPolicy/Validator/Dto/ContextDataTest.php @@ -17,14 +17,13 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\PasswordPolicy\Validator\Dto; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\PasswordPolicy\Validator\Dto\ContextData; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ContextDataTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function contextDataContainsExpectedDefaults(): void { $subject = new ContextData(); @@ -37,9 +36,7 @@ final class ContextDataTest extends UnitTestCase self::assertEquals('', $subject->getNewUserFullName()); } - /** - * @test - */ + #[Test] public function contextDataPropertiesSetInConstructor(): void { $subject = new ContextData( @@ -59,9 +56,7 @@ final class ContextDataTest extends UnitTestCase self::assertEquals('fullname', $subject->getNewUserFullName()); } - /** - * @test - */ + #[Test] public function getDataReturnsExpectedDataForContextDataSetInConstructor(): void { $subject = new ContextData(newUserFullName: 'Firstname Lastname'); @@ -69,9 +64,7 @@ final class ContextDataTest extends UnitTestCase self::assertEquals('Firstname Lastname', $subject->getData('newUserFullName')); } - /** - * @test - */ + #[Test] public function setDataSetsData(): void { $subject = new ContextData(); diff --git a/typo3/sysext/core/Tests/Unit/Preparations/TcaPreparationTest.php b/typo3/sysext/core/Tests/Unit/Preparations/TcaPreparationTest.php index b53733bfeec449b4bcfb27d34bc677740475bdd2..c1f2d4f1bb5ca5e56813d14ba5103e29f96b3afd 100644 --- a/typo3/sysext/core/Tests/Unit/Preparations/TcaPreparationTest.php +++ b/typo3/sysext/core/Tests/Unit/Preparations/TcaPreparationTest.php @@ -17,15 +17,15 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Preparations; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Preparations\TcaPreparation; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class TcaPreparationTest extends UnitTestCase { - /** - * @test - * @dataProvider configureCategoryRelationsDataProvider - */ + #[DataProvider('configureCategoryRelationsDataProvider')] + #[Test] public function configureCategoryRelations(array $input, array $expected): void { self::assertEquals($expected, (new TcaPreparation())->prepare($input)); @@ -240,10 +240,8 @@ final class TcaPreparationTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider configureCategoryRelationsThrowsExceptionOnInvalidMaxitemsDataProvider - */ + #[DataProvider('configureCategoryRelationsThrowsExceptionOnInvalidMaxitemsDataProvider')] + #[Test] public function configureCategoryRelationsThrowsExceptionOnInvalidMaxitems(array $input, int $exceptionCode): void { $this->expectExceptionCode($exceptionCode); @@ -318,9 +316,7 @@ final class TcaPreparationTest extends UnitTestCase ]; } - /** - * @test - */ + #[Test] public function configureCategoryRelationsThrowsExceptionOnInvalidRelationship(): void { $this->expectExceptionCode(1627898896); @@ -339,9 +335,7 @@ final class TcaPreparationTest extends UnitTestCase ]); } - /** - * @test - */ + #[Test] public function prepareFileExtensionsReplacesPlaceholders(): void { $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'] = 'jpg,png'; @@ -352,9 +346,7 @@ final class TcaPreparationTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function prepareFileExtensionsRemovesDuplicates(): void { $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'] = 'jpg,png'; diff --git a/typo3/sysext/core/Tests/Unit/RegistryTest.php b/typo3/sysext/core/Tests/Unit/RegistryTest.php index b29214edd91bda44cac58692bd5feaf14862919d..baa4d48fc7a151b0cd7c71023fe40f9d3c5e9063 100644 --- a/typo3/sysext/core/Tests/Unit/RegistryTest.php +++ b/typo3/sysext/core/Tests/Unit/RegistryTest.php @@ -17,14 +17,13 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Registry; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class RegistryTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getThrowsExceptionForInvalidNamespacesUsingNoNamespace(): void { $this->expectException(\InvalidArgumentException::class); @@ -32,9 +31,7 @@ final class RegistryTest extends UnitTestCase (new Registry())->get('', 'someKey'); } - /** - * @test - */ + #[Test] public function getThrowsExceptionForInvalidNamespacesUsingTooShortNamespace(): void { $this->expectException(\InvalidArgumentException::class); @@ -42,9 +39,7 @@ final class RegistryTest extends UnitTestCase (new Registry())->get('t', 'someKey'); } - /** - * @test - */ + #[Test] public function setThrowsAnExceptionOnEmptyNamespace(): void { $this->expectException(\InvalidArgumentException::class); @@ -52,9 +47,7 @@ final class RegistryTest extends UnitTestCase (new Registry())->set('', 'someKey', 'someValue'); } - /** - * @test - */ + #[Test] public function setThrowsAnExceptionOnWrongNamespace(): void { $this->expectException(\InvalidArgumentException::class); @@ -62,9 +55,7 @@ final class RegistryTest extends UnitTestCase (new Registry())->set('t', 'someKey', 'someValue'); } - /** - * @test - */ + #[Test] public function removeThrowsAnExceptionOnWrongNamespace(): void { $this->expectException(\InvalidArgumentException::class); @@ -72,9 +63,7 @@ final class RegistryTest extends UnitTestCase (new Registry())->remove('t', 'someKey'); } - /** - * @test - */ + #[Test] public function removeAllByNamespaceThrowsAnExceptionOnWrongNamespace(): void { $this->expectException(\InvalidArgumentException::class); diff --git a/typo3/sysext/core/Tests/Unit/Resource/AbstractFileTest.php b/typo3/sysext/core/Tests/Unit/Resource/AbstractFileTest.php index c2e499cf1423bcadb554d95e661efa33915f4d3f..5d4fb359f2a123c581267e2e0d8ace1bb6cd882d 100644 --- a/typo3/sysext/core/Tests/Unit/Resource/AbstractFileTest.php +++ b/typo3/sysext/core/Tests/Unit/Resource/AbstractFileTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Resource; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Resource\File; use TYPO3\CMS\Core\Resource\FolderInterface; use TYPO3\CMS\Core\Resource\ResourceStorage; @@ -28,9 +29,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; */ final class AbstractFileTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getParentFolderGetsParentFolderFromStorage(): void { $parentIdentifier = '/parent/'; @@ -59,9 +58,8 @@ final class AbstractFileTest extends UnitTestCase * type in a field "mimetype", while the file object and the database table use mime_type. * The test is placed in the test case for AbstractFile because the broken functionality resides there, though * it is only triggered when constructing a File instance with an index record. - * - * @test */ + #[Test] public function storageIsNotAskedForMimeTypeForPersistedRecord(): void { $mockedStorage = $this->getMockBuilder(ResourceStorage::class)->disableOriginalConstructor()->getMock(); diff --git a/typo3/sysext/core/Tests/Unit/Resource/Collection/FileCollectionRegistryTest.php b/typo3/sysext/core/Tests/Unit/Resource/Collection/FileCollectionRegistryTest.php index 46deb0860e9830bfbd272a96bcebe9ec28475fec..3efeb7f0ddbee74515c652c4cee3b7bf64154d9d 100644 --- a/typo3/sysext/core/Tests/Unit/Resource/Collection/FileCollectionRegistryTest.php +++ b/typo3/sysext/core/Tests/Unit/Resource/Collection/FileCollectionRegistryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Resource\Collection; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Resource\Collection\FileCollectionRegistry; use TYPO3\CMS\Core\Tests\Unit\Resource\Collection\Fixtures\OtherTestingFileCollection; use TYPO3\CMS\Core\Tests\Unit\Resource\Collection\Fixtures\TestingFileCollection; @@ -25,9 +26,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class FileCollectionRegistryTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function registeredFileCollectionClassesCanBeRetrieved(): void { $className = TestingFileCollection::class; @@ -37,9 +36,7 @@ final class FileCollectionRegistryTest extends UnitTestCase self::assertEquals($className, $returnedClassName); } - /** - * @test - */ + #[Test] public function registerFileCollectionClassThrowsExceptionIfClassDoesNotExist(): void { $this->expectException(\InvalidArgumentException::class); @@ -48,9 +45,7 @@ final class FileCollectionRegistryTest extends UnitTestCase $subject->registerFileCollectionClass(StringUtility::getUniqueId('class_'), substr(StringUtility::getUniqueId('type_'), 0, 30)); } - /** - * @test - */ + #[Test] public function registerFileCollectionClassThrowsExceptionIfTypeIsTooLong(): void { $this->expectException(\InvalidArgumentException::class); @@ -61,9 +56,7 @@ final class FileCollectionRegistryTest extends UnitTestCase $subject->registerFileCollectionClass($className, $type); } - /** - * @test - */ + #[Test] public function registerFileCollectionClassThrowsExceptionIfTypeIsAlreadyRegistered(): void { $this->expectException(\InvalidArgumentException::class); @@ -75,9 +68,7 @@ final class FileCollectionRegistryTest extends UnitTestCase $subject->registerFileCollectionClass($className2, 'foobar'); } - /** - * @test - */ + #[Test] public function registerFileCollectionClassOverridesExistingRegisteredFileCollectionClass(): void { $className = TestingFileCollection::class; @@ -87,9 +78,7 @@ final class FileCollectionRegistryTest extends UnitTestCase $subject->registerFileCollectionClass($className2, 'foobar', true); } - /** - * @test - */ + #[Test] public function getFileCollectionClassThrowsExceptionIfClassIsNotRegistered(): void { $this->expectException(\InvalidArgumentException::class); @@ -98,9 +87,7 @@ final class FileCollectionRegistryTest extends UnitTestCase $subject->getFileCollectionClass(StringUtility::getUniqueId()); } - /** - * @test - */ + #[Test] public function getFileCollectionClassAcceptsClassNameIfClassIsRegistered(): void { $className = TestingFileCollection::class; @@ -109,9 +96,7 @@ final class FileCollectionRegistryTest extends UnitTestCase self::assertEquals($className, $subject->getFileCollectionClass('foobar')); } - /** - * @test - */ + #[Test] public function fileCollectionRegistryIsInitializedWithPreconfiguredFileCollections(): void { $className = TestingFileCollection::class; @@ -123,9 +108,7 @@ final class FileCollectionRegistryTest extends UnitTestCase self::assertEquals($className, $subject->getFileCollectionClass($type)); } - /** - * @test - */ + #[Test] public function fileCollectionExistsReturnsTrueForAllExistingFileCollections(): void { $className = TestingFileCollection::class; @@ -138,9 +121,7 @@ final class FileCollectionRegistryTest extends UnitTestCase self::assertFalse($subject->fileCollectionTypeExists('bar')); } - /** - * @test - */ + #[Test] public function fileCollectionExistsReturnsFalseIfFileCollectionDoesNotExist(): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['fal']['registeredFileCollections'] = []; @@ -148,9 +129,7 @@ final class FileCollectionRegistryTest extends UnitTestCase self::assertFalse($subject->fileCollectionTypeExists(StringUtility::getUniqueId('name_'))); } - /** - * @test - */ + #[Test] public function addNewTypeToTCA(): void { // Create a TCA fixture for sys_file_collection diff --git a/typo3/sysext/core/Tests/Unit/Resource/Driver/AbstractDriverTest.php b/typo3/sysext/core/Tests/Unit/Resource/Driver/AbstractDriverTest.php index f4125bb462188666f5f838bce6795d475f07a77d..a7cd77159c8cd1062f496b90408a886192ff98fe 100644 --- a/typo3/sysext/core/Tests/Unit/Resource/Driver/AbstractDriverTest.php +++ b/typo3/sysext/core/Tests/Unit/Resource/Driver/AbstractDriverTest.php @@ -17,14 +17,13 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Resource\Driver; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Tests\Unit\Resource\Driver\Fixtures\TestingDriver; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class AbstractDriverTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function isCaseSensitiveFileSystemReturnsTrueIfNothingIsConfigured(): void { $subject = new TestingDriver(); diff --git a/typo3/sysext/core/Tests/Unit/Resource/Driver/AbstractHierarchicalFilesystemDriverTest.php b/typo3/sysext/core/Tests/Unit/Resource/Driver/AbstractHierarchicalFilesystemDriverTest.php index 9efb766bedbcaa30dfc7295ade7261e0d381d6ae..54e252f53a131731ff63951f7d96f1dcc165626b 100644 --- a/typo3/sysext/core/Tests/Unit/Resource/Driver/AbstractHierarchicalFilesystemDriverTest.php +++ b/typo3/sysext/core/Tests/Unit/Resource/Driver/AbstractHierarchicalFilesystemDriverTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Resource\Driver; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Tests\Unit\Resource\Driver\Fixtures\TestingHierarchicalFilesystemDriver; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -60,10 +62,8 @@ final class AbstractHierarchicalFilesystemDriverTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider canonicalizeAndCheckFileIdentifierCanonicalizesPathDataProvider - */ + #[DataProvider('canonicalizeAndCheckFileIdentifierCanonicalizesPathDataProvider')] + #[Test] public function canonicalizeAndCheckFileIdentifierCanonicalizesPath(string $expectedPath, string $fileIdentifier): void { $subject = new TestingHierarchicalFilesystemDriver(); @@ -104,10 +104,8 @@ final class AbstractHierarchicalFilesystemDriverTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider canonicalizeAndCheckFolderIdentifierCanonicalizesFolderIdentifierDataProvider - */ + #[DataProvider('canonicalizeAndCheckFolderIdentifierCanonicalizesFolderIdentifierDataProvider')] + #[Test] public function canonicalizeAndCheckFolderIdentifierCanonicalizesFolderIdentifier(string $expectedPath, string $identifier): void { $subject = new TestingHierarchicalFilesystemDriver(); diff --git a/typo3/sysext/core/Tests/Unit/Resource/Driver/DriverRegistryTest.php b/typo3/sysext/core/Tests/Unit/Resource/Driver/DriverRegistryTest.php index 582b4c43fd650383f7d65444d704669c7b8af739..bb56b798ee9e8d48ffd546fd5976058f44f31d5a 100644 --- a/typo3/sysext/core/Tests/Unit/Resource/Driver/DriverRegistryTest.php +++ b/typo3/sysext/core/Tests/Unit/Resource/Driver/DriverRegistryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Resource\Driver; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Resource\Driver\DriverInterface; use TYPO3\CMS\Core\Resource\Driver\DriverRegistry; use TYPO3\CMS\Core\Tests\Unit\Resource\Driver\Fixtures\TestingDriver; @@ -25,9 +26,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class DriverRegistryTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function registeredDriverClassesCanBeRetrieved(): void { $className = get_class($this->createMock(DriverInterface::class)); @@ -37,9 +36,7 @@ final class DriverRegistryTest extends UnitTestCase self::assertEquals($className, $returnedClassName); } - /** - * @test - */ + #[Test] public function registerDriverClassThrowsExceptionIfClassDoesNotExist(): void { $this->expectException(\InvalidArgumentException::class); @@ -48,9 +45,7 @@ final class DriverRegistryTest extends UnitTestCase $subject->registerDriverClass(StringUtility::getUniqueId('class_')); } - /** - * @test - */ + #[Test] public function registerDriverClassThrowsExceptionIfShortnameIsAlreadyTakenByAnotherDriverClass(): void { $this->expectException(\InvalidArgumentException::class); @@ -62,9 +57,7 @@ final class DriverRegistryTest extends UnitTestCase $subject->registerDriverClass($className2, 'foobar'); } - /** - * @test - */ + #[Test] public function getDriverClassThrowsExceptionIfClassIsNotRegistered(): void { $this->expectException(\InvalidArgumentException::class); @@ -73,9 +66,7 @@ final class DriverRegistryTest extends UnitTestCase $subject->getDriverClass(StringUtility::getUniqueId('class_')); } - /** - * @test - */ + #[Test] public function getDriverClassAcceptsClassNameIfClassIsRegistered(): void { $className = get_class($this->createMock(DriverInterface::class)); @@ -84,9 +75,7 @@ final class DriverRegistryTest extends UnitTestCase self::assertEquals($className, $subject->getDriverClass($className)); } - /** - * @test - */ + #[Test] public function driverRegistryIsInitializedWithPreconfiguredDrivers(): void { $className = get_class($this->createMock(DriverInterface::class)); @@ -100,9 +89,7 @@ final class DriverRegistryTest extends UnitTestCase self::assertEquals($className, $subject->getDriverClass($shortName)); } - /** - * @test - */ + #[Test] public function driverExistsReturnsTrueForAllExistingDrivers(): void { $className = get_class($this->createMock(DriverInterface::class)); @@ -117,9 +104,7 @@ final class DriverRegistryTest extends UnitTestCase self::assertFalse($subject->driverExists(StringUtility::getUniqueId('class'))); } - /** - * @test - */ + #[Test] public function driverExistsReturnsFalseIfDriverDoesNotExist(): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['fal']['registeredDrivers'] = []; diff --git a/typo3/sysext/core/Tests/Unit/Resource/FileReferenceTest.php b/typo3/sysext/core/Tests/Unit/Resource/FileReferenceTest.php index 4045c1f356ec8f431a7aa5d7ccf6248941d8051b..994437b07126504e67702a6454f225fd1ca2397b 100644 --- a/typo3/sysext/core/Tests/Unit/Resource/FileReferenceTest.php +++ b/typo3/sysext/core/Tests/Unit/Resource/FileReferenceTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Resource; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Core\Resource\File; use TYPO3\CMS\Core\Resource\FileReference; @@ -65,10 +67,8 @@ final class FileReferenceTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider propertiesDataProvider - */ + #[DataProvider('propertiesDataProvider')] + #[Test] public function getPropertiesReturnsMergedPropertiesAndRespectsNullValues(array $fileReferenceProperties, array $originalFileProperties, array $expectedMergedProperties): void { $fixture = $this->prepareFixture($fileReferenceProperties, $originalFileProperties); @@ -76,10 +76,8 @@ final class FileReferenceTest extends UnitTestCase self::assertSame($expectedMergedProperties, $actual); } - /** - * @test - * @dataProvider propertiesDataProvider - */ + #[DataProvider('propertiesDataProvider')] + #[Test] public function hasPropertyReturnsTrueForAllMergedPropertyKeys(array $fileReferenceProperties, array $originalFileProperties, array $expectedMergedProperties): void { $fixture = $this->prepareFixture($fileReferenceProperties, $originalFileProperties); @@ -88,10 +86,8 @@ final class FileReferenceTest extends UnitTestCase } } - /** - * @test - * @dataProvider propertiesDataProvider - */ + #[DataProvider('propertiesDataProvider')] + #[Test] public function getPropertyReturnsAllMergedPropertyKeys(array $fileReferenceProperties, array $originalFileProperties, array $expectedMergedProperties): void { $fixture = $this->prepareFixture($fileReferenceProperties, $originalFileProperties); @@ -100,10 +96,8 @@ final class FileReferenceTest extends UnitTestCase } } - /** - * @test - * @dataProvider propertiesDataProvider - */ + #[DataProvider('propertiesDataProvider')] + #[Test] public function getPropertyThrowsExceptionForNotAvailableProperty(array $fileReferenceProperties, array $originalFileProperties): void { $this->expectException(\InvalidArgumentException::class); @@ -113,10 +107,8 @@ final class FileReferenceTest extends UnitTestCase $fixture->getProperty(StringUtility::getUniqueId('nothingHere')); } - /** - * @test - * @dataProvider propertiesDataProvider - */ + #[DataProvider('propertiesDataProvider')] + #[Test] public function getPropertyDoesNotThrowExceptionForPropertyOnlyAvailableInOriginalFile( array $fileReferenceProperties, array $originalFileProperties @@ -125,10 +117,8 @@ final class FileReferenceTest extends UnitTestCase self::assertSame($originalFileProperties['file_only_property'], $fixture->getProperty('file_only_property')); } - /** - * @test - * @dataProvider propertiesDataProvider - */ + #[DataProvider('propertiesDataProvider')] + #[Test] public function getReferencePropertyThrowsExceptionForPropertyOnlyAvailableInOriginalFile( array $fileReferenceProperties, array $originalFileProperties @@ -140,27 +130,21 @@ final class FileReferenceTest extends UnitTestCase $fixture->getReferenceProperty('file_only_property'); } - /** - * @test - */ + #[Test] public function getTitleReturnsEmptyStringWhenPropertyValueIsNull(): void { $fixture = $this->prepareFixture(['title' => null], []); self::assertSame('', $fixture->getTitle()); } - /** - * @test - */ + #[Test] public function getAlternativeReturnsEmptyStringWhenPropertyValueIsNull(): void { $fixture = $this->prepareFixture(['alternative' => null], []); self::assertSame('', $fixture->getAlternative()); } - /** - * @test - */ + #[Test] public function getDescriptionReturnsEmptyStringWhenPropertyValueIsNull(): void { $fixture = $this->prepareFixture(['description' => null], []); diff --git a/typo3/sysext/core/Tests/Unit/Resource/FileTest.php b/typo3/sysext/core/Tests/Unit/Resource/FileTest.php index 400c58a74eb095ab04f6e822ae6ddc17396142c9..63ac0e335594c44773509e8e41552b3046b53723 100644 --- a/typo3/sysext/core/Tests/Unit/Resource/FileTest.php +++ b/typo3/sysext/core/Tests/Unit/Resource/FileTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Resource; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Resource\File; use TYPO3\CMS\Core\Resource\Folder; use TYPO3\CMS\Core\Resource\Index\MetaDataRepository; @@ -56,9 +58,7 @@ final class FileTest extends UnitTestCase return $fixture; } - /** - * @test - */ + #[Test] public function commonPropertiesAreAvailableWithOwnGetters(): void { $properties = [ @@ -74,18 +74,15 @@ final class FileTest extends UnitTestCase /** * Tests if a file is seen as indexed if the record has a uid - * - * @test */ + #[Test] public function fileIndexStatusIsTrueIfUidIsSet(): void { $fixture = new File(['uid' => 1], $this->storageMock); self::assertTrue($fixture->isIndexed()); } - /** - * @test - */ + #[Test] public function updatePropertiesUpdatesFileProperties(): void { $identifier = '/' . StringUtility::getUniqueId('identifier_'); @@ -94,9 +91,7 @@ final class FileTest extends UnitTestCase self::assertEquals($identifier, $fixture->getIdentifier()); } - /** - * @test - */ + #[Test] public function updatePropertiesLeavesPropertiesUntouchedIfNotSetInNewProperties(): void { $fixture = new File(['uid' => 1, 'foo' => 'asdf', 'identifier' => '/test'], $this->storageMock); @@ -105,9 +100,7 @@ final class FileTest extends UnitTestCase self::assertEquals('/test', $fixture->getProperty('identifier')); } - /** - * @test - */ + #[Test] public function updatePropertiesDiscardsUidIfAlreadySet(): void { $fixture = new File(['uid' => 1, 'identifier' => '/test'], $this->storageMock); @@ -115,9 +108,7 @@ final class FileTest extends UnitTestCase self::assertEquals(1, $fixture->getUid()); } - /** - * @test - */ + #[Test] public function updatePropertiesRecordsNamesOfChangedProperties(): void { $fixture = new File(['uid' => 1, 'foo' => 'asdf', 'baz' => 'fdsw', 'identifier' => '/test'], $this->storageMock); @@ -125,9 +116,7 @@ final class FileTest extends UnitTestCase self::assertEquals(['foo', 'baz'], $fixture->getUpdatedProperties()); } - /** - * @test - */ + #[Test] public function updatePropertiesDoesNotRecordPropertyNameIfSameValueIsProvided(): void { $fixture = new File(['uid' => 1, 'foo' => 'asdf', 'identifier' => '/test'], $this->storageMock); @@ -135,9 +124,7 @@ final class FileTest extends UnitTestCase self::assertEmpty($fixture->getUpdatedProperties()); } - /** - * @test - */ + #[Test] public function updatePropertiesMarksPropertyAsChangedOnlyOnce(): void { $fixture = new File(['uid' => 1, 'foo' => 'asdf', 'baz' => 'fdsw', 'identifier' => '/test'], $this->storageMock); @@ -146,9 +133,7 @@ final class FileTest extends UnitTestCase self::assertEquals(['foo', 'baz'], $fixture->getUpdatedProperties()); } - /** - * @test - */ + #[Test] public function updatePropertiesReloadsStorageObjectIfStorageChanges(): void { $fileProperties = [ @@ -171,9 +156,7 @@ final class FileTest extends UnitTestCase self::assertSame($mockedNewStorage, $subject->getStorage()); } - /** - * @test - */ + #[Test] public function copyToCallsCopyOperationOnTargetFolderStorage(): void { $targetStorage = $this->createMock(ResourceStorage::class); @@ -184,9 +167,7 @@ final class FileTest extends UnitTestCase $fixture->copyTo($targetFolder); } - /** - * @test - */ + #[Test] public function moveToCallsMoveOperationOnTargetFolderStorage(): void { $targetStorage = $this->createMock(ResourceStorage::class); @@ -208,10 +189,8 @@ final class FileTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider filenameExtensionDataProvider - */ + #[DataProvider('filenameExtensionDataProvider')] + #[Test] public function getNameWithoutExtensionReturnsCorrectName($originalFilename, $expectedBasename): void { $fixture = new File( @@ -224,10 +203,8 @@ final class FileTest extends UnitTestCase self::assertSame($expectedBasename, $fixture->getNameWithoutExtension()); } - /** - * @test - * @dataProvider filenameExtensionDataProvider - */ + #[DataProvider('filenameExtensionDataProvider')] + #[Test] public function getExtensionReturnsCorrectExtension($originalFilename, $expectedBasename, $expectedExtension): void { $fixture = new File([ @@ -237,18 +214,14 @@ final class FileTest extends UnitTestCase self::assertSame($expectedExtension, $fixture->getExtension()); } - /** - * @test - */ + #[Test] public function hasPropertyReturnsTrueFilePropertyExists(): void { $fixture = new File(['testproperty' => 'testvalue'], $this->storageMock); self::assertTrue($fixture->hasProperty('testproperty')); } - /** - * @test - */ + #[Test] public function hasPropertyReturnsTrueIfMetadataPropertyExists(): void { $fixture = $this->getMockBuilder(File::class) @@ -268,9 +241,7 @@ final class FileTest extends UnitTestCase self::assertSame('testvalue', $fixture->getProperty('testproperty')); } - /** - * @test - */ + #[Test] public function getPropertiesContainsUidOfSysFileMetadata(): void { $fileData = [ diff --git a/typo3/sysext/core/Tests/Unit/Resource/Filter/FileNameFilterTest.php b/typo3/sysext/core/Tests/Unit/Resource/Filter/FileNameFilterTest.php index aef49fcbacb546e23353e5b6ea954d4d2edbb7a2..c6ed59c99134abd15c6becb55d4c334754acdf69 100644 --- a/typo3/sysext/core/Tests/Unit/Resource/Filter/FileNameFilterTest.php +++ b/typo3/sysext/core/Tests/Unit/Resource/Filter/FileNameFilterTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Resource\Filter; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Resource\Driver\DriverInterface; use TYPO3\CMS\Core\Resource\Filter\FileNameFilter; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -53,10 +55,10 @@ final class FileNameFilterTest extends UnitTestCase } /** - * @test - * @dataProvider getItemsAndPathsWithoutHiddenFilesAndFolders_dataProvider * @param bool|int $expected */ + #[DataProvider('getItemsAndPathsWithoutHiddenFilesAndFolders_dataProvider')] + #[Test] public function filterHiddenFilesAndFoldersFiltersHiddenFilesAndFolders(string $itemName, string $itemIdentifier, $expected): void { FileNameFilter::setShowHiddenFilesAndFolders(false); @@ -74,10 +76,10 @@ final class FileNameFilterTest extends UnitTestCase } /** - * @test - * @dataProvider getItemsAndPathsWithHiddenFilesAndFolders_dataProvider * @param bool|int $expected */ + #[DataProvider('getItemsAndPathsWithHiddenFilesAndFolders_dataProvider')] + #[Test] public function filterHiddenFilesAndFoldersAllowsHiddenFilesAndFolders(string $itemName, string $itemIdentifier, $expected): void { $driverMock = $this->createMock(DriverInterface::class); diff --git a/typo3/sysext/core/Tests/Unit/Resource/FolderTest.php b/typo3/sysext/core/Tests/Unit/Resource/FolderTest.php index 36676b8c5262154ac45278ad788aa1e4872ae798..bc0f843824a172d9c144a361c640829d1ce34c11 100644 --- a/typo3/sysext/core/Tests/Unit/Resource/FolderTest.php +++ b/typo3/sysext/core/Tests/Unit/Resource/FolderTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Resource; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Resource\Folder; use TYPO3\CMS\Core\Resource\ResourceFactory; use TYPO3\CMS\Core\Resource\ResourceStorage; @@ -36,9 +37,7 @@ final class FolderTest extends UnitTestCase return new Folder($mockedStorage, $path, $name); } - /** - * @test - */ + #[Test] public function constructorArgumentsAreAvailableAtRuntime(): void { $path = StringUtility::getUniqueId('path_'); @@ -50,9 +49,7 @@ final class FolderTest extends UnitTestCase self::assertSame($name, $fixture->getName()); } - /** - * @test - */ + #[Test] public function propertiesCanBeUpdated(): void { $fixture = $this->createFolderFixture('/somePath', 'someName'); @@ -61,9 +58,7 @@ final class FolderTest extends UnitTestCase self::assertSame('/someOtherPath', $fixture->getIdentifier()); } - /** - * @test - */ + #[Test] public function propertiesAreNotUpdatedIfNotSetInInput(): void { $fixture = $this->createFolderFixture('/somePath/someName/', 'someName'); @@ -71,9 +66,7 @@ final class FolderTest extends UnitTestCase self::assertSame('someName', $fixture->getName()); } - /** - * @test - */ + #[Test] public function getFilesReturnsArrayWithFilenamesAsKeys(): void { $mockedStorage = $this->createMock(ResourceStorage::class); @@ -94,9 +87,7 @@ final class FolderTest extends UnitTestCase self::assertSame(['somefile.png', 'somefile.jpg'], array_keys($fileList)); } - /** - * @test - */ + #[Test] public function getFilesHandsOverRecursiveFALSEifNotExplicitlySet(): void { $mockedStorage = $this->createMock(ResourceStorage::class); @@ -110,9 +101,7 @@ final class FolderTest extends UnitTestCase $fixture->getFiles(); } - /** - * @test - */ + #[Test] public function getFilesHandsOverRecursiveTRUEifSet(): void { $mockedStorage = $this->createMock(ResourceStorage::class); @@ -126,9 +115,7 @@ final class FolderTest extends UnitTestCase $fixture->getFiles(0, 0, Folder::FILTER_MODE_USE_OWN_AND_STORAGE_FILTERS, true); } - /** - * @test - */ + #[Test] public function getSubfolderCallsFactoryWithCorrectArguments(): void { $mockedStorage = $this->createMock(ResourceStorage::class); @@ -153,9 +140,7 @@ final class FolderTest extends UnitTestCase self::assertEquals($subfolderFixture, $folderFixture->getSubfolder('someSubfolder')); } - /** - * @test - */ + #[Test] public function getParentFolderGetsParentFolderFromStorage(): void { $parentIdentifier = '/parent/'; diff --git a/typo3/sysext/core/Tests/Unit/Resource/Index/ExtractorRegistryTest.php b/typo3/sysext/core/Tests/Unit/Resource/Index/ExtractorRegistryTest.php index 3d1ade1edd0835e39c7b94b9144b5924b20ebf2e..ab26b5d8d2148a7e8e9ee674a17051c0867ddcaf 100644 --- a/typo3/sysext/core/Tests/Unit/Resource/Index/ExtractorRegistryTest.php +++ b/typo3/sysext/core/Tests/Unit/Resource/Index/ExtractorRegistryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Resource\Index; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Core\Resource\Index\ExtractorInterface; use TYPO3\CMS\Core\Resource\Index\ExtractorRegistry; @@ -27,9 +28,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; */ final class ExtractorRegistryTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function registeredExtractorClassCanBeRetrieved(): void { $extractorClass = 'a9f4d5e4ebb4b03547a2a6094e1170ac'; @@ -43,9 +42,7 @@ final class ExtractorRegistryTest extends UnitTestCase self::assertContains($extractorObject, $extractorRegistry->getExtractors()); } - /** - * @test - */ + #[Test] public function registerExtractorClassThrowsExceptionIfClassDoesNotExist(): void { $this->expectException(\InvalidArgumentException::class); @@ -56,9 +53,7 @@ final class ExtractorRegistryTest extends UnitTestCase $extractorRegistry->registerExtractionService($className); } - /** - * @test - */ + #[Test] public function registerExtractorClassThrowsExceptionIfClassDoesNotImplementRightInterface(): void { $this->expectException(\InvalidArgumentException::class); @@ -69,9 +64,7 @@ final class ExtractorRegistryTest extends UnitTestCase $extractorRegistry->registerExtractionService($className); } - /** - * @test - */ + #[Test] public function registerExtractorClassWithHighestPriorityIsFirstInResult(): void { $extractorClass1 = 'db76010e5c24658c35ea1605cce2391d'; @@ -110,9 +103,7 @@ final class ExtractorRegistryTest extends UnitTestCase self::assertInstanceOf($extractorClass1, $extractorInstances[2]); } - /** - * @test - */ + #[Test] public function registeredExtractorClassWithSamePriorityAreAllReturned(): void { $extractorClass1 = 'b70551b2b2db62b6b15a9bbfcbd50614'; @@ -141,9 +132,7 @@ final class ExtractorRegistryTest extends UnitTestCase self::assertContains($extractorObject2, $extractorInstances); } - /** - * @test - */ + #[Test] public function registeredExtractorsCanBeFilteredByDriverTypeButNoTyeREstrictionIsTreatedAsCompatible(): void { $extractorClass1 = 'b70551b2b2db62b6b15a9bbfcbd50614'; @@ -174,9 +163,7 @@ final class ExtractorRegistryTest extends UnitTestCase self::assertContains($extractorObject2, $extractorInstances); } - /** - * @test - */ + #[Test] public function registeredExtractorsCanBeFilteredByDriverType(): void { $extractorClass1 = 'b70551b2b2db62b6b15a9bbfcbd50614'; diff --git a/typo3/sysext/core/Tests/Unit/Resource/Index/IndexerTest.php b/typo3/sysext/core/Tests/Unit/Resource/Index/IndexerTest.php index 3400eb8d8f70b785d8b74ac66d09070f0a00e7e7..af5a19c3895f9654e3e7a348d5976defe7438578 100644 --- a/typo3/sysext/core/Tests/Unit/Resource/Index/IndexerTest.php +++ b/typo3/sysext/core/Tests/Unit/Resource/Index/IndexerTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Resource\Index; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Resource\File; use TYPO3\CMS\Core\Resource\Index\FileIndexRepository; use TYPO3\CMS\Core\Resource\Index\Indexer; @@ -29,9 +30,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; */ final class IndexerTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function extractMetaDataCallsSubsequentMethodsWithCorrectArguments(): void { $mockStorage = $this->createMock(ResourceStorage::class); diff --git a/typo3/sysext/core/Tests/Unit/Resource/MetaDataAspectTest.php b/typo3/sysext/core/Tests/Unit/Resource/MetaDataAspectTest.php index 573628cf3cb52f2997dcc7e096edf6b9b0a357a3..26083383f0778630054f436b5ee29a0fcd1a0541 100644 --- a/typo3/sysext/core/Tests/Unit/Resource/MetaDataAspectTest.php +++ b/typo3/sysext/core/Tests/Unit/Resource/MetaDataAspectTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Resource; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use Psr\EventDispatcher\EventDispatcherInterface; use TYPO3\CMS\Core\Database\Connection; @@ -50,9 +52,7 @@ final class MetaDataAspectTest extends UnitTestCase parent::tearDown(); } - /** - * @test - */ + #[Test] public function knownMetaDataIsAdded(): void { $metaData = [ @@ -64,9 +64,7 @@ final class MetaDataAspectTest extends UnitTestCase self::assertSame($metaData, $file->getMetaData()->get()); } - /** - * @test - */ + #[Test] public function manuallyAddedMetaDataIsMerged(): void { $metaData = [ @@ -89,9 +87,7 @@ final class MetaDataAspectTest extends UnitTestCase self::assertSame($expected, $file->getMetaData()->get()); } - /** - * @test - */ + #[Test] public function metaDataGetsRemoved(): void { $metaData = ['foo' => 'bar']; @@ -109,9 +105,7 @@ final class MetaDataAspectTest extends UnitTestCase self::assertEmpty($metaDataAspectMock->get()); } - /** - * @test - */ + #[Test] public function positiveUidOfFileIsExpectedToLoadMetaData(): void { $this->expectException(InvalidUidException::class); @@ -121,9 +115,7 @@ final class MetaDataAspectTest extends UnitTestCase $file->getMetaData()->get(); } - /** - * @test - */ + #[Test] public function newMetaDataIsCreated(): void { $GLOBALS['EXEC_TIME'] = 1534530781; @@ -166,9 +158,7 @@ final class MetaDataAspectTest extends UnitTestCase self::assertSame($expected, $file->getMetaData()->get()); } - /** - * @test - */ + #[Test] public function existingMetaDataGetsUpdated(): void { $metaData = ['uid' => 12, 'foo' => 'bar']; @@ -244,10 +234,8 @@ final class MetaDataAspectTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider propertyDataProvider - */ + #[DataProvider('propertyDataProvider')] + #[Test] public function propertyIsFetchedProperly(array $metaData, array $has, array $get): void { $file = new File([], $this->storageMock, $metaData); diff --git a/typo3/sysext/core/Tests/Unit/Resource/OnlineMedia/Event/AfterVideoPreviewFetchedEventTest.php b/typo3/sysext/core/Tests/Unit/Resource/OnlineMedia/Event/AfterVideoPreviewFetchedEventTest.php index 750cf83f8b4bb9c71734cbfb6a5a9b34f179ef06..4749bfe9fd951e895c9577b689dede756a205d2e 100644 --- a/typo3/sysext/core/Tests/Unit/Resource/OnlineMedia/Event/AfterVideoPreviewFetchedEventTest.php +++ b/typo3/sysext/core/Tests/Unit/Resource/OnlineMedia/Event/AfterVideoPreviewFetchedEventTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Resource\OnlineMedia\Event; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Resource\File; use TYPO3\CMS\Core\Resource\OnlineMedia\Event\AfterVideoPreviewFetchedEvent; use TYPO3\CMS\Core\Resource\OnlineMedia\Helpers\YouTubeHelper; @@ -25,9 +26,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class AfterVideoPreviewFetchedEventTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function gettersReturnInitializedObjects(): void { $onlineMediaId = '2004'; diff --git a/typo3/sysext/core/Tests/Unit/Resource/OnlineMedia/Helpers/VimeoHelperTest.php b/typo3/sysext/core/Tests/Unit/Resource/OnlineMedia/Helpers/VimeoHelperTest.php index 649b479cd430e4f87b3e4152d28e33222286cb18..97f218db4e2fa3d6787fb89f4589d6db3fc3f991 100644 --- a/typo3/sysext/core/Tests/Unit/Resource/OnlineMedia/Helpers/VimeoHelperTest.php +++ b/typo3/sysext/core/Tests/Unit/Resource/OnlineMedia/Helpers/VimeoHelperTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Resource\OnlineMedia\Helpers; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Resource\File; use TYPO3\CMS\Core\Resource\Folder; use TYPO3\CMS\Core\Resource\OnlineMedia\Helpers\VimeoHelper; @@ -39,10 +41,8 @@ final class VimeoHelperTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider transformUrlDataProvider - */ + #[DataProvider('transformUrlDataProvider')] + #[Test] public function transformUrlToFileReturnsExpectedResult(?string $url, ?string $videoId, bool $expectsMock): void { $mockedFolder = $this->createMock(Folder::class); diff --git a/typo3/sysext/core/Tests/Unit/Resource/ProcessedFileTest.php b/typo3/sysext/core/Tests/Unit/Resource/ProcessedFileTest.php index c012b21b724aa136382cb6a7ad5a10d7f06500c0..7685e1f42caec7b839cb53d7f8270a25652a9f46 100644 --- a/typo3/sysext/core/Tests/Unit/Resource/ProcessedFileTest.php +++ b/typo3/sysext/core/Tests/Unit/Resource/ProcessedFileTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Resource; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\Exception; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Core\Resource\File; @@ -84,18 +85,14 @@ final class ProcessedFileTest extends UnitTestCase return new ProcessedFile($originalFile, 'dummy', [], $dbRow ?: $this->databaseRow); } - /** - * @test - */ + #[Test] public function propertiesOfProcessedFileAreSetFromDatabaseRow(): void { $processedFileObject = $this->getProcessedFileFixture(); self::assertSame($this->databaseRow, $processedFileObject->getProperties()); } - /** - * @test - */ + #[Test] public function deletingProcessedFileRemovesFile(): void { $this->storageMock->expects(self::once())->method('deleteFile'); @@ -105,9 +102,7 @@ final class ProcessedFileTest extends UnitTestCase $processedFile->delete(true); } - /** - * @test - */ + #[Test] public function deletingProcessedFileThatUsesOriginalFileDoesNotRemoveFile(): void { $this->storageMock->expects(self::never())->method('deleteFile'); diff --git a/typo3/sysext/core/Tests/Unit/Resource/Processing/LocalPreviewHelperTest.php b/typo3/sysext/core/Tests/Unit/Resource/Processing/LocalPreviewHelperTest.php index bb2a230c1d219bab8db883dfb4144c070d437e27..6370c775abaaca1ef02eee5d3fc2f38442c7263a 100644 --- a/typo3/sysext/core/Tests/Unit/Resource/Processing/LocalPreviewHelperTest.php +++ b/typo3/sysext/core/Tests/Unit/Resource/Processing/LocalPreviewHelperTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Resource\Processing; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Resource\File; use TYPO3\CMS\Core\Resource\Processing\LocalPreviewHelper; use TYPO3\CMS\Core\Resource\Processing\TaskInterface; @@ -27,9 +28,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; */ final class LocalPreviewHelperTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function processProvidesDefaultSizeIfNotConfigured(): void { $file = $this->createMock(File::class); @@ -55,9 +54,7 @@ final class LocalPreviewHelperTest extends UnitTestCase $localPreviewHelper->process($task); } - /** - * @test - */ + #[Test] public function processDoesNotScaleUpImages(): void { $file = $this->createMock(File::class); @@ -78,9 +75,7 @@ final class LocalPreviewHelperTest extends UnitTestCase self::assertNull($localPreviewHelper->process($task)); } - /** - * @test - */ + #[Test] public function processGeneratesPreviewEvenIfSourceFileHasNoSize(): void { $file = $this->createMock(File::class); diff --git a/typo3/sysext/core/Tests/Unit/Resource/Processing/ProcessorRegistryTest.php b/typo3/sysext/core/Tests/Unit/Resource/Processing/ProcessorRegistryTest.php index 34e789d0c44a3fe25288fa49745ba7654205461a..b841c109facbb62efa626d605e92bea42e002dad 100644 --- a/typo3/sysext/core/Tests/Unit/Resource/Processing/ProcessorRegistryTest.php +++ b/typo3/sysext/core/Tests/Unit/Resource/Processing/ProcessorRegistryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Resource\Processing; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Resource\Processing\AbstractTask; use TYPO3\CMS\Core\Resource\Processing\LocalImageProcessor; use TYPO3\CMS\Core\Resource\Processing\ProcessorRegistry; @@ -26,9 +27,7 @@ final class ProcessorRegistryTest extends UnitTestCase { protected bool $resetSingletonInstances = true; - /** - * @test - */ + #[Test] public function getProcessorWhenOnlyOneIsRegistered(): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['fal']['processors'] = [ @@ -46,9 +45,7 @@ final class ProcessorRegistryTest extends UnitTestCase self::assertInstanceOf(LocalImageProcessor::class, $processor); } - /** - * @test - */ + #[Test] public function getProcessorWhenNoneIsRegistered(): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['fal']['processors'] = []; @@ -59,9 +56,7 @@ final class ProcessorRegistryTest extends UnitTestCase $subject->getProcessorByTask($taskMock); } - /** - * @test - */ + #[Test] public function getProcessorWhenSameProcessorIsRegisteredTwice(): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['fal']['processors'] = [ diff --git a/typo3/sysext/core/Tests/Unit/Resource/RelativeCssPathFixerTest.php b/typo3/sysext/core/Tests/Unit/Resource/RelativeCssPathFixerTest.php index 501c71710238d1668c6cb13bbd3ce802c4fd0d72..8423c3bbcc209de1a804e2f1da458349a4a01678 100644 --- a/typo3/sysext/core/Tests/Unit/Resource/RelativeCssPathFixerTest.php +++ b/typo3/sysext/core/Tests/Unit/Resource/RelativeCssPathFixerTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Resource; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Resource\RelativeCssPathFixer; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -69,10 +71,8 @@ final class RelativeCssPathFixerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider fixRelativeUrlPathsDataProvider - */ + #[DataProvider('fixRelativeUrlPathsDataProvider')] + #[Test] public function fixRelativeUrlPaths(string $css, string $newDir, string $expected): void { $subject = new RelativeCssPathFixer(); diff --git a/typo3/sysext/core/Tests/Unit/Resource/Rendering/AudioTagRendererTest.php b/typo3/sysext/core/Tests/Unit/Resource/Rendering/AudioTagRendererTest.php index b66a9d428a9756a64d116a2eff63caf71ddf0d33..7d2457284ffd03f11f3ef3cfa03cbe127771fd2b 100644 --- a/typo3/sysext/core/Tests/Unit/Resource/Rendering/AudioTagRendererTest.php +++ b/typo3/sysext/core/Tests/Unit/Resource/Rendering/AudioTagRendererTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Resource\Rendering; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Resource\File; use TYPO3\CMS\Core\Resource\Rendering\AudioTagRenderer; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -26,9 +28,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; */ final class AudioTagRendererTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getPriorityReturnsCorrectValue(): void { $audioTagRenderer = new AudioTagRenderer(); @@ -36,9 +36,7 @@ final class AudioTagRendererTest extends UnitTestCase self::assertSame(1, $audioTagRenderer->getPriority()); } - /** - * @test - */ + #[Test] public function canRenderReturnsTrueOnCorrectFile(): void { $audioTagRenderer = new AudioTagRenderer(); @@ -55,9 +53,7 @@ final class AudioTagRendererTest extends UnitTestCase self::assertTrue($audioTagRenderer->canRender($fileResourceMock3)); } - /** - * @test - */ + #[Test] public function canRenderReturnsFalseOnCorrectFile(): void { $audioTagRenderer = new AudioTagRenderer(); @@ -118,10 +114,8 @@ final class AudioTagRendererTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider renderArgumentsDataProvider - */ + #[DataProvider('renderArgumentsDataProvider')] + #[Test] public function renderOutputIsCorrect(string $url, array $arguments, string $expected): void { $audioTagRenderer = new AudioTagRenderer(); diff --git a/typo3/sysext/core/Tests/Unit/Resource/Rendering/RendererRegistryTest.php b/typo3/sysext/core/Tests/Unit/Resource/Rendering/RendererRegistryTest.php index 434600f9d8b413a2c922c14dc0f9965a787ccb2a..95a4d581cba3a6f60b17bd86606751e6db4d6dbe 100644 --- a/typo3/sysext/core/Tests/Unit/Resource/Rendering/RendererRegistryTest.php +++ b/typo3/sysext/core/Tests/Unit/Resource/Rendering/RendererRegistryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Resource\Rendering; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Core\Resource\File; use TYPO3\CMS\Core\Resource\Rendering\AudioTagRenderer; @@ -46,9 +47,7 @@ final class RendererRegistryTest extends UnitTestCase return $rendererRegistry; } - /** - * @test - */ + #[Test] public function registeredFileRenderClassCanBeRetrieved(): void { $rendererClass = StringUtility::getUniqueId('myRenderer'); @@ -62,9 +61,7 @@ final class RendererRegistryTest extends UnitTestCase self::assertContains($rendererObject, $rendererRegistry->getRendererInstances()); } - /** - * @test - */ + #[Test] public function registerRendererClassThrowsExceptionIfClassDoesNotExist(): void { $this->expectException(\InvalidArgumentException::class); @@ -74,9 +71,7 @@ final class RendererRegistryTest extends UnitTestCase $rendererRegistry->registerRendererClass(StringUtility::getUniqueId()); } - /** - * @test - */ + #[Test] public function registerRendererClassThrowsExceptionIfClassDoesNotImplementRightInterface(): void { $this->expectException(\InvalidArgumentException::class); @@ -87,9 +82,7 @@ final class RendererRegistryTest extends UnitTestCase $rendererRegistry->registerRendererClass($className); } - /** - * @test - */ + #[Test] public function registerRendererClassWithHighestPriorityIsFirstInResult(): void { $rendererClass1 = StringUtility::getUniqueId('myRenderer1'); @@ -127,9 +120,7 @@ final class RendererRegistryTest extends UnitTestCase self::assertInstanceOf($rendererClass1, $rendererInstances[2]); } - /** - * @test - */ + #[Test] public function registeredFileRendererClassWithSamePriorityAreAllReturned(): void { $rendererClass1 = StringUtility::getUniqueId('myRenderer1'); @@ -158,9 +149,7 @@ final class RendererRegistryTest extends UnitTestCase self::assertContains($rendererObject2, $rendererInstances); } - /** - * @test - */ + #[Test] public function getRendererReturnsCorrectInstance(): void { $rendererClass1 = StringUtility::getUniqueId('myVideoRenderer'); @@ -197,9 +186,7 @@ final class RendererRegistryTest extends UnitTestCase self::assertInstanceOf($rendererClass1, $renderer); } - /** - * @test - */ + #[Test] public function getRendererReturnsCorrectInstance2(): void { $this->resetSingletonInstances = true; diff --git a/typo3/sysext/core/Tests/Unit/Resource/Rendering/VideoTagRendererTest.php b/typo3/sysext/core/Tests/Unit/Resource/Rendering/VideoTagRendererTest.php index 67a63d13b14c4eb940db7d39b85762beb1bac746..e5ed01252e8c35291c938d456c0c769b7da2f7b4 100644 --- a/typo3/sysext/core/Tests/Unit/Resource/Rendering/VideoTagRendererTest.php +++ b/typo3/sysext/core/Tests/Unit/Resource/Rendering/VideoTagRendererTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Resource\Rendering; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Resource\File; use TYPO3\CMS\Core\Resource\Rendering\VideoTagRenderer; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -26,9 +28,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; */ final class VideoTagRendererTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getPriorityReturnsCorrectValue(): void { $VideoTagRenderer = new VideoTagRenderer(); @@ -36,9 +36,7 @@ final class VideoTagRendererTest extends UnitTestCase self::assertSame(1, $VideoTagRenderer->getPriority()); } - /** - * @test - */ + #[Test] public function canRenderReturnsTrueOnCorrectFile(): void { $VideoTagRenderer = new VideoTagRenderer(); @@ -58,9 +56,7 @@ final class VideoTagRendererTest extends UnitTestCase self::assertTrue($VideoTagRenderer->canRender($fileResourceMock4)); } - /** - * @test - */ + #[Test] public function canRenderReturnsFalseOnCorrectFile(): void { $VideoTagRenderer = new VideoTagRenderer(); @@ -153,10 +149,8 @@ final class VideoTagRendererTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider renderArgumentsDataProvider - */ + #[DataProvider('renderArgumentsDataProvider')] + #[Test] public function renderOutputIsCorrect(string $url, array $arguments, string $expected): void { $VideoTagRenderer = new VideoTagRenderer(); diff --git a/typo3/sysext/core/Tests/Unit/Resource/Rendering/VimeoRendererTest.php b/typo3/sysext/core/Tests/Unit/Resource/Rendering/VimeoRendererTest.php index 709785eed6a7ebdae2db393644c24cfeed951603..c7a4bc2741c318271198324b91e2b10a5d269809 100644 --- a/typo3/sysext/core/Tests/Unit/Resource/Rendering/VimeoRendererTest.php +++ b/typo3/sysext/core/Tests/Unit/Resource/Rendering/VimeoRendererTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Resource\Rendering; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Core\Resource\File; use TYPO3\CMS\Core\Resource\FileReference; @@ -43,17 +44,13 @@ final class VimeoRendererTest extends UnitTestCase $this->subject->method('getOnlineMediaHelper')->willReturn($vimeoHelper); } - /** - * @test - */ + #[Test] public function getPriorityReturnsCorrectValue(): void { self::assertSame(1, $this->subject->getPriority()); } - /** - * @test - */ + #[Test] public function canRenderReturnsTrueOnCorrectFile(): void { $fileResourceMock1 = $this->createMock(File::class); @@ -67,9 +64,7 @@ final class VimeoRendererTest extends UnitTestCase self::assertTrue($this->subject->canRender($fileResourceMock2)); } - /** - * @test - */ + #[Test] public function canRenderReturnsFalseOnCorrectFile(): void { $fileResourceMock = $this->createMock(File::class); @@ -78,9 +73,7 @@ final class VimeoRendererTest extends UnitTestCase self::assertFalse($this->subject->canRender($fileResourceMock)); } - /** - * @test - */ + #[Test] public function renderOutputIsCorrect(): void { $fileResourceMock = $this->createMock(File::class); @@ -91,9 +84,7 @@ final class VimeoRendererTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function renderOutputWithLoopIsCorrect(): void { $fileResourceMock = $this->createMock(File::class); @@ -104,9 +95,7 @@ final class VimeoRendererTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function renderOutputWithAutoplayIsCorrect(): void { $fileResourceMock = $this->createMock(File::class); @@ -117,9 +106,7 @@ final class VimeoRendererTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function renderOutputWithAutoplayFromReferenceIsCorrect(): void { $fileResourceMock = $this->createMock(File::class); @@ -134,9 +121,7 @@ final class VimeoRendererTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function renderOutputWithAutoplayAndWithoutControlsIsCorrect(): void { $fileResourceMock = $this->createMock(File::class); @@ -147,9 +132,7 @@ final class VimeoRendererTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function renderOutputWithAdditionalAttributes(): void { $fileResourceMock = $this->createMock(File::class); @@ -160,9 +143,7 @@ final class VimeoRendererTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function renderOutputWithDataAttributesForCustomization(): void { $fileResourceMock = $this->createMock(File::class); @@ -173,9 +154,7 @@ final class VimeoRendererTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function renderOutputWithCombinationOfDataAndAdditionalAttributes(): void { $fileResourceMock = $this->createMock(File::class); @@ -186,9 +165,7 @@ final class VimeoRendererTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function renderOutputWithCustomAllowIsCorrect(): void { $fileResourceMock = $this->createMock(File::class); @@ -199,9 +176,7 @@ final class VimeoRendererTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function renderOutputWithCustomAllowAndAutoplayIsCorrect(): void { $fileResourceMock = $this->createMock(File::class); @@ -212,9 +187,7 @@ final class VimeoRendererTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function renderOutputWithPrivateVimeoCodeIsCorrect(): void { $vimeoHelper = $this->getAccessibleMock(VimeoHelper::class, ['getOnlineMediaId'], ['vimeo']); @@ -232,9 +205,7 @@ final class VimeoRendererTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function renderOutputIsEscaped(): void { $vimeoHelper = $this->getAccessibleMock(VimeoHelper::class, ['getOnlineMediaId'], ['vimeo']); @@ -252,9 +223,7 @@ final class VimeoRendererTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function renderOutputWithApiIsCorrect(): void { $fileResourceMock = $this->createMock(File::class); @@ -265,9 +234,7 @@ final class VimeoRendererTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function renderOutputWithEnabledNoCookieIsCorrect(): void { $fileResourceMock = $this->createMock(File::class); @@ -278,9 +245,7 @@ final class VimeoRendererTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function renderOutputWithDisabledNoCookieIsCorrect(): void { $fileResourceMock = $this->createMock(File::class); diff --git a/typo3/sysext/core/Tests/Unit/Resource/Rendering/YouTubeRendererTest.php b/typo3/sysext/core/Tests/Unit/Resource/Rendering/YouTubeRendererTest.php index 453c3a429f1fed9d63396a72356b721d9d51f36b..15041ba470dab8a7ea964e334e338fd96975e121 100644 --- a/typo3/sysext/core/Tests/Unit/Resource/Rendering/YouTubeRendererTest.php +++ b/typo3/sysext/core/Tests/Unit/Resource/Rendering/YouTubeRendererTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Resource\Rendering; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Core\Resource\File; use TYPO3\CMS\Core\Resource\FileReference; @@ -44,17 +46,13 @@ final class YouTubeRendererTest extends UnitTestCase $this->subject->method('getOnlineMediaHelper')->willReturn($youTubeHelper); } - /** - * @test - */ + #[Test] public function getPriorityReturnsCorrectValue(): void { self::assertSame(1, $this->subject->getPriority()); } - /** - * @test - */ + #[Test] public function canRenderReturnsTrueOnCorrectFile(): void { $fileResourceMock1 = $this->createMock(File::class); @@ -68,9 +66,7 @@ final class YouTubeRendererTest extends UnitTestCase self::assertTrue($this->subject->canRender($fileResourceMock2)); } - /** - * @test - */ + #[Test] public function canRenderReturnsFalseOnCorrectFile(): void { $fileResourceMock = $this->createMock(File::class); @@ -79,9 +75,7 @@ final class YouTubeRendererTest extends UnitTestCase self::assertFalse($this->subject->canRender($fileResourceMock)); } - /** - * @test - */ + #[Test] public function renderOutputWithLoopIsCorrect(): void { $fileResourceMock = $this->createMock(File::class); @@ -92,9 +86,7 @@ final class YouTubeRendererTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function renderOutputWithAutoplayIsCorrect(): void { $fileResourceMock = $this->createMock(File::class); @@ -105,9 +97,7 @@ final class YouTubeRendererTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function renderOutputWithAutoplayFromFileReferenceIsCorrect(): void { $fileResourceMock = $this->createMock(File::class); @@ -122,9 +112,7 @@ final class YouTubeRendererTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function renderOutputWithAutoplayAndWithoutControlsIsCorrect(): void { $fileResourceMock = $this->createMock(File::class); @@ -205,10 +193,8 @@ final class YouTubeRendererTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider renderOutputWithControlsDataProvider - */ + #[DataProvider('renderOutputWithControlsDataProvider')] + #[Test] public function renderOutputWithDefaultControlsIsCorrect($expected, $options): void { $fileResourceMock = $this->createMock(File::class); @@ -219,9 +205,7 @@ final class YouTubeRendererTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function renderOutputWithRelatedVideosTurnedOffIsCorrect(): void { $fileResourceMock = $this->createMock(File::class); @@ -232,9 +216,7 @@ final class YouTubeRendererTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function renderOutputWithAdditionalAttributes(): void { $fileResourceMock = $this->createMock(File::class); @@ -245,9 +227,7 @@ final class YouTubeRendererTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function renderOutputWithDataAttributesForCustomization(): void { $fileResourceMock = $this->createMock(File::class); @@ -258,9 +238,7 @@ final class YouTubeRendererTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function renderOutputWithCombinationOfDataAndAdditionalAttributes(): void { $fileResourceMock = $this->createMock(File::class); @@ -271,9 +249,7 @@ final class YouTubeRendererTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function renderOutputWithDisabledNoCookieIsCorrect(): void { $fileResourceMock = $this->createMock(File::class); @@ -284,9 +260,7 @@ final class YouTubeRendererTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function renderOutputWithModestbrandingIsCorrect(): void { $fileResourceMock = $this->createMock(File::class); @@ -297,9 +271,7 @@ final class YouTubeRendererTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function renderOutputWithCustomAllowIsCorrect(): void { $fileResourceMock = $this->createMock(File::class); @@ -310,9 +282,7 @@ final class YouTubeRendererTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function renderOutputWithCustomAllowAndAutoplayIsCorrect(): void { $fileResourceMock = $this->createMock(File::class); @@ -323,9 +293,7 @@ final class YouTubeRendererTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function renderOutputIsEscaped(): void { $youtubeHelper = $this->getAccessibleMock(YouTubeHelper::class, ['getOnlineMediaId'], ['youtube']); diff --git a/typo3/sysext/core/Tests/Unit/Resource/Repository/AbstractRepositoryTest.php b/typo3/sysext/core/Tests/Unit/Resource/Repository/AbstractRepositoryTest.php index b134653779236d3b5a56cd9ba4ff9b2bf6270a96..628477b6333c8132e0cfb52df5f003f527136c55 100644 --- a/typo3/sysext/core/Tests/Unit/Resource/Repository/AbstractRepositoryTest.php +++ b/typo3/sysext/core/Tests/Unit/Resource/Repository/AbstractRepositoryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Resource\Repository; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Core\Database\Connection; use TYPO3\CMS\Core\Database\ConnectionPool; @@ -45,9 +46,7 @@ final class AbstractRepositoryTest extends UnitTestCase return $queryBuilderMock; } - /** - * @test - */ + #[Test] public function findByUidFailsIfUidIsString(): void { $this->expectException(\InvalidArgumentException::class); diff --git a/typo3/sysext/core/Tests/Unit/Resource/ResourceCompressorTest.php b/typo3/sysext/core/Tests/Unit/Resource/ResourceCompressorTest.php index 88ab6b19ab73395f535f5f13099810d22e2dcb56..ce9b3ccb23313b51891b1fe788e6fdd890dbcf26 100644 --- a/typo3/sysext/core/Tests/Unit/Resource/ResourceCompressorTest.php +++ b/typo3/sysext/core/Tests/Unit/Resource/ResourceCompressorTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Resource; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Resource\ResourceCompressor; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -62,10 +64,8 @@ final class ResourceCompressorTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider cssFixStatementsDataProvider - */ + #[DataProvider('cssFixStatementsDataProvider')] + #[Test] public function cssFixStatementsMovesStatementsToTopIfNeeded(string $input, string $expected): void { $subject = $this->getAccessibleMock(ResourceCompressor::class, ['compressCssFile', 'compressJsFile', 'createMergedCssFile', 'createMergedJsFile', 'getFilenameFromMainDir', 'checkBaseDirectory']); @@ -75,9 +75,7 @@ final class ResourceCompressorTest extends UnitTestCase self::assertEquals($expected, $resultWithReadableLinefeed); } - /** - * @test - */ + #[Test] public function compressedCssFileIsFlaggedToNotCompressAgain(): void { $fileName = 'fooFile.css'; @@ -101,9 +99,7 @@ final class ResourceCompressorTest extends UnitTestCase self::assertFalse($result[$compressedFileName]['compress']); } - /** - * @test - */ + #[Test] public function compressedJsFileIsFlaggedToNotCompressAgain(): void { $fileName = 'fooFile.js'; @@ -127,9 +123,7 @@ final class ResourceCompressorTest extends UnitTestCase self::assertFalse($result[$compressedFileName]['compress']); } - /** - * @test - */ + #[Test] public function concatenatedCssFileIsFlaggedToNotConcatenateAgain(): void { $fileName = 'fooFile.css'; @@ -153,9 +147,7 @@ final class ResourceCompressorTest extends UnitTestCase self::assertTrue($result[$concatenatedFileName]['excludeFromConcatenation']); } - /** - * @test - */ + #[Test] public function concatenatedCssFilesAreSeparatedByMediaType(): void { $allFileName = 'allFile.css'; @@ -197,9 +189,7 @@ final class ResourceCompressorTest extends UnitTestCase self::assertEquals('screen', $result['merged_' . $screenFileName1]['media']); } - /** - * @test - */ + #[Test] public function concatenatedCssFilesObeyForceOnTopOption(): void { $screen1FileName = 'screen1File.css'; @@ -233,9 +223,7 @@ final class ResourceCompressorTest extends UnitTestCase $subject->concatenateCssFiles($testFileFixture); } - /** - * @test - */ + #[Test] public function concatenatedCssFilesObeyExcludeFromConcatenation(): void { $screen1FileName = 'screen1File.css'; @@ -274,9 +262,7 @@ final class ResourceCompressorTest extends UnitTestCase self::assertEquals('screen', $result['merged_screen']['media']); } - /** - * @test - */ + #[Test] public function concatenateJsFileIsFlaggedToNotConcatenateAgain(): void { $fileName = 'fooFile.js'; @@ -406,10 +392,8 @@ final class ResourceCompressorTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider concatenateJsFileAsyncDataProvider - */ + #[DataProvider('concatenateJsFileAsyncDataProvider')] + #[Test] public function concatenateJsFileAddsAsyncPropertyIfAllFilesAreAsync(array $input, bool $expected): void { $concatenatedFileName = 'merged_foo.js'; @@ -445,10 +429,8 @@ final class ResourceCompressorTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider calcStatementsDataProvider - */ + #[DataProvider('calcStatementsDataProvider')] + #[Test] public function calcFunctionMustRetainWhitespaces(string $input, string $expected): void { $subject = $this->getAccessibleMock(ResourceCompressor::class, ['compressCssFile', 'compressJsFile', 'createMergedCssFile', 'createMergedJsFile', 'getFilenameFromMainDir', 'checkBaseDirectory']); @@ -457,9 +439,7 @@ final class ResourceCompressorTest extends UnitTestCase self::assertSame($expected, trim($result)); } - /** - * @test - */ + #[Test] public function nomoduleJavascriptIsNotConcatenated(): void { $fileName = 'fooFile.js'; @@ -479,9 +459,7 @@ final class ResourceCompressorTest extends UnitTestCase self::assertTrue($result[$fileName]['nomodule']); } - /** - * @test - */ + #[Test] public function deferJavascriptIsNotConcatenated(): void { $fileName = 'fooFile.js'; diff --git a/typo3/sysext/core/Tests/Unit/Resource/ResourceFactoryTest.php b/typo3/sysext/core/Tests/Unit/Resource/ResourceFactoryTest.php index cc06b65b88c606f067033f60379e5afcacf08edb..696fa8171454e2e82c81f978b6fb4fcff28a4ecb 100644 --- a/typo3/sysext/core/Tests/Unit/Resource/ResourceFactoryTest.php +++ b/typo3/sysext/core/Tests/Unit/Resource/ResourceFactoryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Resource; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Core\Environment; use TYPO3\CMS\Core\Resource\Exception\ResourceDoesNotExistException; use TYPO3\CMS\Core\Resource\ResourceFactory; @@ -55,9 +56,7 @@ final class ResourceFactoryTest extends UnitTestCase parent::tearDown(); } - /** - * @test - */ + #[Test] public function createFolderCreatesObjectWithCorrectArguments(): void { $mockedMount = $this->createMock(ResourceStorage::class); @@ -72,10 +71,7 @@ final class ResourceFactoryTest extends UnitTestCase /*********************************** * File Handling ***********************************/ - - /** - * @test - */ + #[Test] public function retrieveFileOrFolderObjectCallsGetFolderObjectFromCombinedIdentifierWithRelativePath(): void { $subject = $this->getAccessibleMock( @@ -92,9 +88,7 @@ final class ResourceFactoryTest extends UnitTestCase $subject->retrieveFileOrFolderObject('typo3'); } - /** - * @test - */ + #[Test] public function retrieveFileOrFolderObjectCallsGetFolderObjectFromCombinedIdentifierWithAbsolutePath(): void { $subject = $this->getAccessibleMock( @@ -111,9 +105,7 @@ final class ResourceFactoryTest extends UnitTestCase $subject->retrieveFileOrFolderObject(Environment::getPublicPath() . '/typo3'); } - /** - * @test - */ + #[Test] public function retrieveFileOrFolderObjectReturnsFileIfPathIsGiven(): void { $this->subject = $this->getAccessibleMock(ResourceFactory::class, ['getFileObjectFromCombinedIdentifier'], [], '', false); @@ -127,9 +119,7 @@ final class ResourceFactoryTest extends UnitTestCase $this->subject->retrieveFileOrFolderObject($filename); } - /** - * @test - */ + #[Test] public function retrieveFileOrFolderObjectReturnsFileFromPublicFolderWhenProjectRootIsNotPublic(): void { Environment::initialize( @@ -157,9 +147,7 @@ final class ResourceFactoryTest extends UnitTestCase $this->subject->retrieveFileOrFolderObject($filename); } - /** - * @test - */ + #[Test] public function retrieveFileOrFolderObjectReturnsFileFromPublicExtensionResourceWhenExtensionIsNotPublic(): void { Environment::initialize( @@ -181,9 +169,7 @@ final class ResourceFactoryTest extends UnitTestCase $this->subject->retrieveFileOrFolderObject('EXT:core/Resources/Public/Icons/Extension.svg'); } - /** - * @test - */ + #[Test] public function retrieveFileOrFolderObjectThrowsExceptionFromPrivateExtensionResourceWhenExtensionIsNotPublic(): void { Environment::initialize( diff --git a/typo3/sysext/core/Tests/Unit/Resource/Security/FileNameValidatorTest.php b/typo3/sysext/core/Tests/Unit/Resource/Security/FileNameValidatorTest.php index 2a7b156ab34cf0231cec4533ba24692aeddcedb5..58e7a1573936db9800ec653dece9b4e2a876a2d7 100644 --- a/typo3/sysext/core/Tests/Unit/Resource/Security/FileNameValidatorTest.php +++ b/typo3/sysext/core/Tests/Unit/Resource/Security/FileNameValidatorTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Resource\Security; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\TestCase; use TYPO3\CMS\Core\Resource\Security\FileNameValidator; use TYPO3\CMS\Core\Utility\StringUtility; @@ -35,10 +37,9 @@ final class FileNameValidatorTest extends TestCase /** * Tests whether validator detects files with nul character without file deny pattern. - * - * @test - * @dataProvider deniedFilesWithoutDenyPatternDataProvider */ + #[DataProvider('deniedFilesWithoutDenyPatternDataProvider')] + #[Test] public function verifyNulCharacterFilesAgainstPatternWithoutFileDenyPattern(string $deniedFile): void { $subject = new FileNameValidator(''); @@ -113,10 +114,9 @@ final class FileNameValidatorTest extends TestCase /** * Tests whether the basic FILE_DENY_PATTERN detects denied files. - * - * @test - * @dataProvider deniedFilesWithDefaultDenyPatternDataProvider */ + #[DataProvider('deniedFilesWithDefaultDenyPatternDataProvider')] + #[Test] public function isValidDetectsNotAllowedFiles(string $deniedFile): void { $subject = new FileNameValidator(); @@ -132,10 +132,8 @@ final class FileNameValidatorTest extends TestCase ]; } - /** - * @test - * @dataProvider insecureFilesDataProvider - */ + #[DataProvider('insecureFilesDataProvider')] + #[Test] public function isValidAcceptsNotAllowedFilesDueToInsecureSetting(string $fileName): void { $GLOBALS['TYPO3_CONF_VARS']['BE']['fileDenyPattern'] = '\\.phc$'; @@ -158,19 +156,16 @@ final class FileNameValidatorTest extends TestCase /** * Tests whether the basic file deny pattern accepts allowed files. - * - * @test - * @dataProvider allowedFilesDataProvider */ + #[DataProvider('allowedFilesDataProvider')] + #[Test] public function isValidAcceptAllowedFiles(string $allowedFile): void { $subject = new FileNameValidator(); self::assertTrue($subject->isValid($allowedFile)); } - /** - * @test - */ + #[Test] public function isCustomDenyPatternConfigured(): void { $subject = new FileNameValidator('nothing-really'); @@ -185,9 +180,7 @@ final class FileNameValidatorTest extends TestCase self::assertFalse($subject->customFileDenyPatternConfigured()); } - /** - * @test - */ + #[Test] public function customFileDenyPatternFindsMissingImportantParts(): void { $subject = new FileNameValidator('\\.php$|.php8$'); @@ -213,10 +206,9 @@ final class FileNameValidatorTest extends TestCase /** * Tests whether an accordant PHP extension is denied. - * - * @test - * @dataProvider phpExtensionDataProvider */ + #[DataProvider('phpExtensionDataProvider')] + #[Test] public function defaultFileDenyPatternMatchesPhpExtension(string $fileName): void { self::assertGreaterThan(0, preg_match('/' . FileNameValidator::DEFAULT_FILE_DENY_PATTERN . '/', $fileName), $fileName); @@ -224,10 +216,9 @@ final class FileNameValidatorTest extends TestCase /** * Tests whether an accordant PHP extension is denied. - * - * @test - * @dataProvider phpExtensionDataProvider */ + #[DataProvider('phpExtensionDataProvider')] + #[Test] public function invalidPhpExtensionIsDetected(string $fileName): void { $subject = new FileNameValidator(); diff --git a/typo3/sysext/core/Tests/Unit/Resource/Service/ConfigurationServiceTest.php b/typo3/sysext/core/Tests/Unit/Resource/Service/ConfigurationServiceTest.php index 96d4a07f2c22709da1e03a6cbb69bbfcd68163de..92f92ea941ad188a00f1393bce12f03dbb13763f 100644 --- a/typo3/sysext/core/Tests/Unit/Resource/Service/ConfigurationServiceTest.php +++ b/typo3/sysext/core/Tests/Unit/Resource/Service/ConfigurationServiceTest.php @@ -17,15 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Resource\Service; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Resource\ProcessedFile; use TYPO3\CMS\Core\Resource\Service\ConfigurationService; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ConfigurationServiceTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function serializeSubstitutesFileObject(): void { $fileMock = $this->createMock(ProcessedFile::class); diff --git a/typo3/sysext/core/Tests/Unit/Resource/Service/ExtractorServiceTest.php b/typo3/sysext/core/Tests/Unit/Resource/Service/ExtractorServiceTest.php index 95a25853861c49b74b4d0cde124ecf628c424cda..ebfadc1dd4c7d5fe3e7656bffa48f38c988c5ec1 100644 --- a/typo3/sysext/core/Tests/Unit/Resource/Service/ExtractorServiceTest.php +++ b/typo3/sysext/core/Tests/Unit/Resource/Service/ExtractorServiceTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Resource\Service; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Resource\File; use TYPO3\CMS\Core\Resource\Index\ExtractorInterface; use TYPO3\CMS\Core\Resource\Index\ExtractorRegistry; @@ -26,9 +28,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ExtractorServiceTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function isFileTypeSupportedByExtractorReturnsFalseForFileTypeTextAndExtractorLimitedToFileTypeImage(): void { $fileMock = $this->createMock(File::class); @@ -48,9 +48,7 @@ final class ExtractorServiceTest extends UnitTestCase self::assertFalse($result); } - /** - * @test - */ + #[Test] public function isFileTypeSupportedByExtractorReturnsTrueForFileTypeImageAndExtractorLimitedToFileTypeImage(): void { $fileMock = $this->createMock(File::class); @@ -70,9 +68,7 @@ final class ExtractorServiceTest extends UnitTestCase self::assertTrue($result); } - /** - * @test - */ + #[Test] public function isFileTypeSupportedByExtractorReturnsTrueForFileTypeTextAndExtractorHasNoFileTypeLimitation(): void { $fileMock = $this->createMock(File::class); @@ -92,9 +88,7 @@ final class ExtractorServiceTest extends UnitTestCase self::assertTrue($result); } - /** - * @test - */ + #[Test] public function extractMetaDataComposesDataByAvailableExtractors(): void { $storageMock = $this->createMock(ResourceStorage::class); @@ -207,10 +201,8 @@ final class ExtractorServiceTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider extractMetaDataComposesDataByAvailableExtractorsWithDifferentPrioritiesDataProvider - */ + #[DataProvider('extractMetaDataComposesDataByAvailableExtractorsWithDifferentPrioritiesDataProvider')] + #[Test] public function extractMetaDataComposesDataByAvailableExtractorsWithDifferentPriorities( int $extractorOneDataPriority, int $extractorOneExecutionPriority, diff --git a/typo3/sysext/core/Tests/Unit/Resource/StorageRepositoryTest.php b/typo3/sysext/core/Tests/Unit/Resource/StorageRepositoryTest.php index fe1173231d49ab58c8eb231f8c830fc37abdb8f1..c6ae2d299246762f89e6439717d9bd1147b6b071 100644 --- a/typo3/sysext/core/Tests/Unit/Resource/StorageRepositoryTest.php +++ b/typo3/sysext/core/Tests/Unit/Resource/StorageRepositoryTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Resource; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\EventDispatcher\NoopEventDispatcher; use TYPO3\CMS\Core\Resource\Driver\DriverInterface; use TYPO3\CMS\Core\Resource\Driver\DriverRegistry; @@ -26,9 +28,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class StorageRepositoryTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getDriverObjectAcceptsDriverClassName(): void { $mockedDriver = $this->createMock(DriverInterface::class); @@ -94,10 +94,8 @@ final class StorageRepositoryTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider storageDetectionDataProvider - */ + #[DataProvider('storageDetectionDataProvider')] + #[Test] public function findBestMatchingStorageByLocalPathReturnsDefaultStorageIfNoMatchIsFound(array $storageConfiguration, string $path, int $expectedStorageId): void { $subject = new StorageRepository( diff --git a/typo3/sysext/core/Tests/Unit/Resource/TextExtraction/PlainTextExtractorTest.php b/typo3/sysext/core/Tests/Unit/Resource/TextExtraction/PlainTextExtractorTest.php index 86faf6e4e3d841b1874f104ac544d6acd0932755..da956524eefb3e6a6d59943658554fc44f7f0140 100644 --- a/typo3/sysext/core/Tests/Unit/Resource/TextExtraction/PlainTextExtractorTest.php +++ b/typo3/sysext/core/Tests/Unit/Resource/TextExtraction/PlainTextExtractorTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Resource\TextExtraction; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Resource\File; use TYPO3\CMS\Core\Resource\TextExtraction\PlainTextExtractor; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -26,9 +27,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; */ final class PlainTextExtractorTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function canExtractTextReturnsTrueForPlainTextFiles(): void { $plainTextExtractor = new PlainTextExtractor(); @@ -39,9 +38,7 @@ final class PlainTextExtractorTest extends UnitTestCase self::assertTrue($plainTextExtractor->canExtractText($fileResourceMock)); } - /** - * @test - */ + #[Test] public function canExtractTextReturnsFalseForNonPlainTextFiles(): void { $plainTextExtractor = new PlainTextExtractor(); diff --git a/typo3/sysext/core/Tests/Unit/Resource/TextExtraction/TextExtractorRegistryTest.php b/typo3/sysext/core/Tests/Unit/Resource/TextExtraction/TextExtractorRegistryTest.php index ee9ddd705cf5d7b22b89cb73e85f656cd32e8043..e6e42a83eed7a5273bb3244e23fb50c290f38fe7 100644 --- a/typo3/sysext/core/Tests/Unit/Resource/TextExtraction/TextExtractorRegistryTest.php +++ b/typo3/sysext/core/Tests/Unit/Resource/TextExtraction/TextExtractorRegistryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Resource\TextExtraction; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Core\Resource\TextExtraction\TextExtractorInterface; use TYPO3\CMS\Core\Resource\TextExtraction\TextExtractorRegistry; @@ -46,9 +47,7 @@ final class TextExtractorRegistryTest extends UnitTestCase return $textExtractorRegistry; } - /** - * @test - */ + #[Test] public function registeredTextExtractorClassCanBeRetrieved(): void { $textExtractorClass = StringUtility::getUniqueId('myTextExtractor'); @@ -62,9 +61,7 @@ final class TextExtractorRegistryTest extends UnitTestCase self::assertContains($textExtractorInstance, $textExtractorRegistry->getTextExtractorInstances()); } - /** - * @test - */ + #[Test] public function registerTextExtractorThrowsExceptionIfClassDoesNotExist(): void { $this->expectException(\InvalidArgumentException::class); @@ -74,9 +71,7 @@ final class TextExtractorRegistryTest extends UnitTestCase $textExtractorRegistry->registerTextExtractor(StringUtility::getUniqueId()); } - /** - * @test - */ + #[Test] public function registerTextExtractorThrowsExceptionIfClassDoesNotImplementRightInterface(): void { $this->expectException(\InvalidArgumentException::class); diff --git a/typo3/sysext/core/Tests/Unit/Resource/Utility/FileExtensionFilterTest.php b/typo3/sysext/core/Tests/Unit/Resource/Utility/FileExtensionFilterTest.php index 39f51ba05f24a981335358e20de02fb60e5d1251..eb040356fc22d589cd673e9daeff7f5e89207713 100644 --- a/typo3/sysext/core/Tests/Unit/Resource/Utility/FileExtensionFilterTest.php +++ b/typo3/sysext/core/Tests/Unit/Resource/Utility/FileExtensionFilterTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Resource\Utility; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\DataHandling\DataHandler; use TYPO3\CMS\Core\Resource\Filter\FileExtensionFilter; use TYPO3\CMS\Core\Resource\ResourceFactory; @@ -27,9 +29,7 @@ final class FileExtensionFilterTest extends UnitTestCase { protected bool $resetSingletonInstances = true; - /** - * @test - */ + #[Test] public function areInlineChildrenFilteredWithInvalidParameters(): void { $dataHandlerMock = $this->createMock(DataHandler::class); @@ -61,10 +61,8 @@ final class FileExtensionFilterTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider extensionFilterIgnoresCaseInAllowedExtensionCheckDataProvider - */ + #[DataProvider('extensionFilterIgnoresCaseInAllowedExtensionCheckDataProvider')] + #[Test] public function extensionFilterIgnoresCaseInAllowedExtensionCheck( string $fileExtension, string $allowedExtensions, diff --git a/typo3/sysext/core/Tests/Unit/Routing/Aspect/AspectFactoryTest.php b/typo3/sysext/core/Tests/Unit/Routing/Aspect/AspectFactoryTest.php index f917f24728a609bfdb99f947116a514aff6dbdc4..240865fb34f156669dd3217ef7d16900107ded57 100644 --- a/typo3/sysext/core/Tests/Unit/Routing/Aspect/AspectFactoryTest.php +++ b/typo3/sysext/core/Tests/Unit/Routing/Aspect/AspectFactoryTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Routing\Aspect; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Context\Context; use TYPO3\CMS\Core\Routing\Aspect\AspectFactory; use TYPO3\CMS\Core\Routing\Aspect\AspectInterface; @@ -36,9 +38,7 @@ final class AspectFactoryTest extends UnitTestCase ]; } - /** - * @test - */ + #[Test] public function createAspectsThrowsExceptionOnMissingType(): void { $contextMock = $this->createMock(Context::class); @@ -52,9 +52,7 @@ final class AspectFactoryTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function createAspectsThrowsExceptionOnUnregisteredType(): void { $contextMock = $this->createMock(Context::class); @@ -130,10 +128,9 @@ final class AspectFactoryTest extends UnitTestCase /** * @param string[] $expectation - * - * @test - * @dataProvider aspectsDataProvider */ + #[DataProvider('aspectsDataProvider')] + #[Test] public function aspectsAreCreatedAndSorted(array $settings, array $expectation): void { $contextMock = $this->createMock(Context::class); diff --git a/typo3/sysext/core/Tests/Unit/Routing/Enhancer/VariableProcessorTest.php b/typo3/sysext/core/Tests/Unit/Routing/Enhancer/VariableProcessorTest.php index 3c17b33eab85a203e93c6e78c224e19f0862e221..ed86ece4be6180ba8c7521d141e632379dd48a63 100644 --- a/typo3/sysext/core/Tests/Unit/Routing/Enhancer/VariableProcessorTest.php +++ b/typo3/sysext/core/Tests/Unit/Routing/Enhancer/VariableProcessorTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Routing\Enhancer; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Routing\Enhancer\VariableProcessor; use TYPO3\CMS\Core\Routing\Enhancer\VariableProcessorCache; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -122,10 +124,8 @@ final class VariableProcessorTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider routePathDataProvider - */ + #[DataProvider('routePathDataProvider')] + #[Test] public function isRoutePathProcessed(?string $namespace, array $arguments, string $inflatedRoutePath, string $deflatedRoutePath): void { $subject = new VariableProcessor(new VariableProcessorCache()); @@ -161,10 +161,8 @@ final class VariableProcessorTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider parametersDataProvider - */ + #[DataProvider('parametersDataProvider')] + #[Test] public function parametersAreProcessed(array $arguments, array $deflatedParameters): void { $subject = new VariableProcessor(new VariableProcessorCache()); @@ -237,10 +235,8 @@ final class VariableProcessorTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider namespaceParametersDataProvider - */ + #[DataProvider('namespaceParametersDataProvider')] + #[Test] public function namespaceParametersAreProcessed(string $namespace, array $arguments, array $deflatedParameters): void { $subject = new VariableProcessor(new VariableProcessorCache()); @@ -325,10 +321,8 @@ final class VariableProcessorTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider keysDataProvider - */ + #[DataProvider('keysDataProvider')] + #[Test] public function keysAreDeflated(?string $namespace, array $arguments, array $deflatedKeys): void { $subject = new VariableProcessor(new VariableProcessorCache()); @@ -343,10 +337,8 @@ final class VariableProcessorTest extends UnitTestCase ); } - /** - * @test - * @dataProvider specialKeysDataProvider - */ + #[DataProvider('specialKeysDataProvider')] + #[Test] public function specialKeysAreNotInflatedWithoutBeingDeflated(?string $namespace, array $arguments, array $deflatedKeys): void { $this->expectException(\OutOfRangeException::class); diff --git a/typo3/sysext/core/Tests/Unit/Routing/PageRouterTest.php b/typo3/sysext/core/Tests/Unit/Routing/PageRouterTest.php index 85c63359d3a7c6670423f57ece929a5feec3b525..f3f4b9a5464c1ccdaf46b63836308576a33712d7 100644 --- a/typo3/sysext/core/Tests/Unit/Routing/PageRouterTest.php +++ b/typo3/sysext/core/Tests/Unit/Routing/PageRouterTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Routing; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Http\ServerRequest; use TYPO3\CMS\Core\Routing\BackendEntryPointResolver; use TYPO3\CMS\Core\Routing\PageArguments; @@ -40,9 +41,7 @@ final class PageRouterTest extends UnitTestCase parent::setUp(); // TODO: Change the autogenerated stub } - /** - * @test - */ + #[Test] public function matchRequestThrowsExceptionIfNoPreviousResultGiven(): void { $this->expectException(RouteNotFoundException::class); @@ -53,9 +52,7 @@ final class PageRouterTest extends UnitTestCase $subject->matchRequest($request); } - /** - * @test - */ + #[Test] public function properSiteConfigurationFindsRoute(): void { $incomingUrl = 'https://king.com/lotus-flower/en/mr-magpie/bloom'; @@ -86,8 +83,8 @@ final class PageRouterTest extends UnitTestCase /** * Let's see if the slug is "/blabla" and the base does not have a trailing slash ("/en") - * @test */ + #[Test] public function properSiteConfigurationWithoutTrailingSlashFindsRoute(): void { $incomingUrl = 'https://king.com/lotus-flower/en/mr-magpie/bloom'; diff --git a/typo3/sysext/core/Tests/Unit/Routing/RouteSorterTest.php b/typo3/sysext/core/Tests/Unit/Routing/RouteSorterTest.php index 2973573c4c0608f2f7bed066fea097ba1ebde97e..80f9bac8b0d75169981c4745105a92fcce89a7ed 100644 --- a/typo3/sysext/core/Tests/Unit/Routing/RouteSorterTest.php +++ b/typo3/sysext/core/Tests/Unit/Routing/RouteSorterTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Routing; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Routing\Route; use TYPO3\CMS\Core\Routing\RouteSorter; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -238,10 +240,9 @@ final class RouteSorterTest extends UnitTestCase * @param Route[] $givenRoutes * @param array<string, string> $givenParameters * @param string[] $expectation - * - * @test - * @dataProvider routesAreSortedForGenerationDataProvider */ + #[DataProvider('routesAreSortedForGenerationDataProvider')] + #[Test] public function routesAreSortedForGeneration(array $givenRoutes, array $givenParameters, array $expectation): void { $sorter = (new RouteSorter()) diff --git a/typo3/sysext/core/Tests/Unit/Routing/SiteMatcherTest.php b/typo3/sysext/core/Tests/Unit/Routing/SiteMatcherTest.php index 8508473e7c6f30775c7101796de09d8066b13209..27bbe9c63a089d396db131194e0f1c9278f83c71 100644 --- a/typo3/sysext/core/Tests/Unit/Routing/SiteMatcherTest.php +++ b/typo3/sysext/core/Tests/Unit/Routing/SiteMatcherTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Routing; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Core\Configuration\Features; use TYPO3\CMS\Core\Configuration\SiteConfiguration; @@ -31,9 +33,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class SiteMatcherTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function fullUrlMatchesSpecificLanguageWithSubdomainsAndDomainSuffixes(): void { $site = new Site('main', 1, [ @@ -124,8 +124,8 @@ final class SiteMatcherTest extends UnitTestCase /** * Contains a FQDN as base for the site - * @test */ + #[Test] public function fullUrlMatchesSpecificLanguageWithSubdomainsAndPathSuffixes(): void { $site = new Site('main', 1, [ @@ -215,10 +215,8 @@ final class SiteMatcherTest extends UnitTestCase yield ['https://example.org/daother', '1-main', 'en-US']; } - /** - * @test - * @dataProvider bestMatchingUrlIsUsedDataProvider - */ + #[DataProvider('bestMatchingUrlIsUsedDataProvider')] + #[Test] public function bestMatchingUrlIsUsed(string $requestUri, string $expectedSite, string $expectedLocale): void { $mainSite = new Site('1-main', 31, [ diff --git a/typo3/sysext/core/Tests/Unit/Schema/Struct/SelectItemTest.php b/typo3/sysext/core/Tests/Unit/Schema/Struct/SelectItemTest.php index e464f9fb6669841be6c55b708a5a6a69aa18a5e1..31a441744dc4e8df783f836f3faa75241b176226 100644 --- a/typo3/sysext/core/Tests/Unit/Schema/Struct/SelectItemTest.php +++ b/typo3/sysext/core/Tests/Unit/Schema/Struct/SelectItemTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Schema\Struct; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Schema\Struct\SelectItem; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -61,10 +63,8 @@ final class SelectItemTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider selectionItemCanBeConstructedFromTcaItemDataProvider - */ + #[DataProvider('selectionItemCanBeConstructedFromTcaItemDataProvider')] + #[Test] public function selectionItemCanBeConstructedFromTcaItem(array $item, string $type, array $expected): void { $selectionItem = SelectItem::fromTcaItemArray($item, $type); @@ -72,9 +72,7 @@ final class SelectItemTest extends UnitTestCase self::assertSame($expected, $selectionItem->toArray()); } - /** - * @test - */ + #[Test] public function dividerValueCanBeIdentified(): void { $item = ['label' => 'foo', 'value' => '--div--']; @@ -96,10 +94,8 @@ final class SelectItemTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider notSetValuesCanBeIdentifiedDataProvider - */ + #[DataProvider('notSetValuesCanBeIdentifiedDataProvider')] + #[Test] public function notSetValuesCanBeIdentified(array $item, array $expected): void { $selectionItem = SelectItem::fromTcaItemArray($item); @@ -109,9 +105,7 @@ final class SelectItemTest extends UnitTestCase self::assertSame($expected['description'], $selectionItem->hasDescription()); } - /** - * @test - */ + #[Test] public function canBeAccessedAsAnArray(): void { $selectionItem = new SelectItem( @@ -130,9 +124,7 @@ final class SelectItemTest extends UnitTestCase self::assertSame('my description', $selectionItem['description']); } - /** - * @test - */ + #[Test] public function canBeAccessedAsAnArrayWithLegacyIndexedKeys(): void { $selectionItem = new SelectItem( @@ -151,9 +143,7 @@ final class SelectItemTest extends UnitTestCase self::assertSame('my description', $selectionItem[4]); } - /** - * @test - */ + #[Test] public function canBeManipulatedLikeAnArray(): void { $selectionItem = new SelectItem( @@ -175,9 +165,7 @@ final class SelectItemTest extends UnitTestCase self::assertSame('my description', $selectionItem->getDescription()); } - /** - * @test - */ + #[Test] public function canBeManipulatedLikeAnArrayWithLegacyIndexedKeys(): void { $selectionItem = new SelectItem( @@ -199,9 +187,7 @@ final class SelectItemTest extends UnitTestCase self::assertSame('my description', $selectionItem->getDescription()); } - /** - * @test - */ + #[Test] public function valuesCanBeUnsetWithUnsetFunction(): void { $selectionItem = new SelectItem( @@ -222,9 +208,7 @@ final class SelectItemTest extends UnitTestCase self::assertNull($selectionItem->getDescription()); } - /** - * @test - */ + #[Test] public function valuesCanBeUnsetWithUnsetFunctionWithLegacyIndexedKeys(): void { $selectionItem = new SelectItem( @@ -245,9 +229,7 @@ final class SelectItemTest extends UnitTestCase self::assertNull($selectionItem->getDescription()); } - /** - * @test - */ + #[Test] public function arrayOffsetsCanBeTestedWithIssetFunction(): void { $selectionItem = new SelectItem( @@ -263,9 +245,7 @@ final class SelectItemTest extends UnitTestCase self::assertFalse(isset($selectionItem['description'])); } - /** - * @test - */ + #[Test] public function arrayOffsetsCanBeTestedWithIssetFunctionWithLegacyIndexedKeys(): void { $selectionItem = new SelectItem( @@ -281,9 +261,7 @@ final class SelectItemTest extends UnitTestCase self::assertFalse(isset($selectionItem[4])); } - /** - * @test - */ + #[Test] public function canSetCustomValueInArrayLikeFashion(): void { $selectionItem = new SelectItem( @@ -298,9 +276,7 @@ final class SelectItemTest extends UnitTestCase self::assertSame('customValue', $selectionItem['custom']); } - /** - * @test - */ + #[Test] public function canUnsetCustomValueInArrayLikeFashion(): void { $selectionItem = new SelectItem( diff --git a/typo3/sysext/core/Tests/Unit/Security/ContentSecurityPolicy/ConsumableNonceTest.php b/typo3/sysext/core/Tests/Unit/Security/ContentSecurityPolicy/ConsumableNonceTest.php index f7452238823901e2aa69643638e848323fd9275f..e5ba5dc7ea505eeca8ad39d2691a1121a62219fc 100644 --- a/typo3/sysext/core/Tests/Unit/Security/ContentSecurityPolicy/ConsumableNonceTest.php +++ b/typo3/sysext/core/Tests/Unit/Security/ContentSecurityPolicy/ConsumableNonceTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Security\ContentSecurityPolicy; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Security\ContentSecurityPolicy\ConsumableNonce; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -29,10 +31,8 @@ final class ConsumableNonceTest extends UnitTestCase yield 'consumed twice' => [2]; } - /** - * @test - * @dataProvider consumptionIsRecognizedDataProvider - */ + #[DataProvider('consumptionIsRecognizedDataProvider')] + #[Test] public function consumptionIsRecognized(int $consumption): void { $subject = new ConsumableNonce(); @@ -42,9 +42,7 @@ final class ConsumableNonceTest extends UnitTestCase self::assertCount($consumption, $subject); } - /** - * @test - */ + #[Test] public function usesExistingValue(): void { $value = str_repeat('a', 40); diff --git a/typo3/sysext/core/Tests/Unit/Security/ContentSecurityPolicy/Reporting/ReportTest.php b/typo3/sysext/core/Tests/Unit/Security/ContentSecurityPolicy/Reporting/ReportTest.php index 3d2bc27428cb05a4f34be45456629cf5cbfe9667..17696f605a6fb245747c178efa4c2df7e2493e42 100644 --- a/typo3/sysext/core/Tests/Unit/Security/ContentSecurityPolicy/Reporting/ReportTest.php +++ b/typo3/sysext/core/Tests/Unit/Security/ContentSecurityPolicy/Reporting/ReportTest.php @@ -17,15 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Security\ContentSecurityPolicy\Reporting; +use PHPUnit\Framework\Attributes\Test; use Symfony\Component\Uid\UuidV4; use TYPO3\CMS\Core\Security\ContentSecurityPolicy\Reporting\Report; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ReportTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function effectiveDirectiveIsTakenFromViolatedDirective(): void { $report = Report::fromArray([ @@ -40,9 +39,7 @@ final class ReportTest extends UnitTestCase self::assertSame('script-src', $report->details['effective-directive']); } - /** - * @test - */ + #[Test] public function toArrayUsesNativeDetailKeys(): void { $details = [ @@ -58,9 +55,7 @@ final class ReportTest extends UnitTestCase self::assertSame($details, json_decode($report->toArray()['details'], true)); } - /** - * @test - */ + #[Test] public function jsonEncodeUsesCamelCasedDetailKeys(): void { $details = [ diff --git a/typo3/sysext/core/Tests/Unit/Security/ContentSecurityPolicy/ScopeTest.php b/typo3/sysext/core/Tests/Unit/Security/ContentSecurityPolicy/ScopeTest.php index 5eab7f36399d1db3edb7cdda550a5ae63c650ca3..c24585c6116d1197801b6441c65c598affbc0e1a 100644 --- a/typo3/sysext/core/Tests/Unit/Security/ContentSecurityPolicy/ScopeTest.php +++ b/typo3/sysext/core/Tests/Unit/Security/ContentSecurityPolicy/ScopeTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Security\ContentSecurityPolicy; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Http\ApplicationType; use TYPO3\CMS\Core\Security\ContentSecurityPolicy\Scope; use TYPO3\CMS\Core\Site\Entity\NullSite; @@ -32,27 +34,21 @@ final class ScopeTest extends UnitTestCase Scope::reset(); } - /** - * @test - */ + #[Test] public function backendSingletonIsCreated(): void { $scope = Scope::backend(); self::assertSame($scope, Scope::backend()); } - /** - * @test - */ + #[Test] public function frontendSingletonIsCreated(): void { $scope = Scope::frontend(); self::assertSame($scope, Scope::frontend()); } - /** - * @test - */ + #[Test] public function frontendSiteIsCreated(): void { $site = new Site('my-site', 1, []); @@ -66,27 +62,21 @@ final class ScopeTest extends UnitTestCase yield [new NullSite()]; } - /** - * @test - * @dataProvider frontendSingletonIsUsedForInvalidSiteDataProvider - */ + #[DataProvider('frontendSingletonIsUsedForInvalidSiteDataProvider')] + #[Test] public function frontendSingletonIsUsedForInvalidSite(?SiteInterface $site): void { self::assertSame(Scope::frontend(), Scope::frontendSite($site)); } - /** - * @test - */ + #[Test] public function frontendSiteIdentifierSingletonIsCreated(): void { $scope = Scope::frontendSiteIdentifier('my-site'); self::assertSame($scope, Scope::frontendSiteIdentifier('my-site')); } - /** - * @test - */ + #[Test] public function scopeIsCreatedFromString(): void { self::assertSame( diff --git a/typo3/sysext/core/Tests/Unit/Security/ContentSecurityPolicy/SourceCollectionTest.php b/typo3/sysext/core/Tests/Unit/Security/ContentSecurityPolicy/SourceCollectionTest.php index 13df4aad1bbb709786588b90938f49bd304edb19..3d765dc5ae504f7b25b86f4e508e10ee598f4725 100644 --- a/typo3/sysext/core/Tests/Unit/Security/ContentSecurityPolicy/SourceCollectionTest.php +++ b/typo3/sysext/core/Tests/Unit/Security/ContentSecurityPolicy/SourceCollectionTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Security\ContentSecurityPolicy; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Security\ContentSecurityPolicy\SourceCollection; use TYPO3\CMS\Core\Security\ContentSecurityPolicy\SourceScheme; use TYPO3\CMS\Core\Security\ContentSecurityPolicy\UriValue; @@ -24,9 +25,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class SourceCollectionTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function canExtend(): void { $subject = new SourceCollection(); @@ -39,9 +38,7 @@ final class SourceCollectionTest extends UnitTestCase self::assertSame([$schemeItem, $firstUriItem], $subject->sources); } - /** - * @test - */ + #[Test] public function canReduce(): void { $subject = new SourceCollection(); diff --git a/typo3/sysext/core/Tests/Unit/Security/ContentSecurityPolicy/UriValueTest.php b/typo3/sysext/core/Tests/Unit/Security/ContentSecurityPolicy/UriValueTest.php index a9382743fbd001428e93208cffb4689cbdafdfff..cf7a8b716635a00dfb04b6b7e97103b06a644f7b 100644 --- a/typo3/sysext/core/Tests/Unit/Security/ContentSecurityPolicy/UriValueTest.php +++ b/typo3/sysext/core/Tests/Unit/Security/ContentSecurityPolicy/UriValueTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Security\ContentSecurityPolicy; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Security\ContentSecurityPolicy\UriValue; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -48,10 +50,8 @@ final class UriValueTest extends UnitTestCase yield ['*.typo3.org?key=value', '/%2A.typo3.org?key=value']; } - /** - * @test - * @dataProvider uriIsParsedAndSerializedDataProvider - */ + #[DataProvider('uriIsParsedAndSerializedDataProvider')] + #[Test] public function uriIsParsedAndSerialized(string $value, string $expectation = null): void { $uri = new UriValue($value); @@ -68,10 +68,8 @@ final class UriValueTest extends UnitTestCase yield ['*.example.com', '*.example.com', true]; } - /** - * @test - * @dataProvider urisAreEqualDataProvider - */ + #[DataProvider('urisAreEqualDataProvider')] + #[Test] public function urisAreEqual(string $a, string $b, bool $expectation): void { self::assertSame($expectation, (new UriValue($a))->equals(new UriValue($b))); @@ -99,10 +97,8 @@ final class UriValueTest extends UnitTestCase yield ['*.example.com', '*', false]; } - /** - * @test - * @dataProvider uriIsCoveredDataProvider - */ + #[DataProvider('uriIsCoveredDataProvider')] + #[Test] public function uriIsCovered(string $a, string $b, bool $expectation): void { self::assertSame($expectation, (new UriValue($a))->covers(new UriValue($b))); diff --git a/typo3/sysext/core/Tests/Unit/Security/NoncePoolTest.php b/typo3/sysext/core/Tests/Unit/Security/NoncePoolTest.php index cb98690fdea4385b491bb4bdf2ff9320baee1a8e..c0741dd07133c0973dda130e0ae0baeb3347ab52 100644 --- a/typo3/sysext/core/Tests/Unit/Security/NoncePoolTest.php +++ b/typo3/sysext/core/Tests/Unit/Security/NoncePoolTest.php @@ -17,15 +17,15 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Security; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Security\Nonce; use TYPO3\CMS\Core\Security\NoncePool; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class NoncePoolTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function instantiationReflectsState(): void { $items = self::createItems(); @@ -39,9 +39,7 @@ final class NoncePoolTest extends UnitTestCase self::assertSame([], $pool->getEmittableNonces()); } - /** - * @test - */ + #[Test] public function itemsAreMerged(): void { $itemsA = self::createItems(); @@ -61,9 +59,7 @@ final class NoncePoolTest extends UnitTestCase self::assertSame([], $poolA->getEmittableNonces()); } - /** - * @test - */ + #[Test] public function provideSigningSecretDoesNotUseReceivedNonce(): void { $items = self::createItems(); @@ -98,10 +94,8 @@ final class NoncePoolTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider itemsArePurgedDataProvider - */ + #[DataProvider('itemsArePurgedDataProvider')] + #[Test] public function itemsArePurged(array $options, array $items, array $validItems, array $revocableNames): void { $pool = (new NoncePool($items, $options))->purge(); diff --git a/typo3/sysext/core/Tests/Unit/Security/NonceTest.php b/typo3/sysext/core/Tests/Unit/Security/NonceTest.php index dffe56eb61221a337c54915352169e835b13f5df..523b31874f6d09a0c2039ec62f7c72d5e88e4b3a 100644 --- a/typo3/sysext/core/Tests/Unit/Security/NonceTest.php +++ b/typo3/sysext/core/Tests/Unit/Security/NonceTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Security; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Security\Nonce; use TYPO3\CMS\Core\Security\NonceException; use TYPO3\CMS\Core\Utility\StringUtility; @@ -32,10 +34,8 @@ final class NonceTest extends UnitTestCase yield [60, 60]; } - /** - * @test - * @dataProvider nonceIsCreatedDataProvider - */ + #[DataProvider('nonceIsCreatedDataProvider')] + #[Test] public function isCreated(int $length, int $expectedLength): void { $nonce = Nonce::create($length); @@ -43,9 +43,7 @@ final class NonceTest extends UnitTestCase self::assertSame($nonce->b64, StringUtility::base64urlEncode($nonce->binary)); } - /** - * @test - */ + #[Test] public function isCreatedWithProperties(): void { $binary = random_bytes(40); @@ -55,9 +53,7 @@ final class NonceTest extends UnitTestCase self::assertEquals($time, $nonce->time); } - /** - * @test - */ + #[Test] public function isEncodedAndDecoded(): void { $nonce = Nonce::create(); @@ -65,9 +61,7 @@ final class NonceTest extends UnitTestCase self::assertEquals($recodedNonce, $nonce); } - /** - * @test - */ + #[Test] public function invalidJwtThrowsException(): void { $this->expectException(NonceException::class); diff --git a/typo3/sysext/core/Tests/Unit/Security/RequestTokenTest.php b/typo3/sysext/core/Tests/Unit/Security/RequestTokenTest.php index 79aa82c36001eaa5ff6932b7624b0a134158aa92..f0c0e6c4f1b58947572efd313882f9b1badeee2e 100644 --- a/typo3/sysext/core/Tests/Unit/Security/RequestTokenTest.php +++ b/typo3/sysext/core/Tests/Unit/Security/RequestTokenTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Security; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Security\Nonce; use TYPO3\CMS\Core\Security\NoncePool; use TYPO3\CMS\Core\Security\RequestToken; @@ -27,9 +29,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class RequestTokenTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function isCreated(): void { $scope = $this->createRandomString(); @@ -40,9 +40,7 @@ final class RequestTokenTest extends UnitTestCase self::assertSame([], $token->params); } - /** - * @test - */ + #[Test] public function isCreatedWithProperties(): void { $scope = $this->createRandomString(); @@ -54,9 +52,7 @@ final class RequestTokenTest extends UnitTestCase self::assertSame($params, $token->params); } - /** - * @test - */ + #[Test] public function paramsAreOverriddenInNewInstance(): void { $scope = $this->createRandomString(); @@ -67,9 +63,7 @@ final class RequestTokenTest extends UnitTestCase self::assertSame($params, $modifiedToken->params); } - /** - * @test - */ + #[Test] public function paramsAreMergedInNewInstance(): void { $scope = $this->createRandomString(); @@ -89,10 +83,8 @@ final class RequestTokenTest extends UnitTestCase yield 'secret to be resolved' => [$nonce, new SigningSecretResolver(['nonce' => $pool])]; } - /** - * @test - * @dataProvider isEncodedAndDecodedDataProvider - */ + #[DataProvider('isEncodedAndDecodedDataProvider')] + #[Test] public function isEncodedAndDecoded(Nonce $nonce, SigningSecretInterface|SigningSecretResolver $secret): void { $scope = $this->createRandomString(); @@ -121,10 +113,8 @@ final class RequestTokenTest extends UnitTestCase yield 'use resolver (bogus)' => ['no.jwt.value', new SigningSecretResolver(['nonce' => $pool]), 1664202134]; } - /** - * @test - * @dataProvider invalidJwtThrowsExceptionDataProvider - */ + #[DataProvider('invalidJwtThrowsExceptionDataProvider')] + #[Test] public function invalidJwtThrowsException(string $jwt, SigningSecretInterface|SigningSecretResolver $secret, int $exceptionCode): void { $this->expectException(RequestTokenException::class); diff --git a/typo3/sysext/core/Tests/Unit/Serializer/Typo3XmlParserTest.php b/typo3/sysext/core/Tests/Unit/Serializer/Typo3XmlParserTest.php index 460f8ce513b1c0fd2b20d491a8ab781360da5124..3d90e2b6e15a9740a5dd0a0a0ea35cb2cbfa514e 100644 --- a/typo3/sysext/core/Tests/Unit/Serializer/Typo3XmlParserTest.php +++ b/typo3/sysext/core/Tests/Unit/Serializer/Typo3XmlParserTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Serializer; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Exception; use TYPO3\CMS\Core\Serializer\Typo3XmlParser; use TYPO3\CMS\Core\Serializer\Typo3XmlParserOptions; @@ -44,10 +46,8 @@ final class Typo3XmlParserTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider decodeReturnsStringOrArrayDataProvider - */ + #[DataProvider('decodeReturnsStringOrArrayDataProvider')] + #[Test] public function decodeReturnsStringOrArray(string $data, mixed $expected): void { $xmlDecoder = new Typo3XmlParser(); @@ -73,10 +73,8 @@ final class Typo3XmlParserTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider decodeHandlesCommentsDataProvider - */ + #[DataProvider('decodeHandlesCommentsDataProvider')] + #[Test] public function decodeHandlesComments(array $config, array $expected): void { $xmlDecoder = new Typo3XmlParser(); @@ -87,9 +85,7 @@ final class Typo3XmlParserTest extends UnitTestCase self::assertEquals($expected, $result); } - /** - * @test - */ + #[Test] public function decodeIgnoresNodeAttributes(): void { $xmlDecoder = new Typo3XmlParser(); @@ -156,10 +152,10 @@ final class Typo3XmlParserTest extends UnitTestCase } /** - * @test - * @dataProvider decodeHandlesWhitespacesDataProvider * @param string $input */ + #[DataProvider('decodeHandlesWhitespacesDataProvider')] + #[Test] public function decodeHandlesWhitespaces(string $input): void { $xmlDecoder = new Typo3XmlParser(); @@ -259,10 +255,8 @@ final class Typo3XmlParserTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider decodeHandlesTagNamespacesDataProvider - */ + #[DataProvider('decodeHandlesTagNamespacesDataProvider')] + #[Test] public function decodeHandlesTagNamespaces(string $input, array $expected, array $options = []): void { $xmlDecoder = new Typo3XmlParser(); @@ -314,10 +308,8 @@ final class Typo3XmlParserTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider decodeReturnsRootNodeNameDataProvider - */ + #[DataProvider('decodeReturnsRootNodeNameDataProvider')] + #[Test] public function decodeReturnsRootNodeName(string $input, string $rootNodeName): void { $xmlDecoder = new Typo3XmlParser(); @@ -335,10 +327,8 @@ final class Typo3XmlParserTest extends UnitTestCase ); } - /** - * @test - * @dataProvider decodeReturnsRootNodeNameDataProvider - */ + #[DataProvider('decodeReturnsRootNodeNameDataProvider')] + #[Test] public function decodeCanIncludeRootNode(string $input, string $rootNodeName, array $options = []): void { $xmlDecoder = new Typo3XmlParser(); @@ -399,10 +389,8 @@ final class Typo3XmlParserTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider decodeHandlesBigXmlContentDataProvider - */ + #[DataProvider('decodeHandlesBigXmlContentDataProvider')] + #[Test] public function decodeHandlesBigXmlContent(string $input, string $testValue): void { $xmlDecoder = new Typo3XmlParser(); @@ -499,10 +487,8 @@ final class Typo3XmlParserTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider decodeHandlesAttributeTypesDataProvider - */ + #[DataProvider('decodeHandlesAttributeTypesDataProvider')] + #[Test] public function decodeHandlesAttributeTypes(string $input, mixed $expected): void { $xmlDecoder = new Typo3XmlParser(); @@ -510,9 +496,7 @@ final class Typo3XmlParserTest extends UnitTestCase self::assertSame($expected, $result['index']['vDEF']); } - /** - * @test - */ + #[Test] public function decodeHandlesBase64Attribute(): void { $xmlDecoder = new Typo3XmlParser(); @@ -556,10 +540,8 @@ final class Typo3XmlParserTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider decodeThrowsExceptionOnXmlParsingErrorDataProvider - */ + #[DataProvider('decodeThrowsExceptionOnXmlParsingErrorDataProvider')] + #[Test] public function decodeThrowsExceptionOnXmlParsingError( string $data, array $config, @@ -571,9 +553,7 @@ final class Typo3XmlParserTest extends UnitTestCase $xmlDecoder->decode($data, new Typo3XmlSerializerOptions($config)); } - /** - * @test - */ + #[Test] public function encodeDecodePingPongSucceeds(): void { $input = [ @@ -640,9 +620,7 @@ final class Typo3XmlParserTest extends UnitTestCase self::assertEquals($input, $arrayEncodedDecoded); } - /** - * @test - */ + #[Test] public function encodeDecodePingPongFailsForEmptyArray(): void { self::markTestSkipped( diff --git a/typo3/sysext/core/Tests/Unit/Serializer/Typo3XmlSerializerTest.php b/typo3/sysext/core/Tests/Unit/Serializer/Typo3XmlSerializerTest.php index 7b47838f3b404fb533e2431e42a9cef33c1a3c74..35d5844becdcc1058f41ec32c88f5a6f437fde5b 100644 --- a/typo3/sysext/core/Tests/Unit/Serializer/Typo3XmlSerializerTest.php +++ b/typo3/sysext/core/Tests/Unit/Serializer/Typo3XmlSerializerTest.php @@ -17,15 +17,15 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Serializer; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Serializer\Typo3XmlParserOptions; use TYPO3\CMS\Core\Serializer\Typo3XmlSerializer; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class Typo3XmlSerializerTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function encodeReturnsRootNodeIfArrayIsEmpty(): void { $xmlEncoder = new Typo3XmlSerializer(); @@ -34,9 +34,7 @@ final class Typo3XmlSerializerTest extends UnitTestCase </phparray>', $xml); } - /** - * @test - */ + #[Test] public function encodeCanPreventWrappingByRootNode(): void { $xmlEncoder = new Typo3XmlSerializer(); @@ -48,9 +46,7 @@ final class Typo3XmlSerializerTest extends UnitTestCase ', $xml); } - /** - * @test - */ + #[Test] public function encodeSupportsInlineXml(): void { $xmlEncoder = new Typo3XmlSerializer(); @@ -61,9 +57,7 @@ final class Typo3XmlSerializerTest extends UnitTestCase self::assertEquals('<phparray><node>value</node></phparray>', $xml); } - /** - * @test - */ + #[Test] public function encodeSupportsPrettyPrintWithTabIndentation(): void { $xmlEncoder = new Typo3XmlSerializer(); @@ -76,9 +70,7 @@ final class Typo3XmlSerializerTest extends UnitTestCase </phparray>', $xml); } - /** - * @test - */ + #[Test] public function encodeSupportsPrettyPrintWith4SpacesIndentation(): void { $xmlEncoder = new Typo3XmlSerializer(); @@ -91,9 +83,7 @@ final class Typo3XmlSerializerTest extends UnitTestCase </phparray>', $xml); } - /** - * @test - */ + #[Test] public function encodeEnsuresAlphaNumericCharactersAndMinusAndUnderscoreInNodeName(): void { $xmlEncoder = new Typo3XmlSerializer(); @@ -103,9 +93,7 @@ final class Typo3XmlSerializerTest extends UnitTestCase </phparray>', $xml); } - /** - * @test - */ + #[Test] public function encodeCanPrependNamespaceToNodeName(): void { $xmlEncoder = new Typo3XmlSerializer(); @@ -118,9 +106,7 @@ final class Typo3XmlSerializerTest extends UnitTestCase </phparray>', $xml); } - /** - * @test - */ + #[Test] public function encodeCanPrependNToNodeNameIfNodeNameIsNumber(): void { $xmlEncoder = new Typo3XmlSerializer(); @@ -134,9 +120,7 @@ final class Typo3XmlSerializerTest extends UnitTestCase </phparray>', $xml); } - /** - * @test - */ + #[Test] public function encodeCanReplaceNodeNameAndAddAsIndexIfNodeNameIsNumber(): void { $xmlEncoder = new Typo3XmlSerializer(); @@ -156,9 +140,7 @@ final class Typo3XmlSerializerTest extends UnitTestCase </phparray>', $xml); } - /** - * @test - */ + #[Test] public function encodeCanReplaceNodeNameAndAddAsIndexIfNodeNameIsString(): void { $xmlEncoder = new Typo3XmlSerializer(); @@ -178,9 +160,7 @@ final class Typo3XmlSerializerTest extends UnitTestCase </phparray>', $xml); } - /** - * @test - */ + #[Test] public function encodeCanReplaceNodeNameAndAddAsIndexIfParentMatchesName(): void { $xmlEncoder = new Typo3XmlSerializer(); @@ -212,9 +192,7 @@ final class Typo3XmlSerializerTest extends UnitTestCase </phparray>', $xml); } - /** - * @test - */ + #[Test] public function encodeCanReplaceNodeNameAndAddAsIndexIfParentAndNodeMatchNames(): void { $xmlEncoder = new Typo3XmlSerializer(); @@ -248,9 +226,7 @@ final class Typo3XmlSerializerTest extends UnitTestCase </phparray>', $xml); } - /** - * @test - */ + #[Test] public function encodeCanReplaceNodeNameAndAddAsIndexIfParentMatchesNameAndNodeNameIsNumber(): void { $xmlEncoder = new Typo3XmlSerializer(); @@ -282,9 +258,7 @@ final class Typo3XmlSerializerTest extends UnitTestCase </phparray>', $xml); } - /** - * @test - */ + #[Test] public function encodeCanReplaceNodeNameAndAddAsIndexIfGrandParentAndParentAndNodeMatchNames(): void { $xmlEncoder = new Typo3XmlSerializer(); @@ -320,9 +294,7 @@ final class Typo3XmlSerializerTest extends UnitTestCase </phparray>', $xml); } - /** - * @test - */ + #[Test] public function encodeCanWrapStringWithCDATAIfStringContainsSpecialCharacters(): void { $xmlEncoder = new Typo3XmlSerializer(); @@ -342,9 +314,7 @@ final class Typo3XmlSerializerTest extends UnitTestCase </phparray>', $xml); } - /** - * @test - */ + #[Test] public function encodeAddsTypeAttributeToNodeIfValueIsNotString(): void { $xmlEncoder = new Typo3XmlSerializer(); @@ -374,10 +344,8 @@ final class Typo3XmlSerializerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider encodeCanDisableAddingTypeAttributeToNodeExceptIfValueIsArrayDataProvider - */ + #[DataProvider('encodeCanDisableAddingTypeAttributeToNodeExceptIfValueIsArrayDataProvider')] + #[Test] public function encodeCanDisableAddingTypeAttributeToNodeExceptIfValueIsArray(mixed $disableTypeAttrib): void { $xmlEncoder = new Typo3XmlSerializer(); @@ -405,9 +373,7 @@ final class Typo3XmlSerializerTest extends UnitTestCase </phparray>', $xml); } - /** - * @test - */ + #[Test] public function encodeCanDisableAddingTypeAttributeToNode(): void { $xmlEncoder = new Typo3XmlSerializer(); @@ -435,9 +401,7 @@ final class Typo3XmlSerializerTest extends UnitTestCase </phparray>', $xml); } - /** - * @test - */ + #[Test] public function encodeAddsBase64AttributeAndEncodesWithBase64IfValueIsBinaryData(): void { $xmlEncoder = new Typo3XmlSerializer(); @@ -452,9 +416,7 @@ $contentBase64Encoded</binary> </phparray>", $xml); } - /** - * @test - */ + #[Test] public function encodeCanSetAlternativeOptionsPerNestingLevel(): void { $xmlEncoder = new Typo3XmlSerializer(); diff --git a/typo3/sysext/core/Tests/Unit/Service/DependencyOrderingServiceTest.php b/typo3/sysext/core/Tests/Unit/Service/DependencyOrderingServiceTest.php index 29b43f32ff6c3da3769793fc80cab4fd35d31aab..3dbc68ba4bce22bcd5e0cba7f67722978ff13b90 100644 --- a/typo3/sysext/core/Tests/Unit/Service/DependencyOrderingServiceTest.php +++ b/typo3/sysext/core/Tests/Unit/Service/DependencyOrderingServiceTest.php @@ -17,15 +17,15 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Service; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Service\DependencyOrderingService; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class DependencyOrderingServiceTest extends UnitTestCase { - /** - * @test - * @dataProvider orderByDependenciesBuildsCorrectOrderDataProvider - */ + #[DataProvider('orderByDependenciesBuildsCorrectOrderDataProvider')] + #[Test] public function orderByDependenciesBuildsCorrectOrder(array $items, string $beforeKey, string $afterKey, array $expectedOrderedItems): void { $orderedItems = (new DependencyOrderingService())->orderByDependencies($items, $beforeKey, $afterKey); @@ -151,10 +151,10 @@ final class DependencyOrderingServiceTest extends UnitTestCase } /** - * @test - * @dataProvider prepareDependenciesBuildsFullIdentifierListDataProvider * @throws \InvalidArgumentException */ + #[DataProvider('prepareDependenciesBuildsFullIdentifierListDataProvider')] + #[Test] public function prepareDependenciesBuildsFullIdentifierList(array $dependencies, array $expectedDependencies): void { $dependencyOrderingService = $this->getAccessibleMock(DependencyOrderingService::class, null); @@ -203,10 +203,8 @@ final class DependencyOrderingServiceTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider buildDependencyGraphBuildsValidGraphDataProvider - */ + #[DataProvider('buildDependencyGraphBuildsValidGraphDataProvider')] + #[Test] public function buildDependencyGraphBuildsValidGraph(array $dependencies, array $expectedGraph): void { $graph = (new DependencyOrderingService())->buildDependencyGraph($dependencies); @@ -570,10 +568,8 @@ final class DependencyOrderingServiceTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider calculateOrderResolvesCorrectOrderDataProvider - */ + #[DataProvider('calculateOrderResolvesCorrectOrderDataProvider')] + #[Test] public function calculateOrderResolvesCorrectOrder(array $graph, array $expectedList): void { $list = (new DependencyOrderingService())->calculateOrder($graph); @@ -623,9 +619,7 @@ final class DependencyOrderingServiceTest extends UnitTestCase ]; } - /** - * @test - */ + #[Test] public function calculateOrderDetectsCyclicGraph(): void { $this->expectException(\UnexpectedValueException::class); @@ -679,10 +673,8 @@ final class DependencyOrderingServiceTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider findPathInGraphReturnsCorrectPathDataProvider - */ + #[DataProvider('findPathInGraphReturnsCorrectPathDataProvider')] + #[Test] public function findPathInGraphReturnsCorrectPath(array $graph, string $from, string $to, array $expected): void { $dependencyOrderingService = $this->getAccessibleMock(DependencyOrderingService::class, null); diff --git a/typo3/sysext/core/Tests/Unit/Service/FlexFormServiceTest.php b/typo3/sysext/core/Tests/Unit/Service/FlexFormServiceTest.php index ba3e0f5b8f79e92578739a48df5387b931de3e30..fd50d3df942052a3bdb3919116c3e372b6385fab 100644 --- a/typo3/sysext/core/Tests/Unit/Service/FlexFormServiceTest.php +++ b/typo3/sysext/core/Tests/Unit/Service/FlexFormServiceTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Service; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Cache\CacheManager; use TYPO3\CMS\Core\Cache\Frontend\FrontendInterface; use TYPO3\CMS\Core\Service\FlexFormService; @@ -27,9 +28,7 @@ final class FlexFormServiceTest extends UnitTestCase { protected bool $resetSingletonInstances = true; - /** - * @test - */ + #[Test] public function convertFlexFormContentToArrayResolvesComplexArrayStructure(): void { $input = '<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?> diff --git a/typo3/sysext/core/Tests/Unit/Service/MarkerBasedTemplateServiceTest.php b/typo3/sysext/core/Tests/Unit/Service/MarkerBasedTemplateServiceTest.php index 700300ea0a8eef976a53fdf8165c7a27bda21f63..2ae9ad023d7be52d514e7d5c0fa9e3954cadcf1d 100644 --- a/typo3/sysext/core/Tests/Unit/Service/MarkerBasedTemplateServiceTest.php +++ b/typo3/sysext/core/Tests/Unit/Service/MarkerBasedTemplateServiceTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Service; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Cache\Frontend\FrontendInterface; use TYPO3\CMS\Core\Service\MarkerBasedTemplateService; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -103,10 +105,8 @@ text ]; } - /** - * @test - * @dataProvider getSubpartDataProvider - */ + #[DataProvider('getSubpartDataProvider')] + #[Test] public function getSubpart(string $content, string $marker, string $expected): void { self::assertSame($expected, $this->templateService->getSubpart($content, $marker)); @@ -232,10 +232,10 @@ hello } /** - * @test * @param string|array $subpartContent - * @dataProvider substituteSubpartDataProvider */ + #[DataProvider('substituteSubpartDataProvider')] + #[Test] public function substituteSubpart( string $content, string $marker, @@ -326,14 +326,14 @@ hello } /** - * @test - * @dataProvider substituteMarkerArrayDataProvider * @param string $content The content stream, typically HTML template content. * @param array $markContentArray The array of key/value pairs being marker/content values used in the substitution. For each element in this array the function will substitute a marker in the content stream with the content. * @param string $wrap A wrap value - [part 1] | [part 2] - for the markers before substitution * @param bool $uppercase If set, all marker string substitution is done with upper-case markers. * @param bool $deleteUnused If set, all unused marker are deleted. */ + #[DataProvider('substituteMarkerArrayDataProvider')] + #[Test] public function substituteMarkerArray( string $content, array $markContentArray, @@ -370,12 +370,12 @@ hello } /** - * @dataProvider substituteMarkerDataProvider * @param string $content The content stream, typically HTML template content. * @param string $marker The marker string, typically on the form "###[the marker string]### * @param mixed $markContent The content to insert instead of the marker string found. * @param string $expected The expected result of the substitution */ + #[DataProvider('substituteMarkerDataProvider')] public function substituteMarker(string $content, string $marker, $markContent, string $expected): void { self::assertSame($expected, $this->templateService->substituteMarker($content, $marker, $markContent)); @@ -404,10 +404,8 @@ world ]; } - /** - * @test - * @dataProvider substituteSubpartArrayDataProvider - */ + #[DataProvider('substituteSubpartArrayDataProvider')] + #[Test] public function substituteSubpartArray(string $content, array $subpartsContent, string $expected): void { self::assertSame($expected, $this->templateService->substituteSubpartArray($content, $subpartsContent)); @@ -608,10 +606,8 @@ Value 2.2 ]; } - /** - * @test - * @dataProvider substituteMarkerAndSubpartArrayRecursiveResolvesMarkersAndSubpartsArrayDataProvider - */ + #[DataProvider('substituteMarkerAndSubpartArrayRecursiveResolvesMarkersAndSubpartsArrayDataProvider')] + #[Test] public function substituteMarkerAndSubpartArrayRecursiveResolvesMarkersAndSubpartsArray( string $template, array $markersAndSubparts, @@ -728,10 +724,8 @@ Value 2.2 ]; } - /** - * @test - * @dataProvider substituteMarkerArrayCachedReturnsExpectedContentDataProvider - */ + #[DataProvider('substituteMarkerArrayCachedReturnsExpectedContentDataProvider')] + #[Test] public function substituteMarkerArrayCachedReturnsExpectedContent( string $content, array $markContentArray, diff --git a/typo3/sysext/core/Tests/Unit/Session/Backend/DatabaseSessionBackendTest.php b/typo3/sysext/core/Tests/Unit/Session/Backend/DatabaseSessionBackendTest.php index fe5504a3892cfc6aad3e275a443e2a2053d7ddb4..aaac317900914aeb41dde48acc4700dbd066aa2c 100644 --- a/typo3/sysext/core/Tests/Unit/Session/Backend/DatabaseSessionBackendTest.php +++ b/typo3/sysext/core/Tests/Unit/Session/Backend/DatabaseSessionBackendTest.php @@ -17,14 +17,13 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Session\Backend; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Session\Backend\DatabaseSessionBackend; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class DatabaseSessionBackendTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function validateConfigurationThrowsExceptionIfTableNameIsMissingInConfiguration(): void { $subject = new DatabaseSessionBackend(); diff --git a/typo3/sysext/core/Tests/Unit/Session/Backend/RedisSessionBackendTest.php b/typo3/sysext/core/Tests/Unit/Session/Backend/RedisSessionBackendTest.php index 3d677e176f809817dd080563a413ab6250ace14c..4b246f1d45392b29f94f4159dbd977bd8e6d3933 100644 --- a/typo3/sysext/core/Tests/Unit/Session/Backend/RedisSessionBackendTest.php +++ b/typo3/sysext/core/Tests/Unit/Session/Backend/RedisSessionBackendTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Session\Backend; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Session\Backend\RedisSessionBackend; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -31,9 +32,7 @@ final class RedisSessionBackendTest extends UnitTestCase $GLOBALS['TYPO3_CONF_VARS']['SYS']['encryptionKey'] = '12345'; } - /** - * @test - */ + #[Test] public function databaseConfigurationMustBeInteger(): void { $this->expectException(\InvalidArgumentException::class); @@ -48,9 +47,7 @@ final class RedisSessionBackendTest extends UnitTestCase $subject->validateConfiguration(); } - /** - * @test - */ + #[Test] public function databaseConfigurationMustBeZeroOrGreater(): void { $subject = new RedisSessionBackend(); diff --git a/typo3/sysext/core/Tests/Unit/Session/SessionManagerTest.php b/typo3/sysext/core/Tests/Unit/Session/SessionManagerTest.php index 46e569857aa74ddfecee8d8511f8304edd215278..461ffc11e71c2eae580b138a37b3c92775e45af1 100644 --- a/typo3/sysext/core/Tests/Unit/Session/SessionManagerTest.php +++ b/typo3/sysext/core/Tests/Unit/Session/SessionManagerTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Session; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Session\Backend\DatabaseSessionBackend; use TYPO3\CMS\Core\Session\Backend\SessionBackendInterface; use TYPO3\CMS\Core\Session\SessionManager; @@ -25,18 +26,14 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class SessionManagerTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getSessionBackendUsesDefaultBackendFromConfiguration(): void { $subject = new SessionManager(); self::assertInstanceOf(DatabaseSessionBackend::class, $subject->getSessionBackend('BE')); } - /** - * @test - */ + #[Test] public function getSessionBackendReturnsExpectedSessionBackendBasedOnConfiguration(): void { $backendMock = $this->createMock(SessionBackendInterface::class); @@ -52,9 +49,7 @@ final class SessionManagerTest extends UnitTestCase self::assertInstanceOf($backendClassName, $subject->getSessionBackend('myidentifier')); } - /** - * @test - */ + #[Test] public function getSessionBackendThrowsExceptionForMissingConfiguration(): void { $this->expectException(\InvalidArgumentException::class); @@ -64,9 +59,7 @@ final class SessionManagerTest extends UnitTestCase $subject->getSessionBackend('myNewidentifier'); } - /** - * @test - */ + #[Test] public function getSessionBackendThrowsExceptionIfBackendDoesNotImplementInterface(): void { $this->expectException(\InvalidArgumentException::class); diff --git a/typo3/sysext/core/Tests/Unit/Session/UserSessionManagerTest.php b/typo3/sysext/core/Tests/Unit/Session/UserSessionManagerTest.php index 8650c9a0743a55fa330f5ceff4f3294562a20f71..4a795b6f99fb0ecb7fa5b046b8d1065a4586eec0 100644 --- a/typo3/sysext/core/Tests/Unit/Session/UserSessionManagerTest.php +++ b/typo3/sysext/core/Tests/Unit/Session/UserSessionManagerTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Session; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use Psr\Http\Message\ServerRequestInterface; use Psr\Log\NullLogger; use TYPO3\CMS\Core\Authentication\IpLocker; @@ -53,10 +55,8 @@ final class UserSessionManagerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider willExpireDataProvider - */ + #[DataProvider('willExpireDataProvider')] + #[Test] public function willExpireWillExpire(int $sessionLifetime, int $gracePeriod, bool $expectedResult): void { $sessionBackendMock = $this->createMock(SessionBackendInterface::class); @@ -86,9 +86,7 @@ final class UserSessionManagerTest extends UnitTestCase self::assertFalse($subject->hasExpired($newSession)); } - /** - * @test - */ + #[Test] public function createFromRequestOrAnonymousCreatesProperSessionObjectForValidSessionJwt(): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['encryptionKey'] = 'secret-encryption-key-test'; @@ -138,9 +136,7 @@ final class UserSessionManagerTest extends UnitTestCase self::assertNull($persistedSession->get('propertyC')); } - /** - * @test - */ + #[Test] public function createFromRequestOrAnonymousCreatesProperSessionObjectForInvalidSession(): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['encryptionKey'] = 'secret-encryption-key-test'; @@ -174,9 +170,7 @@ final class UserSessionManagerTest extends UnitTestCase self::assertTrue($anonymousSessionFromInvalidBackendRequest->isAnonymous()); } - /** - * @test - */ + #[Test] public function updateSessionWillSetLastUpdated(): void { $sessionBackendMock = $this->createMock(SessionBackendInterface::class); @@ -198,9 +192,7 @@ final class UserSessionManagerTest extends UnitTestCase self::assertSame(7654321, $session->getLastUpdated()); } - /** - * @test - */ + #[Test] public function fixateAnonymousSessionWillUpdateSessionObject(): void { $sessionBackendMock = $this->createMock(SessionBackendInterface::class); diff --git a/typo3/sysext/core/Tests/Unit/Session/UserSessionTest.php b/typo3/sysext/core/Tests/Unit/Session/UserSessionTest.php index ca178ca835e2e2769add0fdcdf9e11523df4825e..f380648c59a790f21be4e62455cc6eb5ae0700d8 100644 --- a/typo3/sysext/core/Tests/Unit/Session/UserSessionTest.php +++ b/typo3/sysext/core/Tests/Unit/Session/UserSessionTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Session; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Http\CookieScope; use TYPO3\CMS\Core\Security\JwtTrait; use TYPO3\CMS\Core\Session\UserSession; @@ -26,9 +27,7 @@ final class UserSessionTest extends UnitTestCase { use JwtTrait; - /** - * @test - */ + #[Test] public function createFromRecordTest(): void { $record = [ @@ -66,9 +65,7 @@ final class UserSessionTest extends UnitTestCase self::assertSame($record['ses_id'], UserSession::resolveIdentifierFromJwt($session->getJwt($scope), $scope) ?? ''); } - /** - * @test - */ + #[Test] public function createNonFixated(): void { $session = UserSession::createNonFixated('fdcba54321'); diff --git a/typo3/sysext/core/Tests/Unit/Site/Entity/SiteLanguageTest.php b/typo3/sysext/core/Tests/Unit/Site/Entity/SiteLanguageTest.php index fc45e9812029121b2cb11d9b7571020e420166c5..d5a97a2b9d11929b629cb35408a2effd8fc837c3 100644 --- a/typo3/sysext/core/Tests/Unit/Site/Entity/SiteLanguageTest.php +++ b/typo3/sysext/core/Tests/Unit/Site/Entity/SiteLanguageTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Site\Entity; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Http\Uri; use TYPO3\CMS\Core\Site\Entity\Site; use TYPO3\CMS\Core\Site\Entity\SiteLanguage; @@ -60,10 +62,10 @@ final class SiteLanguageTest extends UnitTestCase } /** - * @dataProvider languageFallbackIdConversionDataProvider - * @test * @param string|array|null $input */ + #[DataProvider('languageFallbackIdConversionDataProvider')] + #[Test] public function languageFallbackIdConversion($input, array $expected): void { $configuration = [ @@ -75,9 +77,7 @@ final class SiteLanguageTest extends UnitTestCase self::assertSame($expected, $subject->getFallbackLanguageIds()); } - /** - * @test - */ + #[Test] public function toArrayReturnsProperOverlaidData(): void { $configuration = [ @@ -152,10 +152,8 @@ final class SiteLanguageTest extends UnitTestCase ]; } - /** - * @dataProvider typo3LanguageAndLocaleDataProvider - * @test - */ + #[DataProvider('typo3LanguageAndLocaleDataProvider')] + #[Test] public function typo3LanguageIsEitherSetOrProperlyDerivedFromLocale(string $locale, array $configuration, $expected): void { $language = new SiteLanguage(0, $locale, new Uri('/'), $configuration); diff --git a/typo3/sysext/core/Tests/Unit/Site/Entity/SiteTest.php b/typo3/sysext/core/Tests/Unit/Site/Entity/SiteTest.php index 0e0c9ccfbdaca215d1c5dafd59ec9ec60a8c5424..7285c9be5b2577ff35fbe9d654c293f0c1b0c404 100644 --- a/typo3/sysext/core/Tests/Unit/Site/Entity/SiteTest.php +++ b/typo3/sysext/core/Tests/Unit/Site/Entity/SiteTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Site\Entity; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use Psr\Http\Message\ResponseFactoryInterface; use Symfony\Component\DependencyInjection\Container; use TYPO3\CMS\Core\Cache\CacheManager; @@ -64,10 +66,8 @@ final class SiteTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider getBaseReturnsProperUriDataProvider - */ + #[DataProvider('getBaseReturnsProperUriDataProvider')] + #[Test] public function getBaseReturnsProperUri($input, $expected): void { $subject = new Site('all-your-base-belongs-to-us', 13, [ @@ -122,10 +122,9 @@ final class SiteTest extends UnitTestCase /** * This test shows that the a base from a site language is properly "inheriting" the base * from a site if it isn't absolute. - * - * @test - * @dataProvider getBaseForSiteLanguageReturnsProperUriDataProvider */ + #[DataProvider('getBaseForSiteLanguageReturnsProperUriDataProvider')] + #[Test] public function getBaseForSiteLanguageReturnsProperUri($siteBase, $languageBase, $expected): void { $subject = new Site('all-of-base', 13, [ @@ -141,9 +140,7 @@ final class SiteTest extends UnitTestCase self::assertEquals(new Uri($expected), $subject->getLanguageById(0)->getBase()); } - /** - * @test - */ + #[Test] public function getErrorHandlerReturnsConfiguredErrorHandler(): void { $subject = new Site('aint-misbehaving', 13, [ @@ -205,9 +202,7 @@ final class SiteTest extends UnitTestCase self::assertInstanceOf(PageContentErrorHandler::class, $subject->getErrorHandler(125)); } - /** - * @test - */ + #[Test] public function getErrorHandlerThrowsExceptionOnInvalidErrorHandler(): void { $this->expectException(InvalidPageErrorHandlerException::class); @@ -226,9 +221,7 @@ final class SiteTest extends UnitTestCase $subject->getErrorHandler(404); } - /** - * @test - */ + #[Test] public function getErrorHandlerThrowsExceptionWhenNoErrorHandlerIsConfigured(): void { $this->expectException(PageErrorHandlerNotConfiguredException::class); @@ -238,9 +231,7 @@ final class SiteTest extends UnitTestCase $subject->getErrorHandler(404); } - /** - * @test - */ + #[Test] public function getErrorHandlerThrowsExceptionWhenNoErrorHandlerForStatusCodeIsConfigured(): void { $this->expectException(PageErrorHandlerNotConfiguredException::class); @@ -258,9 +249,7 @@ final class SiteTest extends UnitTestCase $subject->getErrorHandler(404); } - /** - * @test - */ + #[Test] public function getErrorHandlerUsesFallbackWhenNoErrorHandlerForStatusCodeIsConfigured(): void { $app = new class () extends Application { diff --git a/typo3/sysext/core/Tests/Unit/Text/TextCropperTest.php b/typo3/sysext/core/Tests/Unit/Text/TextCropperTest.php index 3faf22c8ba1ac7c5a7b64dad6ede1fa7dcf775b3..cee32b0804fca311236b7f1c859daa885fb36dcb 100644 --- a/typo3/sysext/core/Tests/Unit/Text/TextCropperTest.php +++ b/typo3/sysext/core/Tests/Unit/Text/TextCropperTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Text; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Text\TextCropper; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -30,9 +32,7 @@ final class TextCropperTest extends UnitTestCase $this->subject = new TextCropper(); } - /** - * @test - */ + #[Test] public function cropIsMultibyteSafe(): void { $actual = $this->subject->crop( @@ -113,10 +113,8 @@ final class TextCropperTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider cropWorksDataProvicer - */ + #[DataProvider('cropWorksDataProvicer')] + #[Test] public function cropWorks(string $expected, string $content, int $numberOfChars, string $replacementForEllipsis, bool $cropToSpace): void { $this->handleCharset($content, $expected); diff --git a/typo3/sysext/core/Tests/Unit/TimeTracker/TimeTrackerTest.php b/typo3/sysext/core/Tests/Unit/TimeTracker/TimeTrackerTest.php index 4d34f197e5361ab698505adf1242310c2f72e761..e8db9dc567b07b179cf1fbd6b2db161d09a96767 100644 --- a/typo3/sysext/core/Tests/Unit/TimeTracker/TimeTrackerTest.php +++ b/typo3/sysext/core/Tests/Unit/TimeTracker/TimeTrackerTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\TimeTracker; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\TimeTracker\TimeTracker; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -25,9 +26,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; */ final class TimeTrackerTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getParseTimeReturnsZeroOrOneIfNoValuesAreSet(): void { $parseTime = (new TimeTracker())->getParseTime(); diff --git a/typo3/sysext/core/Tests/Unit/Tree/TableConfiguration/DatabaseTreeDataProviderTest.php b/typo3/sysext/core/Tests/Unit/Tree/TableConfiguration/DatabaseTreeDataProviderTest.php index e657fbd58582f64c5b91bac70f9787ab5ea376e2..2940ed6235a3b20fcdaa9aec7d4442e3f7cdf1f3 100644 --- a/typo3/sysext/core/Tests/Unit/Tree/TableConfiguration/DatabaseTreeDataProviderTest.php +++ b/typo3/sysext/core/Tests/Unit/Tree/TableConfiguration/DatabaseTreeDataProviderTest.php @@ -17,15 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Tree\TableConfiguration; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\Tree\TreeNode; use TYPO3\CMS\Core\Tree\TableConfiguration\DatabaseTreeDataProvider; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class DatabaseTreeDataProviderTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function loadTreeDataLevelMaximumSetToZeroWorks(): void { $subject = $this->getAccessibleMock(DatabaseTreeDataProvider::class, ['getRelatedRecords', 'getStartingPoints', 'getChildrenOf'], [], '', false); @@ -37,9 +36,7 @@ final class DatabaseTreeDataProviderTest extends UnitTestCase $subject->_call('loadTreeData'); } - /** - * @test - */ + #[Test] public function loadTreeDataLevelMaximumSetToOneWorks(): void { $subject = $this->getAccessibleMock(DatabaseTreeDataProvider::class, ['getRelatedRecords', 'getStartingPoints', 'getChildrenOf'], [], '', false); diff --git a/typo3/sysext/core/Tests/Unit/Tree/TableConfiguration/TreeDataProviderFactoryTest.php b/typo3/sysext/core/Tests/Unit/Tree/TableConfiguration/TreeDataProviderFactoryTest.php index 771cff47863f6bde9c1fc8b80d0053a297451c59..e363bbdc3c016f12ee13d984b656b1a758d8f246 100644 --- a/typo3/sysext/core/Tests/Unit/Tree/TableConfiguration/TreeDataProviderFactoryTest.php +++ b/typo3/sysext/core/Tests/Unit/Tree/TableConfiguration/TreeDataProviderFactoryTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Tree\TableConfiguration; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use Psr\EventDispatcher\EventDispatcherInterface; use TYPO3\CMS\Core\EventDispatcher\NoopEventDispatcher; use TYPO3\CMS\Core\Tests\Unit\Tree\TableConfiguration\Fixtures\TreeDataProviderFixture; @@ -82,10 +84,8 @@ final class TreeDataProviderFactoryTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider invalidConfigurationDataProvider - */ + #[DataProvider('invalidConfigurationDataProvider')] + #[Test] public function factoryThrowsExceptionIfInvalidConfigurationIsGiven(array $tcaConfiguration, int $expectedExceptionCode): void { if (isset($tcaConfiguration['type']) && $tcaConfiguration['type'] !== 'folder' && is_array($tcaConfiguration['treeConfig'] ?? null)) { @@ -99,9 +99,7 @@ final class TreeDataProviderFactoryTest extends UnitTestCase TreeDataProviderFactory::getDataProvider($tcaConfiguration, 'foo', 'bar', ['uid' => 1]); } - /** - * @test - */ + #[Test] public function configuredDataProviderClassIsInstantiated(): void { $dataProviderMockClassName = TreeDataProviderFixture::class; @@ -116,9 +114,7 @@ final class TreeDataProviderFactoryTest extends UnitTestCase self::assertInstanceOf($dataProviderMockClassName, $dataProvider); } - /** - * @test - */ + #[Test] public function configuredDataProviderClassIsInstantiatedWithTcaConfigurationInConstructor(): void { $dataProviderMockClassName = TreeDataProviderWithConfigurationFixture::class; diff --git a/typo3/sysext/core/Tests/Unit/Type/BitSetTest.php b/typo3/sysext/core/Tests/Unit/Type/BitSetTest.php index 51b82cb0586ab2ca090ea8e5e571f0f789e59306..5036d1e6e5bd3488dccb4b6e606140c66e400779 100644 --- a/typo3/sysext/core/Tests/Unit/Type/BitSetTest.php +++ b/typo3/sysext/core/Tests/Unit/Type/BitSetTest.php @@ -17,14 +17,13 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Type; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Type\BitSet; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class BitSetTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function defaultBitSetOnlyHasZeroByteSet(): void { $bitSet = new BitSet(); @@ -32,9 +31,7 @@ final class BitSetTest extends UnitTestCase self::assertFalse($bitSet->get(0b1)); } - /** - * @test - */ + #[Test] public function constructorSetsInternalSet(): void { $bitSet = new BitSet(0b1 | 0b100); @@ -43,9 +40,7 @@ final class BitSetTest extends UnitTestCase self::assertFalse($bitSet->get(0b10)); } - /** - * @test - */ + #[Test] public function setSetsBit(): void { $bitSet = new BitSet(0b101); @@ -57,9 +52,7 @@ final class BitSetTest extends UnitTestCase self::assertTrue($bitSet->get(0b10)); } - /** - * @test - */ + #[Test] public function setValueSetsBit(): void { $bitSet = new BitSet(); @@ -72,9 +65,7 @@ final class BitSetTest extends UnitTestCase self::assertFalse($bitSet->get(0b1)); } - /** - * @test - */ + #[Test] public function clearUnsetsBit(): void { $bitSet = new BitSet(0b111); @@ -84,9 +75,7 @@ final class BitSetTest extends UnitTestCase self::assertFalse($bitSet->get(0b10)); } - /** - * @test - */ + #[Test] public function andPerformsABinaryAnd(): void { $bitSet = new BitSet(0b101); @@ -97,9 +86,7 @@ final class BitSetTest extends UnitTestCase self::assertSame('0b101', $bitSet->__toString()); } - /** - * @test - */ + #[Test] public function orPerformsABinaryOr(): void { $bitSet = new BitSet(0b101); @@ -110,9 +97,7 @@ final class BitSetTest extends UnitTestCase self::assertSame('0b111', $bitSet->__toString()); } - /** - * @test - */ + #[Test] public function xorPerformsABinaryXor(): void { $bitSet = new BitSet(0b1001); @@ -123,9 +108,7 @@ final class BitSetTest extends UnitTestCase self::assertSame('0b11', $bitSet->__toString()); } - /** - * @test - */ + #[Test] public function andNotPerformsABinaryAndNot(): void { $bitSet = new BitSet(0b111); @@ -136,18 +119,14 @@ final class BitSetTest extends UnitTestCase self::assertSame('0b10', $bitSet->__toString()); } - /** - * @test - */ + #[Test] public function __toIntReturnsIntegerRepresentationOfBitSet(): void { $bitSet = new BitSet(0b010); self::assertSame(2, $bitSet->__toInt()); } - /** - * @test - */ + #[Test] public function __toStringReturnsBinaryStringRepresentationOfBitSet(): void { $bitSet = new BitSet(13); diff --git a/typo3/sysext/core/Tests/Unit/Type/EnumerationTest.php b/typo3/sysext/core/Tests/Unit/Type/EnumerationTest.php index 8d7e9182562b71ddb8d9c5831c09f3c0d9213219..a1b52f1fd37642077e1c0556234cef4b3fe7f02a 100644 --- a/typo3/sysext/core/Tests/Unit/Type/EnumerationTest.php +++ b/typo3/sysext/core/Tests/Unit/Type/EnumerationTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Type; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Tests\Unit\Type\Fixture\Enumeration\CompleteEnumeration; use TYPO3\CMS\Core\Tests\Unit\Type\Fixture\Enumeration\DuplicateConstantValueEnumeration; use TYPO3\CMS\Core\Tests\Unit\Type\Fixture\Enumeration\InvalidConstantEnumeration; @@ -28,9 +30,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class EnumerationTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function constructorThrowsExceptionIfNoConstantsAreDefined(): void { $this->expectException(InvalidEnumerationValueException::class); @@ -39,9 +39,7 @@ final class EnumerationTest extends UnitTestCase new MissingConstantsEnumeration(); } - /** - * @test - */ + #[Test] public function constructorThrowsExceptionIfInvalidValueIsRequested(): void { $this->expectException(InvalidEnumerationValueException::class); @@ -50,9 +48,7 @@ final class EnumerationTest extends UnitTestCase new CompleteEnumeration('bar'); } - /** - * @test - */ + #[Test] public function loadValuesThrowsExceptionIfGivenValueIsNotAvailableInEnumeration(): void { $this->expectException(InvalidEnumerationValueException::class); @@ -61,9 +57,7 @@ final class EnumerationTest extends UnitTestCase new MissingConstantsEnumeration(2); } - /** - * @test - */ + #[Test] public function loadValuesThrowsExceptionIfDisallowedTypeIsDefinedAsConstant(): void { $this->expectException(InvalidEnumerationDefinitionException::class); @@ -72,9 +66,7 @@ final class EnumerationTest extends UnitTestCase new InvalidConstantEnumeration(1); } - /** - * @test - */ + #[Test] public function loadValuesThrowsExceptionIfNoDefaultConstantIsDefinedAndNoValueIsGiven(): void { $this->expectException(InvalidEnumerationValueException::class); @@ -83,9 +75,7 @@ final class EnumerationTest extends UnitTestCase new MissingDefaultEnumeration(); } - /** - * @test - */ + #[Test] public function loadValuesThrowsExceptionIfValueIsDefinedMultipleTimes(): void { $this->expectException(InvalidEnumerationDefinitionException::class); @@ -123,10 +113,8 @@ final class EnumerationTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider looseEnumerationValues - */ + #[DataProvider('looseEnumerationValues')] + #[Test] public function doesTypeLooseComparison(string|int $testValue, string|int $expectedValue): void { $value = new CompleteEnumeration($testValue); @@ -134,9 +122,7 @@ final class EnumerationTest extends UnitTestCase self::assertEquals((string)$expectedValue, (string)$value); } - /** - * @test - */ + #[Test] public function getConstantsReturnsArrayOfPossibleValuesWithoutDefault(): void { $expected = [ @@ -148,9 +134,7 @@ final class EnumerationTest extends UnitTestCase self::assertEquals($expected, CompleteEnumeration::getConstants()); } - /** - * @test - */ + #[Test] public function getConstantsReturnsArrayOfPossibleValuesWithDefaultIfRequested(): void { $expected = [ @@ -163,9 +147,7 @@ final class EnumerationTest extends UnitTestCase self::assertEquals($expected, CompleteEnumeration::getConstants(true)); } - /** - * @test - */ + #[Test] public function getConstantsCanBeCalledOnInstances(): void { $enumeration = new CompleteEnumeration(); @@ -178,27 +160,21 @@ final class EnumerationTest extends UnitTestCase self::assertEquals($expected, $enumeration::getConstants()); } - /** - * @test - */ + #[Test] public function toStringReturnsValueAsString(): void { $enumeration = new CompleteEnumeration(); self::assertSame('1', $enumeration->__toString()); } - /** - * @test - */ + #[Test] public function castReturnsObjectOfEnumerationTypeIfSimpleValueIsGiven(): void { $enumeration = CompleteEnumeration::cast(1); self::assertInstanceOf(CompleteEnumeration::class, $enumeration); } - /** - * @test - */ + #[Test] public function castReturnsObjectOfCalledEnumerationTypeIfCalledWithValueOfDifferentType(): void { $initialEnumeration = new MissingDefaultEnumeration(1); @@ -206,9 +182,7 @@ final class EnumerationTest extends UnitTestCase self::assertInstanceOf(CompleteEnumeration::class, $enumeration); } - /** - * @test - */ + #[Test] public function castReturnsGivenObjectIfCalledWithValueOfSameType(): void { $initialEnumeration = new CompleteEnumeration(1); @@ -216,9 +190,7 @@ final class EnumerationTest extends UnitTestCase self::assertSame($initialEnumeration, $enumeration); } - /** - * @test - */ + #[Test] public function castCastsStringToEnumerationWithCorrespondingValue(): void { $value = new CompleteEnumeration(CompleteEnumeration::STRING_VALUE); @@ -226,9 +198,7 @@ final class EnumerationTest extends UnitTestCase self::assertSame(CompleteEnumeration::STRING_VALUE, (string)$value); } - /** - * @test - */ + #[Test] public function castCastsIntegerToEnumerationWithCorrespondingValue(): void { $value = new CompleteEnumeration(CompleteEnumeration::INTEGER_VALUE); @@ -236,27 +206,21 @@ final class EnumerationTest extends UnitTestCase self::assertSame((int)(string)CompleteEnumeration::INTEGER_VALUE, (int)(string)$value); } - /** - * @test - */ + #[Test] public function equalsReturnsTrueIfIntegerIsGivenThatEqualsEnumerationsIntegerValue(): void { $enumeration = new CompleteEnumeration(1); self::assertTrue($enumeration->equals(1)); } - /** - * @test - */ + #[Test] public function equalsReturnsTrueIfStringIsGivenThatEqualsEnumerationsIntegerValue(): void { $enumeration = new CompleteEnumeration(1); self::assertTrue($enumeration->equals('1')); } - /** - * @test - */ + #[Test] public function equalsReturnsTrueIfEqualEnumerationIsGiven(): void { $enumerationFoo = new CompleteEnumeration(1); @@ -264,9 +228,7 @@ final class EnumerationTest extends UnitTestCase self::assertTrue($enumerationFoo->equals($enumerationBar)); } - /** - * @test - */ + #[Test] public function equalsReturnsTrueIfDifferentEnumerationWithSameValueIsGiven(): void { $enumerationFoo = new CompleteEnumeration(1); @@ -274,9 +236,7 @@ final class EnumerationTest extends UnitTestCase self::assertTrue($enumerationFoo->equals($enumerationBar)); } - /** - * @test - */ + #[Test] public function equalsReturnsFalseIfDifferentEnumerationWithDifferentValueIsGiven(): void { $enumerationFoo = new CompleteEnumeration('foo'); @@ -284,9 +244,7 @@ final class EnumerationTest extends UnitTestCase self::assertFalse($enumerationFoo->equals($enumerationBar)); } - /** - * @test - */ + #[Test] public function equalsReturnsFalseIfEnumerationOfSameTypeWithDifferentValueIsGiven(): void { $enumerationFoo = new CompleteEnumeration(1); @@ -294,36 +252,28 @@ final class EnumerationTest extends UnitTestCase self::assertFalse($enumerationFoo->equals($enumerationBar)); } - /** - * @test - */ + #[Test] public function getNameProvidesNameForAvailableConstant(): void { $result = CompleteEnumeration::getName(CompleteEnumeration::INTEGER_VALUE); self::assertSame('INTEGER_VALUE', $result); } - /** - * @test - */ + #[Test] public function getNameReturnsEmptyStringForNotAvailableConstant(): void { $result = CompleteEnumeration::getName(42); self::assertSame('', $result); } - /** - * @test - */ + #[Test] public function getHumanReadableNameProvidesNameForAvailableConstant(): void { $result = CompleteEnumeration::getHumanReadableName(CompleteEnumeration::INTEGER_VALUE); self::assertSame('Integer Value', $result); } - /** - * @test - */ + #[Test] public function getHumanReadableNameReturnsEmptyStringForNotAvailableConstant(): void { $result = CompleteEnumeration::getName(42); diff --git a/typo3/sysext/core/Tests/Unit/Type/File/ImageInfoTest.php b/typo3/sysext/core/Tests/Unit/Type/File/ImageInfoTest.php index 3b151124ffe49245c28a05e080d3b477aab07a9e..c40e87461cc7bb403cae05b7f62221380cd79472 100644 --- a/typo3/sysext/core/Tests/Unit/Type/File/ImageInfoTest.php +++ b/typo3/sysext/core/Tests/Unit/Type/File/ImageInfoTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Type\File; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use Psr\Log\NullLogger; use TYPO3\CMS\Core\Core\Environment; use TYPO3\CMS\Core\Imaging\GraphicalFunctions; @@ -27,9 +29,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ImageInfoTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function classImageInfoCanBeInstantiated(): void { $className = ImageInfo::class; @@ -37,9 +37,7 @@ final class ImageInfoTest extends UnitTestCase self::assertInstanceOf($className, $classInstance); } - /** - * @test - */ + #[Test] public function doesNotBreakOnFileWithInvalidEnding(): void { $this->resetSingletonInstances = true; @@ -93,10 +91,8 @@ final class ImageInfoTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider doesNotBreakOnImageInfoWithInvalidSvgDataProvider - */ + #[DataProvider('doesNotBreakOnImageInfoWithInvalidSvgDataProvider')] + #[Test] public function doesNotBreakOnImageInfoWithInvalidSvg(string $svg, int $width, int $height): void { $this->resetSingletonInstances = true; @@ -138,10 +134,8 @@ final class ImageInfoTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider canDetectImageSizesDataProvider - */ + #[DataProvider('canDetectImageSizesDataProvider')] + #[Test] public function canDetectImageSizes(string $file, int $width, int $height): void { $imageInfo = new ImageInfo(__DIR__ . '/../Fixture/' . $file); diff --git a/typo3/sysext/core/Tests/Unit/Type/MapTest.php b/typo3/sysext/core/Tests/Unit/Type/MapTest.php index 468a670f692dcab199b8b76d549e2d0e0d06e198..72c96a90831491cd5117a612eb4be779fb52f1e3 100644 --- a/typo3/sysext/core/Tests/Unit/Type/MapTest.php +++ b/typo3/sysext/core/Tests/Unit/Type/MapTest.php @@ -17,14 +17,13 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Type; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Type\Map; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class MapTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function mapIsArrayAccessible(): void { $aKey = new \stdClass(); @@ -42,9 +41,7 @@ final class MapTest extends UnitTestCase self::assertSame($bValue, $map[$bKey]); } - /** - * @test - */ + #[Test] public function mapKeyCanBeUnset(): void { $aKey = new \stdClass(); @@ -62,9 +59,7 @@ final class MapTest extends UnitTestCase self::assertFalse(isset($map[$bKey])); } - /** - * @test - */ + #[Test] public function mapCanBeIterated(): void { $aKey = new \stdClass(); @@ -88,9 +83,7 @@ final class MapTest extends UnitTestCase self::assertSame($expectation, $entries); } - /** - * @test - */ + #[Test] public function mapIsCreatedFromEntries(): void { $aKey = new \stdClass(); diff --git a/typo3/sysext/core/Tests/Unit/TypoScript/AST/AstBuilderInterfaceTest.php b/typo3/sysext/core/Tests/Unit/TypoScript/AST/AstBuilderInterfaceTest.php index c2929f7191df8ff7706625beb7cc60233c2fbdf0..11a42b36293d546b8c2d62418efe8a9743472c3a 100644 --- a/typo3/sysext/core/Tests/Unit/TypoScript/AST/AstBuilderInterfaceTest.php +++ b/typo3/sysext/core/Tests/Unit/TypoScript/AST/AstBuilderInterfaceTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\TypoScript\AST; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\EventDispatcher\NoopEventDispatcher; use TYPO3\CMS\Core\TypoScript\AST\AstBuilder; use TYPO3\CMS\Core\TypoScript\AST\CommentAwareAstBuilder; @@ -1276,10 +1278,8 @@ final class AstBuilderInterfaceTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider buildDataProvider - */ + #[DataProvider('buildDataProvider')] + #[Test] public function build(string $source, RootNode $expectedAst): void { $noopEventDispatcher = new NoopEventDispatcher(); @@ -1288,10 +1288,8 @@ final class AstBuilderInterfaceTest extends UnitTestCase self::assertEquals($expectedAst, $ast); } - /** - * @test - * @dataProvider buildDataProvider - */ + #[DataProvider('buildDataProvider')] + #[Test] public function buildCreatesSameAstWhenUnserialized(string $source, RootNode $expectedAst): void { $noopEventDispatcher = new NoopEventDispatcher(); @@ -1300,10 +1298,8 @@ final class AstBuilderInterfaceTest extends UnitTestCase self::assertEquals($expectedAst, unserialize(serialize($ast))); } - /** - * @test - * @dataProvider buildDataProvider - */ + #[DataProvider('buildDataProvider')] + #[Test] public function buildCommentAware(string $source, RootNode $expectedAst): void { $noopEventDispatcher = new NoopEventDispatcher(); @@ -1312,10 +1308,8 @@ final class AstBuilderInterfaceTest extends UnitTestCase self::assertEquals($expectedAst, $ast); } - /** - * @test - * @dataProvider buildDataProvider - */ + #[DataProvider('buildDataProvider')] + #[Test] public function buildCompatArray(string $source, RootNode $_, array $expectedArray): void { $noopEventDispatcher = new NoopEventDispatcher(); @@ -1324,10 +1318,8 @@ final class AstBuilderInterfaceTest extends UnitTestCase self::assertEquals($expectedArray, $ast->toArray()); } - /** - * @test - * @dataProvider buildDataProvider - */ + #[DataProvider('buildDataProvider')] + #[Test] public function buildCompatArrayCommentAware(string $source, RootNode $_, array $expectedArray): void { $noopEventDispatcher = new NoopEventDispatcher(); @@ -1501,10 +1493,8 @@ final class AstBuilderInterfaceTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider buildWithPreviousValueDataProvider - */ + #[DataProvider('buildWithPreviousValueDataProvider')] + #[Test] public function buildWithPreviousValue(string $source, RootNode $expectedAst): void { $noopEventDispatcher = new NoopEventDispatcher(); @@ -1513,10 +1503,8 @@ final class AstBuilderInterfaceTest extends UnitTestCase self::assertEquals($expectedAst, $ast); } - /** - * @test - * @dataProvider buildWithPreviousValueDataProvider - */ + #[DataProvider('buildWithPreviousValueDataProvider')] + #[Test] public function buildWithPreviousValueCreatesSameAstWhenUnserialized(string $source, RootNode $expectedAst): void { $noopEventDispatcher = new NoopEventDispatcher(); @@ -1525,10 +1513,8 @@ final class AstBuilderInterfaceTest extends UnitTestCase self::assertEquals($expectedAst, unserialize(serialize($ast))); } - /** - * @test - * @dataProvider buildWithPreviousValueDataProvider - */ + #[DataProvider('buildWithPreviousValueDataProvider')] + #[Test] public function buildWithPreviousValueCommentAware(string $source, RootNode $_, RootNode $expectedAst): void { $noopEventDispatcher = new NoopEventDispatcher(); @@ -1841,10 +1827,8 @@ final class AstBuilderInterfaceTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider buildReferenceDataProvider - */ + #[DataProvider('buildReferenceDataProvider')] + #[Test] public function buildReference(string $source, RootNode $expectedAst): void { $noopEventDispatcher = new NoopEventDispatcher(); @@ -1853,10 +1837,8 @@ final class AstBuilderInterfaceTest extends UnitTestCase self::assertEquals($expectedAst, $ast); } - /** - * @test - * @dataProvider buildReferenceDataProvider - */ + #[DataProvider('buildReferenceDataProvider')] + #[Test] public function buildReferenceCreatesSameAstWhenUnserialized(string $source, RootNode $expectedAst): void { $this->registerComparator(new IdentifierTokenWithoutLineAndColumnComparator()); @@ -1866,10 +1848,8 @@ final class AstBuilderInterfaceTest extends UnitTestCase self::assertEquals($expectedAst, unserialize(serialize($ast))); } - /** - * @test - * @dataProvider buildReferenceDataProvider - */ + #[DataProvider('buildReferenceDataProvider')] + #[Test] public function buildReferenceCommentAware(string $source, RootNode $expectedAst): void { $noopEventDispatcher = new NoopEventDispatcher(); @@ -1878,10 +1858,8 @@ final class AstBuilderInterfaceTest extends UnitTestCase self::assertEquals($expectedAst, $ast); } - /** - * @test - * @dataProvider buildReferenceDataProvider - */ + #[DataProvider('buildReferenceDataProvider')] + #[Test] public function buildReferenceArray(string $source, RootNode $_, array $expectedArray): void { $noopEventDispatcher = new NoopEventDispatcher(); @@ -1890,10 +1868,8 @@ final class AstBuilderInterfaceTest extends UnitTestCase self::assertEquals($expectedArray, $ast->toArray()); } - /** - * @test - * @dataProvider buildReferenceDataProvider - */ + #[DataProvider('buildReferenceDataProvider')] + #[Test] public function buildReferenceArrayCommentAware(string $source, RootNode $_, array $expectedArray): void { $noopEventDispatcher = new NoopEventDispatcher(); @@ -2023,10 +1999,8 @@ final class AstBuilderInterfaceTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider buildConstantDataProvider - */ + #[DataProvider('buildConstantDataProvider')] + #[Test] public function buildConstant(string $source, array $constants, RootNode $expectedAst): void { $noopEventDispatcher = new NoopEventDispatcher(); @@ -2035,10 +2009,8 @@ final class AstBuilderInterfaceTest extends UnitTestCase self::assertEquals($expectedAst, $ast); } - /** - * @test - * @dataProvider buildConstantDataProvider - */ + #[DataProvider('buildConstantDataProvider')] + #[Test] public function buildConstantCreatesSameAstWhenUnserialized(string $source, array $constants, RootNode $expectedAst): void { $this->registerComparator(new AbstractNodeWithoutOriginalValueTokenStreamIdentifierComparator()); @@ -2048,10 +2020,8 @@ final class AstBuilderInterfaceTest extends UnitTestCase self::assertEquals($expectedAst, unserialize(serialize($ast))); } - /** - * @test - * @dataProvider buildConstantDataProvider - */ + #[DataProvider('buildConstantDataProvider')] + #[Test] public function buildConstantCommentAware(string $source, array $constants, RootNode $expectedAst): void { $noopEventDispatcher = new NoopEventDispatcher(); @@ -2060,10 +2030,8 @@ final class AstBuilderInterfaceTest extends UnitTestCase self::assertEquals($expectedAst, $ast); } - /** - * @test - * @dataProvider buildConstantDataProvider - */ + #[DataProvider('buildConstantDataProvider')] + #[Test] public function buildConstantCompatArray(string $source, array $constants, RootNode $_, array $expectedArray): void { $noopEventDispatcher = new NoopEventDispatcher(); @@ -2072,10 +2040,8 @@ final class AstBuilderInterfaceTest extends UnitTestCase self::assertEquals($expectedArray, $ast->toArray()); } - /** - * @test - * @dataProvider buildConstantDataProvider - */ + #[DataProvider('buildConstantDataProvider')] + #[Test] public function buildConstantCompatArrayCommentAware(string $source, array $constants, RootNode $_, array $expectedArray): void { $noopEventDispatcher = new NoopEventDispatcher(); @@ -2084,9 +2050,7 @@ final class AstBuilderInterfaceTest extends UnitTestCase self::assertEquals($expectedArray, $ast->toArray()); } - /** - * @test - */ + #[Test] public function buildExtendsGivenAst(): void { $fooNode = new ChildNode('foo'); @@ -2114,9 +2078,7 @@ final class AstBuilderInterfaceTest extends UnitTestCase self::assertEquals($expectedArray, $resultAst->toArray()); } - /** - * @test - */ + #[Test] public function buildExtendsGivenAstCommentAware(): void { $fooNode = new ChildNode('foo'); @@ -2157,10 +2119,8 @@ final class AstBuilderInterfaceTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider functionSortListThrowsSortingNonNumericListNumericDataProvider - */ + #[DataProvider('functionSortListThrowsSortingNonNumericListNumericDataProvider')] + #[Test] public function functionSortListThrowsSortingNonNumericListNumeric(string $source): void { $this->expectException(\InvalidArgumentException::class); @@ -2170,10 +2130,8 @@ final class AstBuilderInterfaceTest extends UnitTestCase (new AstBuilder($noopEventDispatcher))->build($tokens, new RootNode()); } - /** - * @test - * @dataProvider functionSortListThrowsSortingNonNumericListNumericDataProvider - */ + #[DataProvider('functionSortListThrowsSortingNonNumericListNumericDataProvider')] + #[Test] public function functionSortListThrowsSortingNonNumericListNumericCommentAware(string $source): void { $this->expectException(\InvalidArgumentException::class); @@ -2255,10 +2213,8 @@ final class AstBuilderInterfaceTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider functionGetEnvDataProvider - */ + #[DataProvider('functionGetEnvDataProvider')] + #[Test] public function functionGetEnv(?string $envVarName, ?string $envVarValue, $source, RootNode $expectedAst): void { if ($envVarName) { @@ -2273,10 +2229,8 @@ final class AstBuilderInterfaceTest extends UnitTestCase } } - /** - * @test - * @dataProvider functionGetEnvDataProvider - */ + #[DataProvider('functionGetEnvDataProvider')] + #[Test] public function functionGetEnvCommentAware(?string $envVarName, ?string $envVarValue, $source, RootNode $expectedAst): void { if ($envVarName) { @@ -2380,20 +2334,16 @@ final class AstBuilderInterfaceTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider flattenDataProvider - */ + #[DataProvider('flattenDataProvider')] + #[Test] public function flatten(string $typoscript, array $expected) { $ast = (new AstBuilder(new NoopEventDispatcher()))->build((new LosslessTokenizer())->tokenize($typoscript), new RootNode()); self::assertSame($expected, $ast->flatten()); } - /** - * @test - * @dataProvider flattenDataProvider - */ + #[DataProvider('flattenDataProvider')] + #[Test] public function flattenCommentAware(string $typoscript, array $expected) { $ast = (new CommentAwareAstBuilder(new NoopEventDispatcher()))->build((new LosslessTokenizer())->tokenize($typoscript), new RootNode()); @@ -2762,10 +2712,9 @@ final class AstBuilderInterfaceTest extends UnitTestCase /** * This is for CommentAwareAstBuilder only, AstBuilder ignores comments. - * - * @test - * @dataProvider buildWithCommentsDataProvider */ + #[DataProvider('buildWithCommentsDataProvider')] + #[Test] public function buildWithComments(string $source, RootNode $expectedAst): void { $noopEventDispatcher = new NoopEventDispatcher(); @@ -2774,9 +2723,7 @@ final class AstBuilderInterfaceTest extends UnitTestCase self::assertEquals($expectedAst, $ast); } - /** - * @test - */ + #[Test] public function buildWithCommentsSetsPreviousValue(): void { $source = "foo = fooValue1\n" . diff --git a/typo3/sysext/core/Tests/Unit/TypoScript/AST/CurrentObjectPath/CurrentObjectPathTest.php b/typo3/sysext/core/Tests/Unit/TypoScript/AST/CurrentObjectPath/CurrentObjectPathTest.php index a140702411188c0d179042b289cca4f1d56c159a..be4adcbf179bc87113725c87ffdf9a274ca66b92 100644 --- a/typo3/sysext/core/Tests/Unit/TypoScript/AST/CurrentObjectPath/CurrentObjectPathTest.php +++ b/typo3/sysext/core/Tests/Unit/TypoScript/AST/CurrentObjectPath/CurrentObjectPathTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\TypoScript\AST\CurrentObjectPath; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\TypoScript\AST\CurrentObjectPath\CurrentObjectPath; use TYPO3\CMS\Core\TypoScript\AST\Node\ChildNode; use TYPO3\CMS\Core\TypoScript\AST\Node\RootNode; @@ -24,9 +25,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class CurrentObjectPathTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getAllReturnsPathArray() { $firstNode = new ChildNode('foo'); @@ -36,9 +35,7 @@ final class CurrentObjectPathTest extends UnitTestCase self::assertSame([$firstNode, $secondNode], $currentObjectPath->getAll()); } - /** - * @test - */ + #[Test] public function getPathAsStringReturnsPath() { $currentObjectPath = new CurrentObjectPath(new RootNode()); @@ -47,9 +44,7 @@ final class CurrentObjectPathTest extends UnitTestCase self::assertSame('foo.bar', $currentObjectPath->getPathAsString()); } - /** - * @test - */ + #[Test] public function getPathAsStringReturnsQuotedPath() { $currentObjectPath = new CurrentObjectPath(new ChildNode('foo')); @@ -57,9 +52,7 @@ final class CurrentObjectPathTest extends UnitTestCase self::assertSame('foo.bar\.baz', $currentObjectPath->getPathAsString()); } - /** - * @test - */ + #[Test] public function getPathAsStringReturnsPathWithZero() { $currentObjectPath = new CurrentObjectPath(new ChildNode('foo')); @@ -68,9 +61,7 @@ final class CurrentObjectPathTest extends UnitTestCase self::assertSame('foo.0.bar', $currentObjectPath->getPathAsString()); } - /** - * @test - */ + #[Test] public function getPathAsStringThrowsWithNodeNameEmptyString() { $this->expectExceptionCode(\RuntimeException::class); @@ -80,9 +71,7 @@ final class CurrentObjectPathTest extends UnitTestCase $currentObjectPath->getPathAsString(); } - /** - * @test - */ + #[Test] public function getFirstReturnsFirstNode() { $firstNode = new ChildNode('foo'); @@ -94,9 +83,7 @@ final class CurrentObjectPathTest extends UnitTestCase self::assertSame($firstNode, $currentObjectPath->getFirst()); } - /** - * @test - */ + #[Test] public function getLastReturnsLastNode() { $firstNode = new ChildNode('foo'); @@ -108,9 +95,7 @@ final class CurrentObjectPathTest extends UnitTestCase self::assertSame($thirdNode, $currentObjectPath->getLast()); } - /** - * @test - */ + #[Test] public function getSecondLastReturnsSecondLastNode() { $firstNode = new ChildNode('foo'); @@ -122,9 +107,7 @@ final class CurrentObjectPathTest extends UnitTestCase self::assertSame($secondNode, $currentObjectPath->getSecondLast()); } - /** - * @test - */ + #[Test] public function getSecondLastReturnsFirstIfThereIsOnlyOne() { $firstNode = new ChildNode('foo'); @@ -132,9 +115,7 @@ final class CurrentObjectPathTest extends UnitTestCase self::assertSame($firstNode, $currentObjectPath->getSecondLast()); } - /** - * @test - */ + #[Test] public function removeLastRemovesLastNode() { $firstNode = new ChildNode('foo'); diff --git a/typo3/sysext/core/Tests/Unit/TypoScript/AST/Node/ChildNodeTest.php b/typo3/sysext/core/Tests/Unit/TypoScript/AST/Node/ChildNodeTest.php index 8ac189d6da025118dc8ee2b91fd62139aaf3683f..333edab79c50ab308451ded3e26e7603b3cb1dac 100644 --- a/typo3/sysext/core/Tests/Unit/TypoScript/AST/Node/ChildNodeTest.php +++ b/typo3/sysext/core/Tests/Unit/TypoScript/AST/Node/ChildNodeTest.php @@ -17,15 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\TypoScript\AST\Node; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\TypoScript\AST\Node\ChildNode; use TYPO3\CMS\Core\TypoScript\AST\Node\ReferenceChildNode; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ChildNodeTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getIdentifierThrowsExceptionIfNotIdentifierHasBeenSet(): void { $this->expectException(\RuntimeException::class); @@ -33,9 +32,7 @@ final class ChildNodeTest extends UnitTestCase (new ChildNode('someName'))->getIdentifier(); } - /** - * @test - */ + #[Test] public function setIdentifierCreatesIdentifierString(): void { $node = new ChildNode('someName'); @@ -43,9 +40,7 @@ final class ChildNodeTest extends UnitTestCase self::assertIsString($node->getIdentifier()); } - /** - * @test - */ + #[Test] public function setIdentifierTriggersIdentifierCalculationForChild(): void { $node = new ChildNode('someName'); diff --git a/typo3/sysext/core/Tests/Unit/TypoScript/AST/Node/ReferenceChildNodeTest.php b/typo3/sysext/core/Tests/Unit/TypoScript/AST/Node/ReferenceChildNodeTest.php index ff99e3b60285ab30543cdf11e7f3edb66ed01285..44e4db32a17c2a738f044a1ff16981ec8791488b 100644 --- a/typo3/sysext/core/Tests/Unit/TypoScript/AST/Node/ReferenceChildNodeTest.php +++ b/typo3/sysext/core/Tests/Unit/TypoScript/AST/Node/ReferenceChildNodeTest.php @@ -17,15 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\TypoScript\AST\Node; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\TypoScript\AST\Node\ChildNode; use TYPO3\CMS\Core\TypoScript\AST\Node\ReferenceChildNode; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ReferenceChildNodeTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getIdentifierThrowsExceptionIfNotIdentifierHasBeenSet(): void { $this->expectException(\RuntimeException::class); @@ -33,9 +32,7 @@ final class ReferenceChildNodeTest extends UnitTestCase (new ReferenceChildNode('someName'))->getIdentifier(); } - /** - * @test - */ + #[Test] public function setIdentifierCreatesIdentifierString(): void { $rootNode = new ReferenceChildNode('someName'); @@ -43,9 +40,7 @@ final class ReferenceChildNodeTest extends UnitTestCase self::assertIsString($rootNode->getIdentifier()); } - /** - * @test - */ + #[Test] public function setIdentifierTriggersIdentifierCalculationForChild(): void { $node = new ReferenceChildNode('someName'); diff --git a/typo3/sysext/core/Tests/Unit/TypoScript/AST/Node/RootNodeTest.php b/typo3/sysext/core/Tests/Unit/TypoScript/AST/Node/RootNodeTest.php index 560c754248424d4bfeda5bd1f869d97d21f9d4cc..ed747c4e095e2b40cf2814dbcdb4441a05d2e8b4 100644 --- a/typo3/sysext/core/Tests/Unit/TypoScript/AST/Node/RootNodeTest.php +++ b/typo3/sysext/core/Tests/Unit/TypoScript/AST/Node/RootNodeTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\TypoScript\AST\Node; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\TypoScript\AST\Node\ChildNode; use TYPO3\CMS\Core\TypoScript\AST\Node\ReferenceChildNode; use TYPO3\CMS\Core\TypoScript\AST\Node\RootNode; @@ -24,9 +25,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class RootNodeTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getIdentifierThrowsExceptionIfNotIdentifierHasBeenSet(): void { $this->expectException(\RuntimeException::class); @@ -34,9 +33,7 @@ final class RootNodeTest extends UnitTestCase (new RootNode())->getIdentifier(); } - /** - * @test - */ + #[Test] public function setIdentifierCreatesIdentifierString(): void { $rootNode = new RootNode(); @@ -44,9 +41,7 @@ final class RootNodeTest extends UnitTestCase self::assertSame('5c638577a9858bb2', $rootNode->getIdentifier()); } - /** - * @test - */ + #[Test] public function setIdentifierTriggersIdentifierCalculationForChild(): void { $rootNode = new RootNode(); diff --git a/typo3/sysext/core/Tests/Unit/TypoScript/AST/Traverser/AstTraverserTest.php b/typo3/sysext/core/Tests/Unit/TypoScript/AST/Traverser/AstTraverserTest.php index 486f64492ccf6498342ad2506e72d509aa4beca6..8c1b3a670c26641127d17d60cf1b96716fdc2bca 100644 --- a/typo3/sysext/core/Tests/Unit/TypoScript/AST/Traverser/AstTraverserTest.php +++ b/typo3/sysext/core/Tests/Unit/TypoScript/AST/Traverser/AstTraverserTest.php @@ -17,15 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\TypoScript\AST\Traverser; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\TypoScript\AST\Node\RootNode; use TYPO3\CMS\Core\TypoScript\AST\Traverser\AstTraverser; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class AstTraverserTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function traverseThrowsExceptionWithVisitorNotImplementingInterface(): void { $this->expectException(\RuntimeException::class); diff --git a/typo3/sysext/core/Tests/Unit/TypoScript/IncludeTree/IncludeNode/ConditionElseIncludeTest.php b/typo3/sysext/core/Tests/Unit/TypoScript/IncludeTree/IncludeNode/ConditionElseIncludeTest.php index 92eca592fd4753379f44fdcee80b33eed808121a..b849018e46bcbb08db78d3dc3886bff7467b30e6 100644 --- a/typo3/sysext/core/Tests/Unit/TypoScript/IncludeTree/IncludeNode/ConditionElseIncludeTest.php +++ b/typo3/sysext/core/Tests/Unit/TypoScript/IncludeTree/IncludeNode/ConditionElseIncludeTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\TypoScript\IncludeTree\IncludeNode; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\TypoScript\IncludeTree\IncludeNode\ConditionElseInclude; use TYPO3\CMS\Core\TypoScript\Tokenizer\Token\Token; use TYPO3\CMS\Core\TypoScript\Tokenizer\Token\TokenType; @@ -24,9 +25,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ConditionElseIncludeTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function setConditionTokenThrowsIfTokenIsNotOfTypeValue(): void { $this->expectException(\LogicException::class); @@ -34,9 +33,7 @@ final class ConditionElseIncludeTest extends UnitTestCase (new ConditionElseInclude())->setConditionToken(new Token(TokenType::T_BLANK, '')); } - /** - * @test - */ + #[Test] public function setOriginalConditionTokenThrowsIfTokenIsNotOfTypeValue(): void { $this->expectException(\LogicException::class); diff --git a/typo3/sysext/core/Tests/Unit/TypoScript/IncludeTree/IncludeNode/ConditionIncludeTest.php b/typo3/sysext/core/Tests/Unit/TypoScript/IncludeTree/IncludeNode/ConditionIncludeTest.php index 566dc6e3adbbae40460962d39fd346182a5d27af..ef084e9d5539bf2c3646f78ddc12ab57803462cc 100644 --- a/typo3/sysext/core/Tests/Unit/TypoScript/IncludeTree/IncludeNode/ConditionIncludeTest.php +++ b/typo3/sysext/core/Tests/Unit/TypoScript/IncludeTree/IncludeNode/ConditionIncludeTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\TypoScript\IncludeTree\IncludeNode; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\TypoScript\IncludeTree\IncludeNode\ConditionInclude; use TYPO3\CMS\Core\TypoScript\Tokenizer\Token\Token; use TYPO3\CMS\Core\TypoScript\Tokenizer\Token\TokenType; @@ -24,9 +25,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ConditionIncludeTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function setConditionTokenThrowsIfTokenIsNotOfTypeValue(): void { $this->expectException(\LogicException::class); @@ -34,9 +33,7 @@ final class ConditionIncludeTest extends UnitTestCase (new ConditionInclude())->setConditionToken(new Token(TokenType::T_BLANK, '')); } - /** - * @test - */ + #[Test] public function setOriginalConditionTokenThrowsIfTokenIsNotOfTypeValue(): void { $this->expectException(\LogicException::class); diff --git a/typo3/sysext/core/Tests/Unit/TypoScript/IncludeTree/IncludeNode/ConditionIncludeTyposcriptIncludeTest.php b/typo3/sysext/core/Tests/Unit/TypoScript/IncludeTree/IncludeNode/ConditionIncludeTyposcriptIncludeTest.php index 475b6adda2b760bd2861782076480978dce61947..10cbda5617127d0358c4cdd66b1bb408fdb26a73 100644 --- a/typo3/sysext/core/Tests/Unit/TypoScript/IncludeTree/IncludeNode/ConditionIncludeTyposcriptIncludeTest.php +++ b/typo3/sysext/core/Tests/Unit/TypoScript/IncludeTree/IncludeNode/ConditionIncludeTyposcriptIncludeTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\TypoScript\IncludeTree\IncludeNode; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\TypoScript\IncludeTree\IncludeNode\ConditionIncludeTyposcriptInclude; use TYPO3\CMS\Core\TypoScript\Tokenizer\Token\Token; use TYPO3\CMS\Core\TypoScript\Tokenizer\Token\TokenType; @@ -24,9 +25,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ConditionIncludeTyposcriptIncludeTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function setConditionTokenThrowsIfTokenIsNotOfTypeValue(): void { $this->expectException(\LogicException::class); @@ -34,9 +33,7 @@ final class ConditionIncludeTyposcriptIncludeTest extends UnitTestCase (new ConditionIncludeTyposcriptInclude())->setConditionToken(new Token(TokenType::T_BLANK, '')); } - /** - * @test - */ + #[Test] public function setOriginalConditionTokenThrowsIfTokenIsNotOfTypeValue(): void { $this->expectException(\LogicException::class); diff --git a/typo3/sysext/core/Tests/Unit/TypoScript/IncludeTree/IncludeNode/RootNodeTest.php b/typo3/sysext/core/Tests/Unit/TypoScript/IncludeTree/IncludeNode/RootNodeTest.php index fda3be99d563aad9d006737633b590fbf1e53319..292137eb2f19abf6986ccd87efffd65605e01484 100644 --- a/typo3/sysext/core/Tests/Unit/TypoScript/IncludeTree/IncludeNode/RootNodeTest.php +++ b/typo3/sysext/core/Tests/Unit/TypoScript/IncludeTree/IncludeNode/RootNodeTest.php @@ -17,15 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\TypoScript\IncludeTree\IncludeNode; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\TypoScript\IncludeTree\IncludeNode\RootInclude; use TYPO3\CMS\Core\TypoScript\IncludeTree\IncludeNode\StringInclude; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class RootNodeTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getIdentifierThrowsExceptionIfNotIdentifierHasBeenSet(): void { $this->expectException(\RuntimeException::class); @@ -33,9 +32,7 @@ final class RootNodeTest extends UnitTestCase (new RootInclude())->getIdentifier(); } - /** - * @test - */ + #[Test] public function setIdentifierCreatesIdentifierString(): void { $rootNode = new RootInclude(); @@ -43,9 +40,7 @@ final class RootNodeTest extends UnitTestCase self::assertSame('5c638577a9858bb2', $rootNode->getIdentifier()); } - /** - * @test - */ + #[Test] public function setIdentifierTriggersIdentifierCalculationForChild(): void { $rootNode = new RootInclude(); diff --git a/typo3/sysext/core/Tests/Unit/TypoScript/IncludeTree/Traverser/ConditionVerdictAwareIncludeTreeTraverserTest.php b/typo3/sysext/core/Tests/Unit/TypoScript/IncludeTree/Traverser/ConditionVerdictAwareIncludeTreeTraverserTest.php index bef5c91a0df98f370bdaf5f83e82605ca8663e87..8d59dfe71b396ca7e0fc6c14483a0cc600d65bed 100644 --- a/typo3/sysext/core/Tests/Unit/TypoScript/IncludeTree/Traverser/ConditionVerdictAwareIncludeTreeTraverserTest.php +++ b/typo3/sysext/core/Tests/Unit/TypoScript/IncludeTree/Traverser/ConditionVerdictAwareIncludeTreeTraverserTest.php @@ -17,15 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\TypoScript\IncludeTree\Traverser; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\TypoScript\IncludeTree\IncludeNode\RootInclude; use TYPO3\CMS\Core\TypoScript\IncludeTree\Traverser\ConditionVerdictAwareIncludeTreeTraverser; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ConditionVerdictAwareIncludeTreeTraverserTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function traverseThrowsExceptionWithVisitorNotImplementingInterface(): void { $this->expectException(\RuntimeException::class); diff --git a/typo3/sysext/core/Tests/Unit/TypoScript/IncludeTree/Traverser/IncludeTreeTraverserTest.php b/typo3/sysext/core/Tests/Unit/TypoScript/IncludeTree/Traverser/IncludeTreeTraverserTest.php index ba7ae0fbd0b2d80c20cc09628fbeab091d909583..50aea3abeac6eb87a9c5813d20689d156999c80a 100644 --- a/typo3/sysext/core/Tests/Unit/TypoScript/IncludeTree/Traverser/IncludeTreeTraverserTest.php +++ b/typo3/sysext/core/Tests/Unit/TypoScript/IncludeTree/Traverser/IncludeTreeTraverserTest.php @@ -17,15 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\TypoScript\IncludeTree\Traverser; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\TypoScript\IncludeTree\IncludeNode\RootInclude; use TYPO3\CMS\Core\TypoScript\IncludeTree\Traverser\IncludeTreeTraverser; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class IncludeTreeTraverserTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function traverseThrowsExceptionWithVisitorNotImplementingInterface(): void { $this->expectException(\RuntimeException::class); diff --git a/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Line/ConditionLineTest.php b/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Line/ConditionLineTest.php index 27e3f88e672ad24fe5237f5e3765446f4b066d37..74f64bae4cef5c0174cb1c2a12662a6f1c6f2938 100644 --- a/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Line/ConditionLineTest.php +++ b/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Line/ConditionLineTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\TypoScript\Tokenizer\Line; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\TypoScript\Tokenizer\Line\ConditionLine; use TYPO3\CMS\Core\TypoScript\Tokenizer\Token\Token; use TYPO3\CMS\Core\TypoScript\Tokenizer\Token\TokenType; @@ -24,9 +25,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ConditionLineTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function setValueTokenThrowsIfTokenIsNotOfTypeValue(): void { $this->expectException(\LogicException::class); diff --git a/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Line/IdentifierAssignmentLineTest.php b/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Line/IdentifierAssignmentLineTest.php index 8e3ade9dd6392f15ced7221b609fdd8c5c02cabd..83394c074af8628ee608f3d5c2da27ba869439d2 100644 --- a/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Line/IdentifierAssignmentLineTest.php +++ b/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Line/IdentifierAssignmentLineTest.php @@ -17,15 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\TypoScript\Tokenizer\Line; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\TypoScript\Tokenizer\Line\IdentifierAssignmentLine; use TYPO3\CMS\Core\TypoScript\Tokenizer\Token\IdentifierTokenStream; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class IdentifierAssignmentLineTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function setIdentifierTokenStreamThrowsIfStreamIsEmpty(): void { $this->expectException(\LogicException::class); @@ -33,9 +32,7 @@ final class IdentifierAssignmentLineTest extends UnitTestCase (new IdentifierAssignmentLine())->setIdentifierTokenStream(new IdentifierTokenStream()); } - /** - * @test - */ + #[Test] public function setValueTokenStreamThrowsIfStreamIsEmpty(): void { $this->expectException(\LogicException::class); diff --git a/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Line/IdentifierBlockOpenLineTest.php b/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Line/IdentifierBlockOpenLineTest.php index 9d154faf0f24e641d1833b24989c5f9adb17eed5..d0e9db98a9f25275d689f346155b878129d5b7e2 100644 --- a/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Line/IdentifierBlockOpenLineTest.php +++ b/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Line/IdentifierBlockOpenLineTest.php @@ -17,15 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\TypoScript\Tokenizer\Line; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\TypoScript\Tokenizer\Line\IdentifierBlockOpenLine; use TYPO3\CMS\Core\TypoScript\Tokenizer\Token\IdentifierTokenStream; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class IdentifierBlockOpenLineTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function setIdentifierTokenStreamThrowsIfStreamIsEmpty(): void { $this->expectException(\LogicException::class); diff --git a/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Line/IdentifierCopyLineTest.php b/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Line/IdentifierCopyLineTest.php index 29db4c1b8ce19fa1016df3cca3622f2463417d20..9e04fc4dbc1da7c9beebc2ce9de061857aeceaa2 100644 --- a/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Line/IdentifierCopyLineTest.php +++ b/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Line/IdentifierCopyLineTest.php @@ -17,15 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\TypoScript\Tokenizer\Line; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\TypoScript\Tokenizer\Line\IdentifierCopyLine; use TYPO3\CMS\Core\TypoScript\Tokenizer\Token\IdentifierTokenStream; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class IdentifierCopyLineTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function setIdentifierTokenStreamThrowsIfStreamIsEmpty(): void { $this->expectException(\LogicException::class); @@ -33,9 +32,7 @@ final class IdentifierCopyLineTest extends UnitTestCase (new IdentifierCopyLine())->setIdentifierTokenStream(new IdentifierTokenStream()); } - /** - * @test - */ + #[Test] public function setValueTokenStreamThrowsIfStreamIsEmpty(): void { $this->expectException(\LogicException::class); diff --git a/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Line/IdentifierFunctionLineTest.php b/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Line/IdentifierFunctionLineTest.php index 8a30c16754ceb087f8fba597a3776820695c1084..8c9e7cfdc76fa2e17209bc06cce1aa40e592a195 100644 --- a/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Line/IdentifierFunctionLineTest.php +++ b/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Line/IdentifierFunctionLineTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\TypoScript\Tokenizer\Line; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\TypoScript\Tokenizer\Line\IdentifierFunctionLine; use TYPO3\CMS\Core\TypoScript\Tokenizer\Token\IdentifierTokenStream; use TYPO3\CMS\Core\TypoScript\Tokenizer\Token\Token; @@ -25,9 +26,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class IdentifierFunctionLineTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function setIdentifierTokenStreamThrowsIfStreamIsEmpty(): void { $this->expectException(\LogicException::class); @@ -35,9 +34,7 @@ final class IdentifierFunctionLineTest extends UnitTestCase (new IdentifierFunctionLine())->setIdentifierTokenStream(new IdentifierTokenStream()); } - /** - * @test - */ + #[Test] public function setFunctionNameTokenThrowsIfTokenIsNotOfTypeFunction(): void { $this->expectException(\LogicException::class); @@ -45,9 +42,7 @@ final class IdentifierFunctionLineTest extends UnitTestCase (new IdentifierFunctionLine())->setFunctionNameToken(new Token(TokenType::T_BLANK, '')); } - /** - * @test - */ + #[Test] public function setFunctionValueTokenThrowsIfTokenIsNotOfTypeValue(): void { $this->expectException(\LogicException::class); diff --git a/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Line/IdentifierReferenceLineTest.php b/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Line/IdentifierReferenceLineTest.php index 1ce800ec29fdcd77e70d41f01c3fb37d00a9248d..097b0092f7c9a35f19ef697eac0968b81193ecb6 100644 --- a/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Line/IdentifierReferenceLineTest.php +++ b/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Line/IdentifierReferenceLineTest.php @@ -17,15 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\TypoScript\Tokenizer\Line; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\TypoScript\Tokenizer\Line\IdentifierReferenceLine; use TYPO3\CMS\Core\TypoScript\Tokenizer\Token\IdentifierTokenStream; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class IdentifierReferenceLineTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function setIdentifierTokenStreamThrowsIfStreamIsEmpty(): void { $this->expectException(\LogicException::class); @@ -33,9 +32,7 @@ final class IdentifierReferenceLineTest extends UnitTestCase (new IdentifierReferenceLine())->setIdentifierTokenStream(new IdentifierTokenStream()); } - /** - * @test - */ + #[Test] public function setValueTokenStreamThrowsIfStreamIsEmpty(): void { $this->expectException(\LogicException::class); diff --git a/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Line/IdentifierUnsetLineTest.php b/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Line/IdentifierUnsetLineTest.php index 1509f4ab0bdbe1ab1fb765e15b96f796e29847a5..01c14ac01c874052e2c383f4b4c5661cbef3701d 100644 --- a/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Line/IdentifierUnsetLineTest.php +++ b/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Line/IdentifierUnsetLineTest.php @@ -17,15 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\TypoScript\Tokenizer\Line; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\TypoScript\Tokenizer\Line\IdentifierUnsetLine; use TYPO3\CMS\Core\TypoScript\Tokenizer\Token\IdentifierTokenStream; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class IdentifierUnsetLineTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function setIdentifierTokenStreamThrowsIfStreamIsEmpty(): void { $this->expectException(\LogicException::class); diff --git a/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Line/ImportLineTest.php b/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Line/ImportLineTest.php index c7fec6a9c824a75407f3b72a93aa22382f36dafc..29c28d0907774d85ae532164b69b9090d1012849 100644 --- a/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Line/ImportLineTest.php +++ b/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Line/ImportLineTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\TypoScript\Tokenizer\Line; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\TypoScript\Tokenizer\Line\ImportLine; use TYPO3\CMS\Core\TypoScript\Tokenizer\Token\Token; use TYPO3\CMS\Core\TypoScript\Tokenizer\Token\TokenType; @@ -24,9 +25,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ImportLineTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function setFunctionValueTokenThrowsIfTokenIsNotOfTypeValue(): void { $this->expectException(\LogicException::class); diff --git a/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Line/ImportOldLineTest.php b/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Line/ImportOldLineTest.php index 6044fb84429db0ce1b00ab24a6b31dee53002ca9..8290362325ea5eb065e37ca697bd17adac75e89c 100644 --- a/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Line/ImportOldLineTest.php +++ b/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Line/ImportOldLineTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\TypoScript\Tokenizer\Line; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\TypoScript\Tokenizer\Line\ImportOldLine; use TYPO3\CMS\Core\TypoScript\Tokenizer\Token\Token; use TYPO3\CMS\Core\TypoScript\Tokenizer\Token\TokenType; @@ -24,9 +25,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ImportOldLineTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function setFunctionValueTokenThrowsIfTokenIsNotOfTypeValue(): void { $this->expectException(\LogicException::class); diff --git a/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Token/IdentifierTokenStreamTest.php b/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Token/IdentifierTokenStreamTest.php index 041514c0766d50ccccbb4c431c971741a1337ea0..f844393df98a3c4b827d41da4ff2ab7b1208ec7d 100644 --- a/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Token/IdentifierTokenStreamTest.php +++ b/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Token/IdentifierTokenStreamTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\TypoScript\Tokenizer\Token; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\TypoScript\Tokenizer\Token\IdentifierTokenStream; use TYPO3\CMS\Core\TypoScript\Tokenizer\Token\Token; use TYPO3\CMS\Core\TypoScript\Tokenizer\Token\TokenType; @@ -24,9 +25,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class IdentifierTokenStreamTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function appendThrowsExceptionIfTokenIsNotOfTypeIdentifier(): void { $this->expectException(\LogicException::class); @@ -35,26 +34,20 @@ final class IdentifierTokenStreamTest extends UnitTestCase (new IdentifierTokenStream())->append($token); } - /** - * @test - */ + #[Test] public function canAppendIdentifierToken(): void { $token = new Token(TokenType::T_IDENTIFIER, '', 0, 0); (new IdentifierTokenStream())->append($token); } - /** - * @test - */ + #[Test] public function nonRelativeStreamIsNotRelative(): void { self::assertFalse((new IdentifierTokenStream())->isRelative()); } - /** - * @test - */ + #[Test] public function relativeStreamIsRelative(): void { $tokenStream = (new IdentifierTokenStream()); diff --git a/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Token/TokenStreamTest.php b/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Token/TokenStreamTest.php index 640d7c38f970326b7eae6eee031273d777546758..e11e9f9f63e93ff83f436d6658f45f737850677f 100644 --- a/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Token/TokenStreamTest.php +++ b/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Token/TokenStreamTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\TypoScript\Tokenizer\Token; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\TypoScript\Tokenizer\Token\Token; use TYPO3\CMS\Core\TypoScript\Tokenizer\Token\TokenStream; use TYPO3\CMS\Core\TypoScript\Tokenizer\Token\TokenType; @@ -24,9 +25,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class TokenStreamTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getNextReturnsToken(): void { $subject = new TokenStream(); @@ -35,9 +34,7 @@ final class TokenStreamTest extends UnitTestCase self::assertSame($subject->getNext(), $token); } - /** - * @test - */ + #[Test] public function getNextReturnsNullIfThereIsNoToken(): void { $subject = new TokenStream(); @@ -47,9 +44,7 @@ final class TokenStreamTest extends UnitTestCase self::assertNull($subject->getNext()); } - /** - * @test - */ + #[Test] public function peekNextReturnsTokenAndDoesNotRaisePointer(): void { $subject = new TokenStream(); @@ -62,9 +57,7 @@ final class TokenStreamTest extends UnitTestCase self::assertSame($subject->peekNext(), $newLineToken); } - /** - * @test - */ + #[Test] public function peekNextReturnsNullIfThereIsNoNextToken(): void { $subject = new TokenStream(); diff --git a/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Token/TokenTest.php b/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Token/TokenTest.php index 0858314e9ee8988ed8a73c8e4be27ebf7b32a808..b03343afd8e64c77612d27e3da1a3cd6b0dda498 100644 --- a/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Token/TokenTest.php +++ b/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/Token/TokenTest.php @@ -17,47 +17,38 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\TypoScript\Tokenizer\Token; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\TypoScript\Tokenizer\Token\Token; use TYPO3\CMS\Core\TypoScript\Tokenizer\Token\TokenType; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class TokenTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getTypeReturnsType(): void { self::assertSame(TokenType::T_VALUE, (new Token(TokenType::T_VALUE, '', 0, 0))->getType()); } - /** - * @test - */ + #[Test] public function getValueReturnsValue(): void { self::assertSame('foo', (new Token(TokenType::T_VALUE, 'foo', 0, 0))->getValue()); } - /** - * @test - */ + #[Test] public function getLineReturnsLine(): void { self::assertSame(42, (new Token(TokenType::T_VALUE, '', 42, 0))->getLine()); } - /** - * @test - */ + #[Test] public function getColumnReturnsColumn(): void { self::assertSame(42, (new Token(TokenType::T_VALUE, '', 0, 42))->getColumn()); } - /** - * @test - */ + #[Test] public function stringCastReturnsValue(): void { self::assertSame('foo', (string)(new Token(TokenType::T_VALUE, 'foo', 0, 0))); diff --git a/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/TokenizerInterfaceTest.php b/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/TokenizerInterfaceTest.php index ffef55851e231529aa9ff9055d4d9a832bc40064..4e1a884af4c4e4b0b5c1495167b0d6641128cd86 100644 --- a/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/TokenizerInterfaceTest.php +++ b/typo3/sysext/core/Tests/Unit/TypoScript/Tokenizer/TokenizerInterfaceTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\TypoScript\Tokenizer; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\TypoScript\Tokenizer\Line\BlockCloseLine; use TYPO3\CMS\Core\TypoScript\Tokenizer\Line\CommentLine; use TYPO3\CMS\Core\TypoScript\Tokenizer\Line\ConditionElseLine; @@ -7998,30 +8000,24 @@ final class TokenizerInterfaceTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider tokenizeStringDataProvider - */ + #[DataProvider('tokenizeStringDataProvider')] + #[Test] public function tokenize(string $source, LineStream $expected): void { $tokens = (new LosslessTokenizer())->tokenize($source); self::assertEquals($expected, $tokens); } - /** - * @test - * @dataProvider tokenizeStringDataProvider - */ + #[DataProvider('tokenizeStringDataProvider')] + #[Test] public function tokenizeLossy(string $source, LineStream $_, LineStream $expected): void { $tokens = (new LossyTokenizer())->tokenize($source); self::assertEquals($expected, $tokens); } - /** - * @test - * @dataProvider tokenizeStringDataProvider - */ + #[DataProvider('tokenizeStringDataProvider')] + #[Test] public function untokenize(string $source): void { $tokenizer = new LosslessTokenizer(); diff --git a/typo3/sysext/core/Tests/Unit/TypoScript/TypoScriptServiceTest.php b/typo3/sysext/core/Tests/Unit/TypoScript/TypoScriptServiceTest.php index 8793a68518c1cedcc6e996f4443df937db69f00b..f3802ab1ab4c3895b66675d5507233064736f124 100644 --- a/typo3/sysext/core/Tests/Unit/TypoScript/TypoScriptServiceTest.php +++ b/typo3/sysext/core/Tests/Unit/TypoScript/TypoScriptServiceTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\TypoScript; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\TypoScript\TypoScriptService; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -146,11 +148,11 @@ final class TypoScriptServiceTest extends UnitTestCase } /** - * @test - * @dataProvider convertTypoScriptArrayToPlainArrayTestdata * @param mixed $typoScriptSettings * @param mixed $expectedSettings */ + #[DataProvider('convertTypoScriptArrayToPlainArrayTestdata')] + #[Test] public function convertTypoScriptArrayToPlainArrayRemovesTrailingDotsWithChangedOrderInTheTypoScriptArray( $typoScriptSettings, $expectedSettings @@ -280,11 +282,11 @@ final class TypoScriptServiceTest extends UnitTestCase } /** - * @test - * @dataProvider convertPlainArrayToTypoScriptArrayTestdata * @param mixed $extbaseTS * @param mixed $classic */ + #[DataProvider('convertPlainArrayToTypoScriptArrayTestdata')] + #[Test] public function convertPlainArrayToTypoScriptArray($extbaseTS, $classic): void { $typoScriptService = new TypoScriptService(); @@ -401,10 +403,10 @@ final class TypoScriptServiceTest extends UnitTestCase } /** - * @test - * @dataProvider explodeConfigurationForOptionSplitProvider * @see https://docs.typo3.org/typo3cms/TyposcriptReference/ObjectsAndProperties/Index.html#objects-optionsplit */ + #[DataProvider('explodeConfigurationForOptionSplitProvider')] + #[Test] public function explodeConfigurationForOptionSplitTest($configuration, $splitCount, $expected): void { $serviceObject = new TypoScriptService(); diff --git a/typo3/sysext/core/Tests/Unit/Utility/ArrayUtilityTest.php b/typo3/sysext/core/Tests/Unit/Utility/ArrayUtilityTest.php index 9e7dd52824697a209d3bdf84e751090818e11e7a..cf9ddea1e563c8ac5a4f9e2ff558cca2389c966b 100644 --- a/typo3/sysext/core/Tests/Unit/Utility/ArrayUtilityTest.php +++ b/typo3/sysext/core/Tests/Unit/Utility/ArrayUtilityTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Utility; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Tests\Unit\Utility\Fixtures\ArrayUtilityFilterRecursiveCallbackFixture; use TYPO3\CMS\Core\Utility\ArrayUtility; use TYPO3\CMS\Core\Utility\Exception\MissingArrayPathException; @@ -161,12 +163,12 @@ final class ArrayUtilityTest extends UnitTestCase } /** - * @test - * @dataProvider filterByValueRecursive * @param array $needle * @param array $haystack * @param array $expectedResult */ + #[DataProvider('filterByValueRecursive')] + #[Test] public function filterByValueRecursiveCorrectlyFiltersArray($needle, $haystack, $expectedResult): void { self::assertEquals( @@ -175,9 +177,7 @@ final class ArrayUtilityTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function filterByValueRecursiveMatchesReferencesToSameObject(): void { $instance = new \stdClass(); @@ -187,9 +187,7 @@ final class ArrayUtilityTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function filterByValueRecursiveDoesNotMatchDifferentInstancesOfSameClass(): void { self::assertEquals( @@ -201,33 +199,25 @@ final class ArrayUtilityTest extends UnitTestCase /////////////////////// // Tests concerning isValidPath /////////////////////// - /** - * @test - */ + #[Test] public function isValidPathReturnsTrueIfPathExistsStringVersion(): void { self::assertTrue(ArrayUtility::isValidPath(['foo' => 'bar'], 'foo')); } - /** - * @test - */ + #[Test] public function isValidPathReturnsFalseIfPathDoesNotExistStringVersion(): void { self::assertFalse(ArrayUtility::isValidPath(['foo' => 'bar'], 'bar')); } - /** - * @test - */ + #[Test] public function isValidPathReturnsTrueIfPathExistsArrayVersion(): void { self::assertTrue(ArrayUtility::isValidPath(['foo' => 'bar'], ['foo'])); } - /** - * @test - */ + #[Test] public function isValidPathReturnsFalseIfPathDoesNotExistArrayVersion(): void { self::assertFalse(ArrayUtility::isValidPath(['foo' => 'bar'], ['bar'])); @@ -236,10 +226,7 @@ final class ArrayUtilityTest extends UnitTestCase /////////////////////// // Tests concerning getValueByPath /////////////////////// - - /** - * @test - */ + #[Test] public function getValueByPathThrowsExceptionIfPathIsEmpty(): void { $this->expectException(\RuntimeException::class); @@ -248,17 +235,13 @@ final class ArrayUtilityTest extends UnitTestCase ArrayUtility::getValueByPath([], ''); } - /** - * @test - */ + #[Test] public function getValueByPathReturnsFirstIndexIfPathIsZero(): void { self::assertSame('foo', ArrayUtility::getValueByPath(['foo'], '0')); } - /** - * @test - */ + #[Test] public function getValueByPathReturnsFirstIndexIfPathSegmentIsZero(): void { self::assertSame('bar', ArrayUtility::getValueByPath(['foo' => ['bar']], 'foo/0')); @@ -333,10 +316,10 @@ final class ArrayUtilityTest extends UnitTestCase } /** - * @test - * @dataProvider getValueByPathInvalidPathDataProvider * @param string $path */ + #[DataProvider('getValueByPathInvalidPathDataProvider')] + #[Test] public function getValueByPathThrowsExceptionIfPathNotExists(array $array, $path): void { $this->expectException(\RuntimeException::class); @@ -344,10 +327,8 @@ final class ArrayUtilityTest extends UnitTestCase ArrayUtility::getValueByPath($array, $path); } - /** - * @test - * @dataProvider getValueByPathInvalidPathDataProvider - */ + #[DataProvider('getValueByPathInvalidPathDataProvider')] + #[Test] public function getValueByPathThrowsSpecificExceptionIfPathNotExists(array $array, string $path): void { $this->expectException(MissingArrayPathException::class); @@ -462,19 +443,17 @@ final class ArrayUtilityTest extends UnitTestCase } /** - * @test - * @dataProvider getValueByPathValidDataProvider * @param string $path * @param mixed $expectedResult */ + #[DataProvider('getValueByPathValidDataProvider')] + #[Test] public function getValueByPathGetsCorrectValue(array $array, $path, $expectedResult): void { self::assertEquals($expectedResult, ArrayUtility::getValueByPath($array, $path)); } - /** - * @test - */ + #[Test] public function getValueByPathAcceptsDifferentDelimiter(): void { $input = [ @@ -497,9 +476,7 @@ final class ArrayUtilityTest extends UnitTestCase /////////////////////// // Tests concerning setValueByPath /////////////////////// - /** - * @test - */ + #[Test] public function setValueByPathThrowsExceptionIfPathIsEmpty(): void { $this->expectException(\RuntimeException::class); @@ -508,9 +485,7 @@ final class ArrayUtilityTest extends UnitTestCase ArrayUtility::setValueByPath([], '', null); } - /** - * @test - */ + #[Test] public function setValueByPathThrowsExceptionIfPathSegmentIsEmpty(): void { $this->expectException(\RuntimeException::class); @@ -519,17 +494,13 @@ final class ArrayUtilityTest extends UnitTestCase ArrayUtility::setValueByPath(['foo' => 'bar'], '/foo', 'value'); } - /** - * @test - */ + #[Test] public function setValueByPathCanUseZeroAsPathSegment(): void { self::assertSame(['foo' => ['value']], ArrayUtility::setValueByPath(['foo' => []], 'foo/0', 'value')); } - /** - * @test - */ + #[Test] public function setValueByPathCanUseZeroAsPath(): void { self::assertSame(['value', 'bar'], ArrayUtility::setValueByPath(['foo', 'bar'], '0', 'value')); @@ -747,12 +718,12 @@ final class ArrayUtilityTest extends UnitTestCase } /** - * @test - * @dataProvider setValueByPathSetsCorrectValueDataProvider * @param string $path * @param string $value * @param array $expectedResult */ + #[DataProvider('setValueByPathSetsCorrectValueDataProvider')] + #[Test] public function setValueByPathSetsCorrectValue(array $array, $path, $value, $expectedResult): void { self::assertEquals( @@ -762,12 +733,9 @@ final class ArrayUtilityTest extends UnitTestCase } /********************** - /* Tests concerning removeByPath - ***********************/ - - /** - * @test - */ + /* Tests concerning removeByPath + ***********************/ + #[Test] public function removeByPathThrowsExceptionIfPathIsEmpty(): void { $this->expectException(\RuntimeException::class); @@ -776,9 +744,7 @@ final class ArrayUtilityTest extends UnitTestCase ArrayUtility::removeByPath([], ''); } - /** - * @test - */ + #[Test] public function removeByPathThrowsExceptionWithEmptyPathSegment(): void { $inputArray = [ @@ -793,9 +759,7 @@ final class ArrayUtilityTest extends UnitTestCase ArrayUtility::removeByPath($inputArray, 'foo//bar'); } - /** - * @test - */ + #[Test] public function removeByPathRemovesFirstIndexWithZeroAsPathSegment(): void { $inputArray = [ @@ -805,9 +769,7 @@ final class ArrayUtilityTest extends UnitTestCase self::assertSame(['foo' => []], ArrayUtility::removeByPath($inputArray, 'foo/0')); } - /** - * @test - */ + #[Test] public function removeByPathRemovesFirstIndexWithZeroAsPath(): void { $inputArray = ['bar']; @@ -815,9 +777,7 @@ final class ArrayUtilityTest extends UnitTestCase self::assertSame([], ArrayUtility::removeByPath($inputArray, '0')); } - /** - * @test - */ + #[Test] public function removeByPathThrowsExceptionIfPathDoesNotExistInArray(): void { $inputArray = [ @@ -832,9 +792,7 @@ final class ArrayUtilityTest extends UnitTestCase ArrayUtility::removeByPath($inputArray, 'foo/baz'); } - /** - * @test - */ + #[Test] public function removeByPathThrowsSpecificExceptionIfPathDoesNotExistInArray(): void { $inputArray = [ @@ -849,9 +807,7 @@ final class ArrayUtilityTest extends UnitTestCase ArrayUtility::removeByPath($inputArray, 'foo/baz'); } - /** - * @test - */ + #[Test] public function removeByPathAcceptsGivenDelimiter(): void { $inputArray = [ @@ -921,11 +877,11 @@ final class ArrayUtilityTest extends UnitTestCase } /** - * @test - * @dataProvider removeByPathRemovesCorrectPathDataProvider * @param string $path * @param array $expectedResult */ + #[DataProvider('removeByPathRemovesCorrectPathDataProvider')] + #[Test] public function removeByPathRemovesCorrectPath(array $array, $path, $expectedResult): void { self::assertEquals( @@ -937,9 +893,7 @@ final class ArrayUtilityTest extends UnitTestCase /////////////////////// // Tests concerning sortByKeyRecursive /////////////////////// - /** - * @test - */ + #[Test] public function sortByKeyRecursiveCheckIfSortingIsCorrect(): void { $unsortedArray = [ @@ -1092,21 +1046,19 @@ final class ArrayUtilityTest extends UnitTestCase } /** - * @test - * @dataProvider sortArraysByKeyCheckIfSortingIsCorrectDataProvider * @param string $key * @param bool $ascending * @param array $expectedResult */ + #[DataProvider('sortArraysByKeyCheckIfSortingIsCorrectDataProvider')] + #[Test] public function sortArraysByKeyCheckIfSortingIsCorrect(array $array, $key, $ascending, $expectedResult): void { $sortedArray = ArrayUtility::sortArraysByKey($array, $key, $ascending); self::assertSame($expectedResult, $sortedArray); } - /** - * @test - */ + #[Test] public function sortArraysByKeyThrowsExceptionForNonExistingKey(): void { $this->expectException(\RuntimeException::class); @@ -1118,9 +1070,7 @@ final class ArrayUtilityTest extends UnitTestCase /////////////////////// // Tests concerning arrayExport /////////////////////// - /** - * @test - */ + #[Test] public function arrayExportReturnsFormattedMultidimensionalArray(): void { $array = [ @@ -1157,9 +1107,7 @@ final class ArrayUtilityTest extends UnitTestCase self::assertSame($expected, ArrayUtility::arrayExport($array)); } - /** - * @test - */ + #[Test] public function arrayExportThrowsExceptionIfObjectShouldBeExported(): void { $array = [ @@ -1174,9 +1122,7 @@ final class ArrayUtilityTest extends UnitTestCase ArrayUtility::arrayExport($array); } - /** - * @test - */ + #[Test] public function arrayExportReturnsNumericArrayKeys(): void { $array = [ @@ -1193,9 +1139,7 @@ final class ArrayUtilityTest extends UnitTestCase self::assertSame($expected, ArrayUtility::arrayExport($array)); } - /** - * @test - */ + #[Test] public function arrayExportReturnsNoKeyIndexForConsecutiveCountedArrays(): void { $array = [ @@ -1212,9 +1156,7 @@ final class ArrayUtilityTest extends UnitTestCase self::assertSame($expected, ArrayUtility::arrayExport($array)); } - /** - * @test - */ + #[Test] public function arrayExportReturnsKeyIndexForNonConsecutiveCountedArrays(): void { $array = [ @@ -1351,10 +1293,8 @@ final class ArrayUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider flattenCalculatesExpectedResultDataProvider - */ + #[DataProvider('flattenCalculatesExpectedResultDataProvider')] + #[Test] public function flattenCalculatesExpectedResult(array $array, array $expected): void { self::assertEquals($expected, ArrayUtility::flatten($array)); @@ -1518,10 +1458,8 @@ final class ArrayUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider flattenPlainCalculatesExpectedResultDataProvider - */ + #[DataProvider('flattenPlainCalculatesExpectedResultDataProvider')] + #[Test] public function flattenPlainCalculatesExpectedResult(array $array, array $expected): void { self::assertEquals($expected, ArrayUtility::flattenPlain($array)); @@ -1635,10 +1573,8 @@ final class ArrayUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider flattenWithKeepDotsCalculatesExpectedResultDataProvider - */ + #[DataProvider('flattenWithKeepDotsCalculatesExpectedResultDataProvider')] + #[Test] public function flattenWithKeepDotsCalculatesExpectedResult(array $array, array $expected): void { self::assertEquals($expected, ArrayUtility::flatten($array, '', true)); @@ -1802,10 +1738,8 @@ final class ArrayUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider unflattenCalculatesExpectedResultDataProvider - */ + #[DataProvider('unflattenCalculatesExpectedResultDataProvider')] + #[Test] public function unflattenCalculatesExpectedResult(array $array, array $expected): void { self::assertEquals($expected, ArrayUtility::unflatten($array)); @@ -2005,10 +1939,8 @@ final class ArrayUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider intersectRecursiveCalculatesExpectedResultDataProvider - */ + #[DataProvider('intersectRecursiveCalculatesExpectedResultDataProvider')] + #[Test] public function intersectRecursiveCalculatesExpectedResult(array $source, array $mask, array $expected): void { self::assertSame($expected, ArrayUtility::intersectRecursive($source, $mask)); @@ -2134,10 +2066,8 @@ final class ArrayUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider renumberKeysToAvoidLeapsIfKeysAreAllNumericDataProvider - */ + #[DataProvider('renumberKeysToAvoidLeapsIfKeysAreAllNumericDataProvider')] + #[Test] public function renumberKeysToAvoidLeapsIfKeysAreAllNumericReturnsExpectedOrder(array $inputArray, array $expected): void { self::assertEquals($expected, ArrayUtility::renumberKeysToAvoidLeapsIfKeysAreAllNumeric($inputArray)); @@ -2379,8 +2309,6 @@ final class ArrayUtilityTest extends UnitTestCase } /** - * @test - * @dataProvider mergeRecursiveWithOverruleCalculatesExpectedResultDataProvider * @param array $input1 Input 1 * @param array $input2 Input 2 * @param bool $addKeys TRUE if should add keys, else FALSE @@ -2388,6 +2316,8 @@ final class ArrayUtilityTest extends UnitTestCase * @param bool $enableUnsetFeature TRUE if should enable unset feature, else FALSE * @param array $expected expected array */ + #[DataProvider('mergeRecursiveWithOverruleCalculatesExpectedResultDataProvider')] + #[Test] public function mergeRecursiveWithOverruleCalculatesExpectedResult($input1, $input2, $addKeys, $includeEmptyValues, $enableUnsetFeature, $expected): void { ArrayUtility::mergeRecursiveWithOverrule($input1, $input2, $addKeys, $includeEmptyValues, $enableUnsetFeature); @@ -2397,9 +2327,7 @@ final class ArrayUtilityTest extends UnitTestCase ////////////////////////////////// // Tests concerning removeArrayEntryByValue ////////////////////////////////// - /** - * @test - */ + #[Test] public function checkRemoveArrayEntryByValueRemovesEntriesFromOneDimensionalArray(): void { $inputArray = [ @@ -2417,9 +2345,7 @@ final class ArrayUtilityTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function checkRemoveArrayEntryByValueRemovesEntriesFromMultiDimensionalArray(): void { $inputArray = [ @@ -2438,9 +2364,7 @@ final class ArrayUtilityTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function checkRemoveArrayEntryByValueRemovesEntryWithEmptyString(): void { $inputArray = [ @@ -2461,12 +2385,12 @@ final class ArrayUtilityTest extends UnitTestCase // Tests concerning keepItemsInArray ////////////////////////////////// /** - * @test - * @dataProvider keepItemsInArrayWorksWithOneArgumentDataProvider * @param mixed $search The items which are allowed/kept in the array * @param array $array target array * @param array $expected expected array */ + #[DataProvider('keepItemsInArrayWorksWithOneArgumentDataProvider')] + #[Test] public function keepItemsInArrayWorksWithOneArgument($search, $array, $expected): void { self::assertEquals($expected, ArrayUtility::keepItemsInArray($array, $search)); @@ -2496,9 +2420,8 @@ final class ArrayUtilityTest extends UnitTestCase * Shows the example from the doc comment where * a function is used to reduce the sub arrays to one item which * is then used for the matching. - * - * @test */ + #[Test] public function keepItemsInArrayCanUseClosure(): void { $array = [ @@ -2521,9 +2444,7 @@ final class ArrayUtilityTest extends UnitTestCase ////////////////////////////////// // Tests concerning remapArrayKeys ////////////////////////////////// - /** - * @test - */ + #[Test] public function remapArrayKeysExchangesKeysWithGivenMapping(): void { $array = [ @@ -2547,9 +2468,7 @@ final class ArrayUtilityTest extends UnitTestCase ////////////////////////////////////// // Tests concerning arrayDiffKeyRecursive ////////////////////////////////////// - /** - * @test - */ + #[Test] public function arrayDiffKeyRecursiveHandlesOneDimensionalArrays(): void { $array1 = [ @@ -2568,9 +2487,7 @@ final class ArrayUtilityTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function arrayDiffKeyRecursiveHandlesMultiDimensionalArrays(): void { $array1 = [ @@ -2605,9 +2522,7 @@ final class ArrayUtilityTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function arrayDiffKeyRecursiveHandlesMixedArrays(): void { $array1 = [ @@ -2631,9 +2546,7 @@ final class ArrayUtilityTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function arrayDiffKeyRecursiveReturnsEmptyIfEqual(): void { $array1 = [ @@ -2660,9 +2573,7 @@ final class ArrayUtilityTest extends UnitTestCase ////////////////////////////////////// // Tests concerning arrayDiffAssocRecursive ////////////////////////////////////// - /** - * @test - */ + #[Test] public function arrayDiffAssocRecursiveHandlesOneDimensionalArrays(): void { $array1 = [ @@ -2681,9 +2592,7 @@ final class ArrayUtilityTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function arrayDiffAssocRecursiveHandlesMultiDimensionalArrays(): void { $array1 = [ @@ -2719,9 +2628,7 @@ final class ArrayUtilityTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function arrayDiffAssocRecursiveHandlesMixedArrays(): void { $array1 = [ @@ -2746,9 +2653,7 @@ final class ArrayUtilityTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function arrayDiffAssocRecursiveReturnsEmptyIfEqual(): void { $array1 = [ @@ -2775,10 +2680,7 @@ final class ArrayUtilityTest extends UnitTestCase ////////////////////////////////////// // Tests concerning naturalKeySortRecursive ////////////////////////////////////// - - /** - * @test - */ + #[Test] public function naturalKeySortRecursiveSortsOneDimensionalArrayByNaturalOrder(): void { $testArray = [ @@ -2811,9 +2713,7 @@ final class ArrayUtilityTest extends UnitTestCase self::assertEquals($expectedResult, array_values($testArray)); } - /** - * @test - */ + #[Test] public function naturalKeySortRecursiveSortsMultiDimensionalArrayByNaturalOrder(): void { $testArray = [ @@ -2955,12 +2855,11 @@ final class ArrayUtilityTest extends UnitTestCase } /** - * @test - * @dataProvider filterAndSortByNumericKeysWithAcceptAnyKey - * * @param array $input * @param array $expected */ + #[DataProvider('filterAndSortByNumericKeysWithAcceptAnyKey')] + #[Test] public function filterAndSortByNumericKeysBehavesCorrectlyForAcceptAnyKeysIsTrue($input, $expected): void { $result = ArrayUtility::filterAndSortByNumericKeys($input, true); @@ -3019,12 +2918,11 @@ final class ArrayUtilityTest extends UnitTestCase } /** - * @test - * @dataProvider filterAndSortByNumericKeysWithoutAcceptAnyKey - * * @param array $input * @param array $expected */ + #[DataProvider('filterAndSortByNumericKeysWithoutAcceptAnyKey')] + #[Test] public function filterAndSortByNumericKeysBehavesCorrectlyForAcceptAnyKeysIsFalse($input, $expected): void { $result = ArrayUtility::filterAndSortByNumericKeys($input); @@ -3076,21 +2974,15 @@ final class ArrayUtilityTest extends UnitTestCase ]; } - /** - * @test - * - * - * @dataProvider sortArrayWithIntegerKeysDataProvider - */ + #[DataProvider('sortArrayWithIntegerKeysDataProvider')] + #[Test] public function sortArrayWithIntegerKeysSortsNumericArrays(array $arrayToSort, array $expectedArray): void { $sortedArray = ArrayUtility::sortArrayWithIntegerKeys($arrayToSort); self::assertSame($sortedArray, $expectedArray); } - /** - * @test - */ + #[Test] public function assertAllArrayKeysAreValidThrowsExceptionOnNotAllowedArrayKeys(): void { $this->expectException(\InvalidArgumentException::class); @@ -3110,9 +3002,7 @@ final class ArrayUtilityTest extends UnitTestCase ArrayUtility::assertAllArrayKeysAreValid($arrayToTest, $allowedArrayKeys); } - /** - * @test - */ + #[Test] public function assertAllArrayKeysAreValidReturnsNullOnAllowedArrayKeys(): void { $arrayToTest = [ @@ -3130,9 +3020,7 @@ final class ArrayUtilityTest extends UnitTestCase ArrayUtility::assertAllArrayKeysAreValid($arrayToTest, $allowedArrayKeys); } - /** - * @test - */ + #[Test] public function sortArrayWithIntegerKeysRecursiveExpectSorting(): void { $input = [ @@ -3160,9 +3048,7 @@ final class ArrayUtilityTest extends UnitTestCase self::assertSame($expected, ArrayUtility::sortArrayWithIntegerKeysRecursive($input)); } - /** - * @test - */ + #[Test] public function sortArrayWithIntegerKeysRecursiveExpectNoSorting(): void { $input = [ @@ -3182,9 +3068,7 @@ final class ArrayUtilityTest extends UnitTestCase self::assertSame($expected, ArrayUtility::sortArrayWithIntegerKeysRecursive($input)); } - /** - * @test - */ + #[Test] public function reIndexNumericArrayKeysRecursiveExpectReindexing(): void { $input = [ @@ -3212,9 +3096,7 @@ final class ArrayUtilityTest extends UnitTestCase self::assertSame($expected, ArrayUtility::reIndexNumericArrayKeysRecursive($input)); } - /** - * @test - */ + #[Test] public function reIndexNumericArrayKeysRecursiveExpectNoReindexing(): void { $input = [ @@ -3242,9 +3124,7 @@ final class ArrayUtilityTest extends UnitTestCase self::assertSame($expected, ArrayUtility::reIndexNumericArrayKeysRecursive($input)); } - /** - * @test - */ + #[Test] public function removeNullValuesRecursiveExpectRemoval(): void { $input = [ @@ -3265,9 +3145,7 @@ final class ArrayUtilityTest extends UnitTestCase self::assertSame($expected, ArrayUtility::removeNullValuesRecursive($input)); } - /** - * @test - */ + #[Test] public function stripTagsFromValuesRecursiveExpectRemoval(): void { $input = [ @@ -3289,9 +3167,7 @@ final class ArrayUtilityTest extends UnitTestCase self::assertSame($expected, ArrayUtility::stripTagsFromValuesRecursive($input)); } - /** - * @test - */ + #[Test] public function stripTagsFromValuesRecursiveExpectNoTypeCast(): void { $testObject = new \stdClass(); @@ -3325,9 +3201,7 @@ final class ArrayUtilityTest extends UnitTestCase self::assertSame($expected, ArrayUtility::stripTagsFromValuesRecursive($input)); } - /** - * @test - */ + #[Test] public function convertBooleanStringsToBooleanRecursiveExpectConverting(): void { $input = [ @@ -3411,10 +3285,8 @@ final class ArrayUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider filterRecursiveFiltersFalseElementsDataProvider - */ + #[DataProvider('filterRecursiveFiltersFalseElementsDataProvider')] + #[Test] public function filterRecursiveFiltersFalseElements(array $input, array $expectedResult): void { // If no callback is supplied, all entries of array equal to FALSE (see converting to boolean) will be removed. @@ -3488,10 +3360,8 @@ final class ArrayUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider filterRecursiveCallbackFiltersEmptyElementsWithoutIntegerZeroByCallbackDataProvider - */ + #[DataProvider('filterRecursiveCallbackFiltersEmptyElementsWithoutIntegerZeroByCallbackDataProvider')] + #[Test] public function filterRecursiveCallbackFiltersEmptyElementsWithoutIntegerByCallback(array $input, array $expectedResult): void { // callback filters empty strings, array and null but keeps zero integers @@ -3563,12 +3433,12 @@ final class ArrayUtilityTest extends UnitTestCase } /** - * @test - * @dataProvider filterRecursiveSupportsCallableCallbackDataProvider * @see https://forge.typo3.org/issues/84485 * * @param 0|ARRAY_FILTER_USE_KEY|ARRAY_FILTER_USE_BOTH $mode */ + #[DataProvider('filterRecursiveSupportsCallableCallbackDataProvider')] + #[Test] public function filterRecursiveSupportsCallableCallback(array $input, array $expectedResult, callable $callback, int $mode = 0): void { $result = ArrayUtility::filterRecursive($input, $callback, $mode); @@ -3607,10 +3477,8 @@ final class ArrayUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider isAssociativeCorrectlyFindsStringKeysDataProvider - */ + #[DataProvider('isAssociativeCorrectlyFindsStringKeysDataProvider')] + #[Test] public function isAssociativeCorrectlyFindsStringKeys(array $array, bool $expectedResult): void { $result = ArrayUtility::isAssociative($array); @@ -3692,10 +3560,8 @@ final class ArrayUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider replaceAndAppendScalarValuesRecursiveCorrectlyMergesArraysDataProvider - */ + #[DataProvider('replaceAndAppendScalarValuesRecursiveCorrectlyMergesArraysDataProvider')] + #[Test] public function replaceAndAppendScalarValuesRecursiveCorrectlyMergesArrays(array $array1, array $array2, array $expectedResult): void { $result = ArrayUtility::replaceAndAppendScalarValuesRecursive($array1, $array2); diff --git a/typo3/sysext/core/Tests/Unit/Utility/ClassNamingUtilityTest.php b/typo3/sysext/core/Tests/Unit/Utility/ClassNamingUtilityTest.php index 8b362a27b2b4518f1d984d3ca997ddbe83e445be..cbef331e4b9811c48a5235df29977b4cc5b10300 100644 --- a/typo3/sysext/core/Tests/Unit/Utility/ClassNamingUtilityTest.php +++ b/typo3/sysext/core/Tests/Unit/Utility/ClassNamingUtilityTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Utility; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Utility\ClassNamingUtility; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -63,20 +65,16 @@ final class ClassNamingUtilityTest extends UnitTestCase ]; } - /** - * @dataProvider repositoryAndModelClassNames - * @test - */ + #[DataProvider('repositoryAndModelClassNames')] + #[Test] public function translateModelNameToRepositoryName(string $expectedRepositoryName, string $modelName): void { $translatedRepositoryName = ClassNamingUtility::translateModelNameToRepositoryName($modelName); self::assertSame($expectedRepositoryName, $translatedRepositoryName); } - /** - * @dataProvider repositoryAndModelClassNames - * @test - */ + #[DataProvider('repositoryAndModelClassNames')] + #[Test] public function translateRepositoryNameToModelName(string $repositoryName, string $expectedModelName): void { $translatedModelName = ClassNamingUtility::translateRepositoryNameToModelName($repositoryName); @@ -137,11 +135,8 @@ final class ClassNamingUtilityTest extends UnitTestCase ]; } - /** - * @dataProvider controllerObjectNamesAndMatches - * - * @test - */ + #[DataProvider('controllerObjectNamesAndMatches')] + #[Test] public function explodeObjectControllerName(string $controllerObjectName, array $expectedMatches): void { $actualMatches = ClassNamingUtility::explodeObjectControllerName($controllerObjectName); diff --git a/typo3/sysext/core/Tests/Unit/Utility/CommandUtilityTest.php b/typo3/sysext/core/Tests/Unit/Utility/CommandUtilityTest.php index be8d6c840362d5738751230023bce636a76bd173..442f42240f8442eb9f25126dffd444f83611432b 100644 --- a/typo3/sysext/core/Tests/Unit/Utility/CommandUtilityTest.php +++ b/typo3/sysext/core/Tests/Unit/Utility/CommandUtilityTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Utility; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Utility\CommandUtility; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -72,12 +74,12 @@ final class CommandUtilityTest extends UnitTestCase } /** - * @dataProvider getConfiguredAppsDataProvider * @param array $globalsBinSetup * @param array $expected - * @test * @todo When specifying parameter types test bench errors occur */ + #[DataProvider('getConfiguredAppsDataProvider')] + #[Test] public function getConfiguredApps($globalsBinSetup, $expected): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['binSetup'] = $globalsBinSetup; @@ -189,10 +191,9 @@ final class CommandUtilityTest extends UnitTestCase /** * Tests if the commands are exploded and unquoted correctly - * - * @dataProvider unQuoteFilenameUnquotesCorrectlyDataProvider - * @test */ + #[DataProvider('unQuoteFilenameUnquotesCorrectlyDataProvider')] + #[Test] public function unQuoteFilenameUnquotesCorrectly(string $source, array $expectedQuoted): void { $commandUtilityMock = $this->getAccessibleMock(CommandUtility::class, null); @@ -204,9 +205,8 @@ final class CommandUtilityTest extends UnitTestCase * Test to ensure that, the error isn't happening * Error: Typed static property TYPO3\CMS\Core\Utility\CommandUtility::$paths must not be * accessed before initialization - * - * @test */ + #[Test] public function getCommandWithPhpReturnsPathToPhpExecutable(): void { $commandUtilityMock = $this->getAccessibleMock(CommandUtility::class, null); diff --git a/typo3/sysext/core/Tests/Unit/Utility/CsvUtilityTest.php b/typo3/sysext/core/Tests/Unit/Utility/CsvUtilityTest.php index 8d82b2628ac90ac5139aa5428c07cd0c0c7b38c2..56698d7f8874657544deb5920aa9975e54ef9ff2 100644 --- a/typo3/sysext/core/Tests/Unit/Utility/CsvUtilityTest.php +++ b/typo3/sysext/core/Tests/Unit/Utility/CsvUtilityTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Utility; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Utility\CsvUtility; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -85,10 +87,8 @@ final class CsvUtilityTest extends UnitTestCase ]; } - /** - * @dataProvider csvToArrayDataProvider - * @test - */ + #[DataProvider('csvToArrayDataProvider')] + #[Test] public function csvToArraySplitsAsExpected(string $input, string $fieldDelimiter, string $fieldEnclosure, int $maximumColumns, array $expectedResult): void { self::assertEquals($expectedResult, CsvUtility::csvToArray($input, $fieldDelimiter, $fieldEnclosure, $maximumColumns)); @@ -156,10 +156,8 @@ final class CsvUtilityTest extends UnitTestCase ]; } - /** - * @dataProvider csvValuesDataProvider - * @test - */ + #[DataProvider('csvValuesDataProvider')] + #[Test] public function csvValuesReturnsExpectedResult(array $row, string $delimiter, string $quote, string $expectedResult, int $flag): void { self::assertEquals($expectedResult, CsvUtility::csvValues($row, $delimiter, $quote, $flag)); diff --git a/typo3/sysext/core/Tests/Unit/Utility/DebugUtilityTest.php b/typo3/sysext/core/Tests/Unit/Utility/DebugUtilityTest.php index c749f866acc7d92182ecff5de76519661a317a54..82cb7033ee24c9749f1ff1b20cc8291839098a10 100644 --- a/typo3/sysext/core/Tests/Unit/Utility/DebugUtilityTest.php +++ b/typo3/sysext/core/Tests/Unit/Utility/DebugUtilityTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Utility; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Utility\DebugUtility; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -32,9 +34,7 @@ final class DebugUtilityTest extends UnitTestCase DebugUtility::useAnsiColor(true); } - /** - * @test - */ + #[Test] public function debugNotEncodesHtmlInputIfPlainText(): void { DebugUtility::usePlainTextOutput(true); @@ -51,9 +51,7 @@ final class DebugUtilityTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function debugEncodesHtmlInputIfNoPlainText(): void { DebugUtility::usePlainTextOutput(false); @@ -106,10 +104,10 @@ final class DebugUtilityTest extends UnitTestCase } /** - * @test - * @dataProvider convertVariableToStringReturnsVariableContentDataProvider * @param mixed $variable */ + #[DataProvider('convertVariableToStringReturnsVariableContentDataProvider')] + #[Test] public function convertVariableToStringReturnsVariableContent($variable, string $expected): void { self::assertSame($expected, DebugUtility::convertVariableToString($variable)); diff --git a/typo3/sysext/core/Tests/Unit/Utility/ExtensionManagementUtilityTest.php b/typo3/sysext/core/Tests/Unit/Utility/ExtensionManagementUtilityTest.php index 63904fd05de5d124570b4374701ef0b90fd3008c..fcd83907686a212d67af9c8efbd0ec0ea5bb531d 100644 --- a/typo3/sysext/core/Tests/Unit/Utility/ExtensionManagementUtilityTest.php +++ b/typo3/sysext/core/Tests/Unit/Utility/ExtensionManagementUtilityTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Utility; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use Psr\EventDispatcher\EventDispatcherInterface; use TYPO3\CMS\Core\Cache\CacheManager; @@ -89,9 +91,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase /////////////////////////////// // Tests concerning isLoaded /////////////////////////////// - /** - * @test - */ + #[Test] public function isLoadedReturnsFalseIfExtensionIsNotLoaded(): void { self::assertFalse(ExtensionManagementUtility::isLoaded(StringUtility::getUniqueId('foobar'))); @@ -100,9 +100,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase /////////////////////////////// // Tests concerning extPath /////////////////////////////// - /** - * @test - */ + #[Test] public function extPathThrowsExceptionIfExtensionIsNotLoaded(): void { $this->expectException(\BadFunctionCallException::class); @@ -121,9 +119,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase ExtensionManagementUtility::extPath($packageName); } - /** - * @test - */ + #[Test] public function extPathAppendsScriptNameToPath(): void { $package = $this->getMockBuilder(Package::class) @@ -205,10 +201,8 @@ final class ExtensionManagementUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider extensionKeyDataProvider - */ + #[DataProvider('extensionKeyDataProvider')] + #[Test] public function getClassNamePrefixForExtensionKey(string $extensionName, string $expectedPrefix): void { self::assertSame($expectedPrefix, ExtensionManagementUtility::getCN($extensionName)); @@ -220,9 +214,9 @@ final class ExtensionManagementUtilityTest extends UnitTestCase /** * Tests whether fields can be added to all TCA types and duplicate fields are considered. * - * @test * @see ExtensionManagementUtility::addToAllTCAtypes() */ + #[Test] public function canAddFieldsToAllTCATypesBeforeExistingOnes(): void { $table = StringUtility::getUniqueId('tx_coretest_table'); @@ -237,9 +231,9 @@ final class ExtensionManagementUtilityTest extends UnitTestCase /** * Tests whether fields can be added to all TCA types and duplicate fields are considered. * - * @test * @see ExtensionManagementUtility::addToAllTCAtypes() */ + #[Test] public function canAddFieldsToAllTCATypesAfterExistingOnes(): void { $table = StringUtility::getUniqueId('tx_coretest_table'); @@ -254,9 +248,9 @@ final class ExtensionManagementUtilityTest extends UnitTestCase /** * Tests whether fields can be added to all TCA types and duplicate fields are considered. * - * @test * @see ExtensionManagementUtility::addToAllTCAtypes() */ + #[Test] public function canAddFieldsToAllTCATypesRespectsPalettes(): void { $table = StringUtility::getUniqueId('tx_coretest_table'); @@ -270,9 +264,9 @@ final class ExtensionManagementUtilityTest extends UnitTestCase /** * Tests whether fields can be added to all TCA types and fields in pallets are respected. * - * @test * @see ExtensionManagementUtility::addToAllTCAtypes() */ + #[Test] public function canAddFieldsToAllTCATypesRespectsPositionFieldInPalette(): void { $table = StringUtility::getUniqueId('tx_coretest_table'); @@ -285,9 +279,9 @@ final class ExtensionManagementUtilityTest extends UnitTestCase /** * Tests whether fields can be added to a TCA type before existing ones * - * @test * @see ExtensionManagementUtility::addToAllTCAtypes() */ + #[Test] public function canAddFieldsToTCATypeBeforeExistingOnes(): void { $table = StringUtility::getUniqueId('tx_coretest_table'); @@ -302,9 +296,9 @@ final class ExtensionManagementUtilityTest extends UnitTestCase /** * Tests whether fields can be added to a TCA type after existing ones * - * @test * @see ExtensionManagementUtility::addToAllTCAtypes() */ + #[Test] public function canAddFieldsToTCATypeAfterExistingOnes(): void { $table = StringUtility::getUniqueId('tx_coretest_table'); @@ -316,9 +310,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase self::assertEquals('fieldA, fieldB, fieldC;labelC, --palette--;;paletteC, fieldC1, fieldD, fieldD1', $GLOBALS['TCA'][$table]['types']['typeB']['showitem']); } - /** - * @test - */ + #[Test] public function canAddFieldWithPartOfAlreadyExistingFieldname(): void { $table = StringUtility::getUniqueId('tx_coretest_table'); @@ -331,9 +323,9 @@ final class ExtensionManagementUtilityTest extends UnitTestCase /** * Test whether replacing other TCA fields works as promised * - * @test * @see ExtensionManagementUtility::addFieldsToAllPalettesOfField() */ + #[Test] public function canAddFieldsToTCATypeAndReplaceExistingOnes(): void { $table = StringUtility::getUniqueId('tx_coretest_table'); @@ -349,9 +341,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase self::assertEquals('fieldZ, fieldX1, fieldY', $GLOBALS['TCA'][$table]['palettes']['paletteD']['showitem']); } - /** - * @test - */ + #[Test] public function addToAllTCAtypesReplacesExistingOnes(): void { $table = StringUtility::getUniqueId('tx_coretest_table'); @@ -367,9 +357,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase self::assertEquals('fieldX, --palette--;;foo, fieldX1, fieldY', $GLOBALS['TCA'][$table]['palettes']['paletteD']['showitem']); } - /** - * @test - */ + #[Test] public function addToAllTCAtypesAddsToPaletteIdentifier(): void { $table = StringUtility::getUniqueId('tx_coretest_table'); @@ -379,9 +367,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase self::assertEquals('fieldA, fieldB, fieldC;labelC, --palette--;;paletteC, fieldX, --palette--;;newpalette, fieldC1, fieldD, fieldD1', $GLOBALS['TCA'][$table]['types']['typeB']['showitem']); } - /** - * @test - */ + #[Test] public function addToAllTCAtypesAddsBeforeDiv(): void { $showitemDiv = '--div--;LLL:EXT:my_ext/Resources/Private/Language/locallang.xlf:foobar'; @@ -397,9 +383,9 @@ final class ExtensionManagementUtilityTest extends UnitTestCase /** * Tests whether fields can be added to a palette before existing elements. * - * @test * @see ExtensionManagementUtility::addFieldsToPalette() */ + #[Test] public function canAddFieldsToPaletteBeforeExistingOnes(): void { $table = StringUtility::getUniqueId('tx_coretest_table'); @@ -411,9 +397,9 @@ final class ExtensionManagementUtilityTest extends UnitTestCase /** * Tests whether fields can be added to a palette after existing elements. * - * @test * @see ExtensionManagementUtility::addFieldsToPalette() */ + #[Test] public function canAddFieldsToPaletteAfterExistingOnes(): void { $table = StringUtility::getUniqueId('tx_coretest_table'); @@ -425,9 +411,9 @@ final class ExtensionManagementUtilityTest extends UnitTestCase /** * Tests whether fields can be added to a palette after a not existing elements. * - * @test * @see ExtensionManagementUtility::addFieldsToPalette() */ + #[Test] public function canAddFieldsToPaletteAfterNotExistingOnes(): void { $table = StringUtility::getUniqueId('tx_coretest_table'); @@ -457,10 +443,8 @@ final class ExtensionManagementUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider removeDuplicatesForInsertionRemovesDuplicatesDataProvider - */ + #[DataProvider('removeDuplicatesForInsertionRemovesDuplicatesDataProvider')] + #[Test] public function removeDuplicatesForInsertionRemovesDuplicates(string $insertionList, string $list, string $expected): void { $result = ExtensionManagementUtilityAccessibleProxy::removeDuplicatesForInsertion($insertionList, $list); @@ -470,10 +454,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase /////////////////////////////////////////////////// // Tests concerning addFieldsToAllPalettesOfField /////////////////////////////////////////////////// - - /** - * @test - */ + #[Test] public function addFieldsToAllPalettesOfFieldDoesNotAddAnythingIfFieldIsNotRegisteredInColumns(): void { $GLOBALS['TCA'] = [ @@ -499,9 +480,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase self::assertEquals($expected, $GLOBALS['TCA']); } - /** - * @test - */ + #[Test] public function addFieldsToAllPalettesOfFieldAddsFieldsToPaletteAndSuppressesDuplicates(): void { $GLOBALS['TCA'] = [ @@ -546,9 +525,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase self::assertEquals($expected, $GLOBALS['TCA']); } - /** - * @test - */ + #[Test] public function addFieldsToAllPalettesOfFieldDoesNotAddAFieldThatIsPartOfPaletteAlready(): void { $GLOBALS['TCA'] = [ @@ -593,9 +570,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase self::assertEquals($expected, $GLOBALS['TCA']); } - /** - * @test - */ + #[Test] public function addFieldsToAllPalettesOfFieldAddsFieldsToMultiplePalettes(): void { $GLOBALS['TCA'] = [ @@ -652,9 +627,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase self::assertEquals($expected, $GLOBALS['TCA']); } - /** - * @test - */ + #[Test] public function addFieldsToAllPalettesOfFieldAddsMultipleFields(): void { $GLOBALS['TCA'] = [ @@ -699,9 +672,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase self::assertEquals($expected, $GLOBALS['TCA']); } - /** - * @test - */ + #[Test] public function addFieldsToAllPalettesOfFieldAddsBeforeExistingIfRequested(): void { $GLOBALS['TCA'] = [ @@ -747,9 +718,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase self::assertEquals($expected, $GLOBALS['TCA']); } - /** - * @test - */ + #[Test] public function addFieldsToAllPalettesOfFieldAddsFieldsAtEndIfBeforeRequestedDoesNotExist(): void { $GLOBALS['TCA'] = [ @@ -795,9 +764,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase self::assertEquals($expected, $GLOBALS['TCA']); } - /** - * @test - */ + #[Test] public function addFieldsToAllPalettesOfFieldAddsAfterExistingIfRequested(): void { $GLOBALS['TCA'] = [ @@ -843,9 +810,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase self::assertEquals($expected, $GLOBALS['TCA']); } - /** - * @test - */ + #[Test] public function addFieldsToAllPalettesOfFieldAddsFieldsAtEndIfAfterRequestedDoesNotExist(): void { $GLOBALS['TCA'] = [ @@ -891,9 +856,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase self::assertEquals($expected, $GLOBALS['TCA']); } - /** - * @test - */ + #[Test] public function addFieldsToAllPalettesOfFieldAddsNewPaletteIfFieldHasNoPaletteYet(): void { $GLOBALS['TCA'] = [ @@ -933,9 +896,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase self::assertEquals($expected, $GLOBALS['TCA']); } - /** - * @test - */ + #[Test] public function addFieldsToAllPalettesOfFieldAddsNewPaletteIfFieldHasNoPaletteYetAndKeepsExistingLabel(): void { $GLOBALS['TCA'] = [ @@ -978,7 +939,6 @@ final class ExtensionManagementUtilityTest extends UnitTestCase /////////////////////////////////////////////////// // Tests concerning executePositionedStringInsertion /////////////////////////////////////////////////// - /** * Data provider for executePositionedStringInsertionTrimsCorrectCharacters */ @@ -1012,10 +972,8 @@ final class ExtensionManagementUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider executePositionedStringInsertionTrimsCorrectCharactersDataProvider - */ + #[DataProvider('executePositionedStringInsertionTrimsCorrectCharactersDataProvider')] + #[Test] public function executePositionedStringInsertionTrimsCorrectCharacters(string $string, string $expectedResult): void { $extensionManagementUtility = $this->getAccessibleMock(ExtensionManagementUtility::class, null); @@ -1026,10 +984,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase ///////////////////////////////////////// // Tests concerning addTcaSelectItem ///////////////////////////////////////// - - /** - * @test - */ + #[Test] public function addTcaSelectItemThrowsExceptionIfRelativePositionIsNotOneOfValidKeywords(): void { $this->expectException(\InvalidArgumentException::class); @@ -1038,9 +993,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase ExtensionManagementUtility::addTcaSelectItem('foo', 'bar', [], 'foo', 'not allowed keyword'); } - /** - * @test - */ + #[Test] public function addTcaSelectItemThrowsExceptionIfFieldIsNotFoundInTca(): void { $this->expectException(\RuntimeException::class); @@ -1112,10 +1065,8 @@ final class ExtensionManagementUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider addTcaSelectItemDataProvider - */ + #[DataProvider('addTcaSelectItemDataProvider')] + #[Test] public function addTcaSelectItemInsertsItemAtSpecifiedPosition(string $relativeToField, string $relativePosition, array $expectedResultArray): void { $GLOBALS['TCA'] = [ @@ -1140,9 +1091,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase ///////////////////////////////////////// // Tests concerning loadExtLocalconf ///////////////////////////////////////// - /** - * @test - */ + #[Test] public function loadExtLocalconfDoesNotReadFromCacheIfCachingIsDenied(): void { $mockCacheManager = $this->getMockBuilder(CacheManager::class) @@ -1155,9 +1104,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase ExtensionManagementUtility::loadExtLocalconf(false); } - /** - * @test - */ + #[Test] public function loadExtLocalconfRequiresCacheFileIfExistsAndCachingIsAllowed(): void { $mockCache = $this->getMockBuilder(PhpFrontend::class) @@ -1178,9 +1125,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase ///////////////////////////////////////// // Tests concerning loadSingleExtLocalconfFiles ///////////////////////////////////////// - /** - * @test - */ + #[Test] public function loadSingleExtLocalconfFilesRequiresExtLocalconfFileRegisteredInGlobalTypo3LoadedExt(): void { $this->expectException(\RuntimeException::class); @@ -1197,9 +1142,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase ///////////////////////////////////////// // Tests concerning createExtLocalconfCacheEntry ///////////////////////////////////////// - /** - * @test - */ + #[Test] public function createExtLocalconfCacheEntryWritesCacheEntryWithContentOfLoadedExtensionExtLocalconf(): void { $extensionName = StringUtility::getUniqueId('foo'); @@ -1219,9 +1162,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase ExtensionManagementUtilityAccessibleProxy::createExtLocalconfCacheEntry($mockCache); } - /** - * @test - */ + #[Test] public function createExtLocalconfCacheEntryWritesCacheEntryWithExtensionContentOnlyIfExtLocalconfExists(): void { $extensionName = StringUtility::getUniqueId('foo'); @@ -1240,9 +1181,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase ExtensionManagementUtilityAccessibleProxy::createExtLocalconfCacheEntry($mockCache); } - /** - * @test - */ + #[Test] public function createExtLocalconfCacheEntryWritesCacheEntryWithNoTags(): void { $mockCache = $this->getMockBuilder(PhpFrontend::class) @@ -1259,9 +1198,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase ///////////////////////////////////////// // Tests concerning getExtLocalconfCacheIdentifier ///////////////////////////////////////// - /** - * @test - */ + #[Test] public function getExtLocalconfCacheIdentifierCreatesSha1WithFourtyCharactersAndPrefix(): void { $prefix = 'ext_localconf_'; @@ -1274,10 +1211,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase ///////////////////////////////////////// // Tests concerning loadBaseTca ///////////////////////////////////////// - - /** - * @test - */ + #[Test] public function loadBaseTcaDoesNotReadFromCacheIfCachingIsDenied(): void { $mockCacheManager = $this->getMockBuilder(CacheManager::class) @@ -1288,9 +1222,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase ExtensionManagementUtilityAccessibleProxy::loadBaseTca(false); } - /** - * @test - */ + #[Test] public function loadBaseTcaRequiresCacheFileIfExistsAndCachingIsAllowed(): void { $mockCache = $this->getMockBuilder(PhpFrontend::class) @@ -1302,9 +1234,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase ExtensionManagementUtilityAccessibleProxy::loadBaseTca(true, $mockCache); } - /** - * @test - */ + #[Test] public function loadBaseTcaCreatesCacheFileWithContentOfAnExtensionsConfigurationTcaPhpFile(): void { $extensionName = StringUtility::getUniqueId('test_baseTca_'); @@ -1340,9 +1270,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase ExtensionManagementUtility::loadBaseTca(true); } - /** - * @test - */ + #[Test] public function loadBaseTcaWritesCacheEntryWithNoTags(): void { $mockCache = $this->getMockBuilder(PhpFrontend::class) @@ -1363,10 +1291,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase ///////////////////////////////////////// // Tests concerning getBaseTcaCacheIdentifier ///////////////////////////////////////// - - /** - * @test - */ + #[Test] public function getBaseTcaCacheIdentifierCreatesSha1WithFourtyCharactersAndPrefix(): void { $prefix = 'tca_base_'; @@ -1379,9 +1304,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase ///////////////////////////////////////// // Tests concerning loadExtTables ///////////////////////////////////////// - /** - * @test - */ + #[Test] public function loadExtTablesDoesNotReadFromCacheIfCachingIsDenied(): void { $mockCacheManager = $this->getMockBuilder(CacheManager::class) @@ -1394,9 +1317,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase ExtensionManagementUtility::loadExtLocalconf(false); } - /** - * @test - */ + #[Test] public function loadExtTablesRequiresCacheFileIfExistsAndCachingIsAllowed(): void { $mockCache = $this->getMockBuilder(PhpFrontend::class) @@ -1420,9 +1341,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase ///////////////////////////////////////// // Tests concerning createExtTablesCacheEntry ///////////////////////////////////////// - /** - * @test - */ + #[Test] public function createExtTablesCacheEntryWritesCacheEntryWithContentOfLoadedExtensionExtTables(): void { $extensionName = StringUtility::getUniqueId('foo'); @@ -1442,9 +1361,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase ExtensionManagementUtilityAccessibleProxy::createExtTablesCacheEntry($mockCache); } - /** - * @test - */ + #[Test] public function createExtTablesCacheEntryWritesCacheEntryWithExtensionContentOnlyIfExtTablesExists(): void { $extensionName = StringUtility::getUniqueId('foo'); @@ -1462,9 +1379,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase ExtensionManagementUtilityAccessibleProxy::createExtTablesCacheEntry($mockCache); } - /** - * @test - */ + #[Test] public function createExtTablesCacheEntryWritesCacheEntryWithNoTags(): void { $mockCache = $this->getMockBuilder(PhpFrontend::class) @@ -1482,9 +1397,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase ///////////////////////////////////////// // Tests concerning getExtTablesCacheIdentifier ///////////////////////////////////////// - /** - * @test - */ + #[Test] public function getExtTablesCacheIdentifierCreatesSha1WithFourtyCharactersAndPrefix(): void { $prefix = 'ext_tables_'; @@ -1497,11 +1410,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase ///////////////////////////////////////// // Tests concerning getExtensionVersion ///////////////////////////////////////// - - /** - * @test - * @throws \TYPO3\CMS\Core\Package\Exception - */ + #[Test] public function getExtensionVersionForEmptyExtensionKeyThrowsException(): void { $this->expectException(\InvalidArgumentException::class); @@ -1510,9 +1419,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase ExtensionManagementUtility::getExtensionVersion(''); } - /** - * @test - */ + #[Test] public function getExtensionVersionForNotLoadedExtensionReturnsEmptyString(): void { $uniqueSuffix = StringUtility::getUniqueId('test'); @@ -1520,9 +1427,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase self::assertEquals('', ExtensionManagementUtility::getExtensionVersion($extensionKey)); } - /** - * @test - */ + #[Test] public function getExtensionVersionForLoadedExtensionReturnsExtensionVersion(): void { $uniqueSuffix = StringUtility::getUniqueId('test'); @@ -1545,9 +1450,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase ///////////////////////////////////////// // Tests concerning loadExtension ///////////////////////////////////////// - /** - * @test - */ + #[Test] public function loadExtensionThrowsExceptionIfExtensionIsLoaded(): void { $this->expectException(\RuntimeException::class); @@ -1562,9 +1465,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase ///////////////////////////////////////// // Tests concerning unloadExtension ///////////////////////////////////////// - /** - * @test - */ + #[Test] public function unloadExtensionThrowsExceptionIfExtensionIsNotLoaded(): void { $this->expectException(\RuntimeException::class); @@ -1583,9 +1484,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase ExtensionManagementUtility::unloadExtension($packageName); } - /** - * @test - */ + #[Test] public function unloadExtensionCallsPackageManagerToDeactivatePackage(): void { $packageName = StringUtility::getUniqueId('foo'); @@ -1606,10 +1505,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase /////////////////////////////// // Tests concerning addPlugin /////////////////////////////// - - /** - * @test - */ + #[Test] public function addPluginSetsTcaCorrectlyForGivenExtKeyAsParameter(): void { $extKey = 'indexed_search'; @@ -1627,9 +1523,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase self::assertEquals($expectedTCA, $GLOBALS['TCA']['tt_content']['columns']['list_type']['config']['items']); } - /** - * @test - */ + #[Test] public function addPluginSetsCorrectItemGroupsEntry(): void { $extKey = 'indexed_search'; @@ -1661,9 +1555,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function addPluginAsContentTypeAddsIconAndDefaultItem(): void { $extKey = 'felogin'; @@ -1685,9 +1577,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase self::assertEquals($GLOBALS['TCA']['tt_content']['types']['header'], $GLOBALS['TCA']['tt_content']['types']['felogin']); } - /** - * @test - */ + #[Test] public function addPluginAsContentTypeAddsIconAndDefaultItemWithSelectItem(): void { $extKey = 'felogin'; @@ -1805,10 +1695,8 @@ final class ExtensionManagementUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider addTcaSelectItemGroupAddsGroupDataProvider - */ + #[DataProvider('addTcaSelectItemGroupAddsGroupDataProvider')] + #[Test] public function addTcaSelectItemGroupAddsGroup(string $groupId, string $groupLabel, ?string $position, ?array $existingGroups, array $expectedGroups): void { $GLOBALS['TCA']['tt_content']['columns']['CType']['config'] = []; @@ -1819,9 +1707,7 @@ final class ExtensionManagementUtilityTest extends UnitTestCase self::assertEquals($expectedGroups, $GLOBALS['TCA']['tt_content']['columns']['CType']['config']['itemGroups']); } - /** - * @test - */ + #[Test] public function addServiceDoesNotFailIfValueIsNotSet(): void { ExtensionManagementUtility::addService( diff --git a/typo3/sysext/core/Tests/Unit/Utility/GeneralUtilityTest.php b/typo3/sysext/core/Tests/Unit/Utility/GeneralUtilityTest.php index f511dd452e068c9fedbd5935596e174df76dfbf6..03e7a5848e6b8542fc520fdcf31d40217ad8ea29 100644 --- a/typo3/sysext/core/Tests/Unit/Utility/GeneralUtilityTest.php +++ b/typo3/sysext/core/Tests/Unit/Utility/GeneralUtilityTest.php @@ -17,11 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Utility; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use Psr\Log\LoggerInterface; use TYPO3\CMS\Core\Cache\CacheManager; use TYPO3\CMS\Core\Cache\Frontend\FrontendInterface; use TYPO3\CMS\Core\Core\Environment; use TYPO3\CMS\Core\Core\SystemEnvironmentBuilder; +use TYPO3\CMS\Core\Exception; use TYPO3\CMS\Core\Http\ServerRequest; use TYPO3\CMS\Core\Package\Package; use TYPO3\CMS\Core\Package\PackageManager; @@ -111,10 +114,8 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider cmpIPv4DataProviderMatching - */ + #[DataProvider('cmpIPv4DataProviderMatching')] + #[Test] public function cmpIPv4ReturnsTrueForMatchingAddress($ip, $list): void { self::assertTrue(GeneralUtility::cmpIPv4($ip, $list)); @@ -137,10 +138,8 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider cmpIPv4DataProviderNotMatching - */ + #[DataProvider('cmpIPv4DataProviderNotMatching')] + #[Test] public function cmpIPv4ReturnsFalseForNotMatchingAddress($ip, $list): void { self::assertFalse(GeneralUtility::cmpIPv4($ip, $list)); @@ -170,10 +169,8 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider cmpIPv6DataProviderMatching - */ + #[DataProvider('cmpIPv6DataProviderMatching')] + #[Test] public function cmpIPv6ReturnsTrueForMatchingAddress($ip, $list): void { self::assertTrue(GeneralUtility::cmpIPv6($ip, $list)); @@ -198,10 +195,8 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider cmpIPv6DataProviderNotMatching - */ + #[DataProvider('cmpIPv6DataProviderNotMatching')] + #[Test] public function cmpIPv6ReturnsFalseForNotMatchingAddress($ip, $list): void { self::assertFalse(GeneralUtility::cmpIPv6($ip, $list)); @@ -227,10 +222,8 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider normalizeCompressIPv6DataProviderCorrect - */ + #[DataProvider('normalizeCompressIPv6DataProviderCorrect')] + #[Test] public function normalizeIPv6CorrectlyNormalizesAddresses($compressed, $normalized): void { self::assertEquals($normalized, GeneralUtility::normalizeIPv6($compressed)); @@ -254,10 +247,8 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider validIpDataProvider - */ + #[DataProvider('validIpDataProvider')] + #[Test] public function validIpReturnsTrueForValidIp($ip): void { self::assertTrue(GeneralUtility::validIP($ip)); @@ -281,10 +272,8 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider invalidIpDataProvider - */ + #[DataProvider('invalidIpDataProvider')] + #[Test] public function validIpReturnsFalseForInvalidIp($ip): void { self::assertFalse(GeneralUtility::validIP($ip)); @@ -314,10 +303,8 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider cmpFqdnValidDataProvider - */ + #[DataProvider('cmpFqdnValidDataProvider')] + #[Test] public function cmpFqdnReturnsTrue($baseHost, $list): void { self::assertTrue(GeneralUtility::cmpFQDN($baseHost, $list)); @@ -336,10 +323,8 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider cmpFqdnInvalidDataProvider - */ + #[DataProvider('cmpFqdnInvalidDataProvider')] + #[Test] public function cmpFqdnReturnsFalse($baseHost, $list): void { self::assertFalse(GeneralUtility::cmpFQDN($baseHost, $list)); @@ -348,10 +333,8 @@ final class GeneralUtilityTest extends UnitTestCase /////////////////////////////// // Tests concerning inList /////////////////////////////// - /** - * @test - * @dataProvider inListForItemContainedReturnsTrueDataProvider - */ + #[DataProvider('inListForItemContainedReturnsTrueDataProvider')] + #[Test] public function inListForItemContainedReturnsTrue(string $haystack): void { self::assertTrue(GeneralUtility::inList($haystack, 'findme')); @@ -370,10 +353,8 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider inListForItemNotContainedReturnsFalseDataProvider - */ + #[DataProvider('inListForItemNotContainedReturnsFalseDataProvider')] + #[Test] public function inListForItemNotContainedReturnsFalse(string $haystack): void { self::assertFalse(GeneralUtility::inList($haystack, 'findme')); @@ -394,10 +375,8 @@ final class GeneralUtilityTest extends UnitTestCase /////////////////////////////// // Tests concerning expandList /////////////////////////////// - /** - * @test - * @dataProvider expandListExpandsIntegerRangesDataProvider - */ + #[DataProvider('expandListExpandsIntegerRangesDataProvider')] + #[Test] public function expandListExpandsIntegerRanges(string $list, string $expectation): void { self::assertSame($expectation, GeneralUtility::expandList($list)); @@ -421,9 +400,7 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - */ + #[Test] public function expandListExpandsForTwoThousandElementsExpandsOnlyToThousandElementsMaximum(): void { $list = GeneralUtility::expandList('1-2000'); @@ -433,10 +410,8 @@ final class GeneralUtilityTest extends UnitTestCase /////////////////////////////// // Tests concerning formatSize /////////////////////////////// - /** - * @test - * @dataProvider formatSizeDataProvider - */ + #[DataProvider('formatSizeDataProvider')] + #[Test] public function formatSizeTranslatesBytesToHigherOrderRepresentation($size, $labels, $base, $expected): void { self::assertEquals($expected, GeneralUtility::formatSize($size, $labels, $base)); @@ -510,10 +485,8 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider splitCalcDataProvider - */ + #[DataProvider('splitCalcDataProvider')] + #[Test] public function splitCalcCorrectlySplitsExpression(array $expected, string $expression): void { self::assertSame($expected, GeneralUtility::splitCalc($expression, '+-*/')); @@ -557,10 +530,8 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider validEmailValidDataProvider - */ + #[DataProvider('validEmailValidDataProvider')] + #[Test] public function validEmailReturnsTrueForValidMailAddress($address): void { self::assertTrue(GeneralUtility::validEmail($address)); @@ -615,10 +586,8 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider validEmailInvalidDataProvider - */ + #[DataProvider('validEmailInvalidDataProvider')] + #[Test] public function validEmailReturnsFalseForInvalidMailAddress($address): void { self::assertFalse(GeneralUtility::validEmail($address)); @@ -654,10 +623,8 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider intExplodeDataProvider - */ + #[DataProvider('intExplodeDataProvider')] + #[Test] public function intExplodeReturnsExplodedArray(string $input, bool $removeEmpty, array $expected): void { self::assertSame($expected, GeneralUtility::intExplode(',', $input, $removeEmpty)); @@ -680,18 +647,14 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider implodeArrayForUrlDataProvider - */ + #[DataProvider('implodeArrayForUrlDataProvider')] + #[Test] public function implodeArrayForUrlBuildsValidParameterString($name, $input, $expected): void { self::assertSame($expected, GeneralUtility::implodeArrayForUrl($name, $input)); } - /** - * @test - */ + #[Test] public function implodeArrayForUrlCanSkipEmptyParameters(): void { $input = ['one' => '√', '']; @@ -699,9 +662,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertSame($expected, GeneralUtility::implodeArrayForUrl('foo', $input, '', true)); } - /** - * @test - */ + #[Test] public function implodeArrayForUrlCanUrlEncodeKeyNames(): void { $input = ['one' => '√', '']; @@ -722,10 +683,8 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider explodeUrl2ArrayTransformsParameterStringToFlatArrayDataProvider - */ + #[DataProvider('explodeUrl2ArrayTransformsParameterStringToFlatArrayDataProvider')] + #[Test] public function explodeUrl2ArrayTransformsParameterStringToFlatArray(string $input, array $expected): void { self::assertEquals($expected, GeneralUtility::explodeUrl2Array($input)); @@ -797,19 +756,15 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider revExplodeDataProvider - */ + #[DataProvider('revExplodeDataProvider')] + #[Test] public function revExplodeCorrectlyExplodesStringForGivenPartsCount($delimiter, $testString, $count, $expectedArray): void { $actualArray = GeneralUtility::revExplode($delimiter, $testString, $count); self::assertEquals($expectedArray, $actualArray); } - /** - * @test - */ + #[Test] public function revExplodeRespectsLimitThreeWhenExploding(): void { $testString = 'even:more:of:my:words:here'; @@ -821,10 +776,8 @@ final class GeneralUtilityTest extends UnitTestCase ////////////////////////////////// // Tests concerning trimExplode ////////////////////////////////// - /** - * @test - * @dataProvider trimExplodeReturnsCorrectResultDataProvider - */ + #[DataProvider('trimExplodeReturnsCorrectResultDataProvider')] + #[Test] public function trimExplodeReturnsCorrectResult(string $delimiter, string $testString, bool $removeEmpty, int $limit, array $expectedResult): void { self::assertSame($expectedResult, GeneralUtility::trimExplode($delimiter, $testString, $removeEmpty, $limit)); @@ -1063,10 +1016,8 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider getBytesFromSizeMeasurementDataProvider - */ + #[DataProvider('getBytesFromSizeMeasurementDataProvider')] + #[Test] public function getBytesFromSizeMeasurementCalculatesCorrectByteValue($expected, $byteString): void { self::assertEquals($expected, GeneralUtility::getBytesFromSizeMeasurement($byteString)); @@ -1075,17 +1026,13 @@ final class GeneralUtilityTest extends UnitTestCase ////////////////////////////////// // Tests concerning getIndpEnv ////////////////////////////////// - /** - * @test - */ + #[Test] public function getIndpEnvTypo3SitePathReturnNonEmptyString(): void { self::assertTrue(strlen(GeneralUtility::getIndpEnv('TYPO3_SITE_PATH')) >= 1); } - /** - * @test - */ + #[Test] public function getIndpEnvTypo3SitePathReturnsStringEndingWithSlash(): void { $result = GeneralUtility::getIndpEnv('TYPO3_SITE_PATH'); @@ -1106,20 +1053,16 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider hostnameAndPortDataProvider - */ + #[DataProvider('hostnameAndPortDataProvider')] + #[Test] public function getIndpEnvTypo3HostOnlyParsesHostnamesAndIpAddresses($httpHost, $expectedIp): void { $_SERVER['HTTP_HOST'] = $httpHost; self::assertEquals($expectedIp, GeneralUtility::getIndpEnv('TYPO3_HOST_ONLY')); } - /** - * @test - * @dataProvider hostnameAndPortDataProvider - */ + #[DataProvider('hostnameAndPortDataProvider')] + #[Test] public function getIndpEnvTypo3PortParsesHostnamesAndIpAddresses($httpHost, $dummy, $expectedPort): void { $_SERVER['HTTP_HOST'] = $httpHost; @@ -1142,10 +1085,8 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider underscoredToUpperCamelCaseDataProvider - */ + #[DataProvider('underscoredToUpperCamelCaseDataProvider')] + #[Test] public function underscoredToUpperCamelCase($expected, $inputString): void { self::assertEquals($expected, GeneralUtility::underscoredToUpperCamelCase($inputString)); @@ -1167,10 +1108,8 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider underscoredToLowerCamelCaseDataProvider - */ + #[DataProvider('underscoredToLowerCamelCaseDataProvider')] + #[Test] public function underscoredToLowerCamelCase($expected, $inputString): void { self::assertEquals($expected, GeneralUtility::underscoredToLowerCamelCase($inputString)); @@ -1194,10 +1133,8 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider camelCaseToLowerCaseUnderscoredDataProvider - */ + #[DataProvider('camelCaseToLowerCaseUnderscoredDataProvider')] + #[Test] public function camelCaseToLowerCaseUnderscored($expected, $inputString): void { self::assertEquals($expected, GeneralUtility::camelCaseToLowerCaseUnderscored($inputString)); @@ -1236,10 +1173,8 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider validUrlValidResourceDataProvider - */ + #[DataProvider('validUrlValidResourceDataProvider')] + #[Test] public function validURLReturnsTrueForValidResource($url): void { self::assertTrue(GeneralUtility::isValidUrl($url)); @@ -1271,10 +1206,8 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider isValidUrlInvalidResourceDataProvider - */ + #[DataProvider('isValidUrlInvalidResourceDataProvider')] + #[Test] public function validURLReturnsFalseForInvalidResource($url): void { self::assertFalse(GeneralUtility::isValidUrl($url)); @@ -1283,10 +1216,7 @@ final class GeneralUtilityTest extends UnitTestCase ////////////////////////////////// // Tests concerning isOnCurrentHost ////////////////////////////////// - - /** - * @test - */ + #[Test] public function isOnCurrentHostReturnsTrueWithCurrentHost(): void { $testUrl = GeneralUtility::getIndpEnv('TYPO3_REQUEST_URL'); @@ -1310,11 +1240,8 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * - * @dataProvider checkisOnCurrentHostInvalidHostsDataProvider - */ + #[DataProvider('checkisOnCurrentHostInvalidHostsDataProvider')] + #[Test] public function isOnCurrentHostWithNotCurrentHostReturnsFalse(string $hostCandidate): void { self::assertFalse(GeneralUtility::isOnCurrentHost($hostCandidate)); @@ -1341,10 +1268,8 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider sanitizeLocalUrlValidPathsDataProvider - */ + #[DataProvider('sanitizeLocalUrlValidPathsDataProvider')] + #[Test] public function sanitizeLocalUrlAcceptsNotEncodedValidPaths(string $path): void { Environment::initialize( @@ -1362,10 +1287,8 @@ final class GeneralUtilityTest extends UnitTestCase self::assertEquals($path, GeneralUtility::sanitizeLocalUrl($path)); } - /** - * @test - * @dataProvider sanitizeLocalUrlValidPathsDataProvider - */ + #[DataProvider('sanitizeLocalUrlValidPathsDataProvider')] + #[Test] public function sanitizeLocalUrlAcceptsEncodedValidPaths(string $path): void { Environment::initialize( @@ -1414,10 +1337,8 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider sanitizeLocalUrlValidUrlsDataProvider - */ + #[DataProvider('sanitizeLocalUrlValidUrlsDataProvider')] + #[Test] public function sanitizeLocalUrlAcceptsNotEncodedValidUrls(string $url, string $host, string $subDirectory): void { Environment::initialize( @@ -1437,10 +1358,8 @@ final class GeneralUtilityTest extends UnitTestCase self::assertEquals($url, GeneralUtility::sanitizeLocalUrl($url)); } - /** - * @test - * @dataProvider sanitizeLocalUrlValidUrlsDataProvider - */ + #[DataProvider('sanitizeLocalUrlValidUrlsDataProvider')] + #[Test] public function sanitizeLocalUrlAcceptsEncodedValidUrls(string $url, string $host, string $subDirectory): void { Environment::initialize( @@ -1479,10 +1398,8 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider sanitizeLocalUrlInvalidDataProvider - */ + #[DataProvider('sanitizeLocalUrlInvalidDataProvider')] + #[Test] public function sanitizeLocalUrlDeniesPlainInvalidUrlsInBackendContext(string $url): void { Environment::initialize( @@ -1501,10 +1418,8 @@ final class GeneralUtilityTest extends UnitTestCase self::assertEquals('', GeneralUtility::sanitizeLocalUrl($url)); } - /** - * @test - * @dataProvider sanitizeLocalUrlInvalidDataProvider - */ + #[DataProvider('sanitizeLocalUrlInvalidDataProvider')] + #[Test] public function sanitizeLocalUrlDeniesPlainInvalidUrlsInFrontendContext(string $url): void { Environment::initialize( @@ -1523,10 +1438,8 @@ final class GeneralUtilityTest extends UnitTestCase self::assertEquals('', GeneralUtility::sanitizeLocalUrl($url)); } - /** - * @test - * @dataProvider sanitizeLocalUrlInvalidDataProvider - */ + #[DataProvider('sanitizeLocalUrlInvalidDataProvider')] + #[Test] public function sanitizeLocalUrlDeniesEncodedInvalidUrls($url): void { self::assertEquals('', GeneralUtility::sanitizeLocalUrl(rawurlencode($url))); @@ -1535,10 +1448,7 @@ final class GeneralUtilityTest extends UnitTestCase //////////////////////////////////////// // Tests concerning unlink_tempfile //////////////////////////////////////// - - /** - * @test - */ + #[Test] public function unlink_tempfileRemovesValidFileInTypo3temp(): void { $fixtureFile = __DIR__ . '/Fixtures/clear.gif'; @@ -1549,9 +1459,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertFalse($fileExists); } - /** - * @test - */ + #[Test] public function unlink_tempfileRemovesHiddenFile(): void { $fixtureFile = __DIR__ . '/Fixtures/clear.gif'; @@ -1562,9 +1470,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertFalse($fileExists); } - /** - * @test - */ + #[Test] public function unlink_tempfileReturnsTrueIfFileWasRemoved(): void { $fixtureFile = __DIR__ . '/Fixtures/clear.gif'; @@ -1574,18 +1480,14 @@ final class GeneralUtilityTest extends UnitTestCase self::assertTrue($returnValue); } - /** - * @test - */ + #[Test] public function unlink_tempfileReturnsNullIfFileDoesNotExist(): void { $returnValue = GeneralUtility::unlink_tempfile(Environment::getVarPath() . '/tests/' . StringUtility::getUniqueId('i_do_not_exist')); self::assertNull($returnValue); } - /** - * @test - */ + #[Test] public function unlink_tempfileReturnsNullIfFileIsNowWithinTypo3temp(): void { $returnValue = GeneralUtility::unlink_tempfile('/tmp/typo3-unit-test-unlink_tempfile'); @@ -1595,10 +1497,7 @@ final class GeneralUtilityTest extends UnitTestCase ////////////////////////////////////// // Tests concerning tempnam ////////////////////////////////////// - - /** - * @test - */ + #[Test] public function tempnamReturnsPathStartingWithGivenPrefix(): void { $filePath = GeneralUtility::tempnam('foo'); @@ -1607,9 +1506,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertStringStartsWith('foo', $fileName); } - /** - * @test - */ + #[Test] public function tempnamReturnsPathWithoutBackslashes(): void { $filePath = GeneralUtility::tempnam('foo'); @@ -1617,9 +1514,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertStringNotContainsString('\\', $filePath); } - /** - * @test - */ + #[Test] public function tempnamReturnsAbsolutePathInVarPath(): void { $filePath = GeneralUtility::tempnam('foo'); @@ -1630,9 +1525,7 @@ final class GeneralUtilityTest extends UnitTestCase ////////////////////////////////////// // Tests concerning removeDotsFromTS ////////////////////////////////////// - /** - * @test - */ + #[Test] public function removeDotsFromTypoScriptSucceedsWithDottedArray(): void { $typoScript = [ @@ -1688,18 +1581,14 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider implodeAttributesDataProvider - */ + #[DataProvider('implodeAttributesDataProvider')] + #[Test] public function implodeAttributesEscapesProperly(array $input, bool $xhtmlSafe, bool $keepEmptyValues, string $expected): void { self::assertSame($expected, GeneralUtility::implodeAttributes($input, $xhtmlSafe, $keepEmptyValues)); } - /** - * @test - */ + #[Test] public function removeDotsFromTypoScriptOverridesSubArray(): void { $typoScript = [ @@ -1724,9 +1613,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertEquals($expectedResult, GeneralUtility::removeDotsFromTS($typoScript)); } - /** - * @test - */ + #[Test] public function removeDotsFromTypoScriptOverridesWithScalar(): void { $typoScript = [ @@ -1752,18 +1639,14 @@ final class GeneralUtilityTest extends UnitTestCase ////////////////////////////////////// // Tests concerning get_dirs ////////////////////////////////////// - /** - * @test - */ + #[Test] public function getDirsReturnsArrayOfDirectoriesFromGivenDirectory(): void { $directories = GeneralUtility::get_dirs(Environment::getLegacyConfigPath() . '/'); self::assertIsArray($directories); } - /** - * @test - */ + #[Test] public function getDirsReturnsStringErrorOnPathFailure(): void { $path = 'foo'; @@ -1775,9 +1658,7 @@ final class GeneralUtilityTest extends UnitTestCase ////////////////////////////////// // Tests concerning hmac ////////////////////////////////// - /** - * @test - */ + #[Test] public function hmacReturnsHashOfProperLength(): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['encryptionKey'] = ''; @@ -1786,9 +1667,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertEquals(strlen($hmac), 40); } - /** - * @test - */ + #[Test] public function hmacReturnsEqualHashesForEqualInput(): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['encryptionKey'] = ''; @@ -1797,9 +1676,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertEquals(GeneralUtility::hmac($msg0), GeneralUtility::hmac($msg1)); } - /** - * @test - */ + #[Test] public function hmacReturnsNoEqualHashesForNonEqualInput(): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['encryptionKey'] = ''; @@ -1860,10 +1737,8 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider quoteJsValueDataProvider - */ + #[DataProvider('quoteJsValueDataProvider')] + #[Test] public function quoteJsValueTest(string $input, string $expected): void { self::assertSame('\'' . $expected . '\'', GeneralUtility::quoteJSvalue($input)); @@ -1892,10 +1767,8 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider jsonEncodeForHtmlAttributeTestDataProvider - */ + #[DataProvider('jsonEncodeForHtmlAttributeTestDataProvider')] + #[Test] public function jsonEncodeForHtmlAttributeTest($value, bool $useHtmlEntities, string $expectation): void { self::assertSame($expectation, GeneralUtility::jsonEncodeForHtmlAttribute($value, $useHtmlEntities)); @@ -1916,10 +1789,8 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider jsonEncodeForJavaScriptTestDataProvider - */ + #[DataProvider('jsonEncodeForJavaScriptTestDataProvider')] + #[Test] public function jsonEncodeForJavaScriptTest($value, string $expectation): void { self::assertSame($expectation, GeneralUtility::jsonEncodeForJavaScript($value)); @@ -1933,18 +1804,14 @@ final class GeneralUtilityTest extends UnitTestCase yield 'HTML markup' => ['url(</style>)', 'url(</style>)']; } - /** - * @test - * @dataProvider sanitizeCssVariableValueDataProvider - */ + #[DataProvider('sanitizeCssVariableValueDataProvider')] + #[Test] public function sanitizeCssVariableValue(string $value, string $expectation): void { self::assertSame($expectation, GeneralUtility::sanitizeCssVariableValue($value)); } - /** - * @test - */ + #[Test] public function fixPermissionsSetsPermissionsToFile(): void { if (Environment::isWindows()) { @@ -1962,9 +1829,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertEquals('0660', substr(decoct(fileperms($filename)), 2)); } - /** - * @test - */ + #[Test] public function fixPermissionsSetsPermissionsToHiddenFile(): void { if (Environment::isWindows()) { @@ -1982,9 +1847,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertEquals('0660', substr(decoct(fileperms($filename)), 2)); } - /** - * @test - */ + #[Test] public function fixPermissionsSetsPermissionsToDirectory(): void { if (Environment::isWindows()) { @@ -2002,9 +1865,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertEquals('0770', substr(decoct(fileperms($directory)), 1)); } - /** - * @test - */ + #[Test] public function fixPermissionsSetsPermissionsToDirectoryWithTrailingSlash(): void { if (Environment::isWindows()) { @@ -2023,9 +1884,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertEquals('0770', substr(decoct(fileperms($directory)), 1)); } - /** - * @test - */ + #[Test] public function fixPermissionsSetsPermissionsToHiddenDirectory(): void { if (Environment::isWindows()) { @@ -2044,9 +1903,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertEquals('0770', substr(decoct(fileperms($directory)), 1)); } - /** - * @test - */ + #[Test] public function fixPermissionsCorrectlySetsPermissionsRecursive(): void { if (Environment::isWindows()) { @@ -2095,9 +1952,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertEquals('0660', $resultBarFile2Permissions); } - /** - * @test - */ + #[Test] public function fixPermissionsDoesNotSetPermissionsToNotAllowedPath(): void { if (Environment::isWindows()) { @@ -2111,9 +1966,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertFalse($fixPermissionsResult); } - /** - * @test - */ + #[Test] public function fixPermissionsSetsPermissionsWithRelativeFileReference(): void { if (Environment::isWindows()) { @@ -2131,9 +1984,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertEquals('0660', substr(decoct(fileperms(Environment::getPublicPath() . '/' . $filename)), 2)); } - /** - * @test - */ + #[Test] public function fixPermissionsSetsDefaultPermissionsToFile(): void { if (Environment::isWindows()) { @@ -2149,9 +2000,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertEquals('0644', substr(decoct(fileperms($filename)), 2)); } - /** - * @test - */ + #[Test] public function fixPermissionsSetsDefaultPermissionsToDirectory(): void { if (Environment::isWindows()) { @@ -2170,9 +2019,7 @@ final class GeneralUtilityTest extends UnitTestCase /////////////////////////////// // Tests concerning mkdir /////////////////////////////// - /** - * @test - */ + #[Test] public function mkdirCreatesDirectory(): void { $directory = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('test_'); @@ -2182,9 +2029,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertDirectoryExists($directory); } - /** - * @test - */ + #[Test] public function mkdirCreatesHiddenDirectory(): void { $directory = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('.test_'); @@ -2194,9 +2039,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertDirectoryExists($directory); } - /** - * @test - */ + #[Test] public function mkdirCreatesDirectoryWithTrailingSlash(): void { $directory = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('test_') . '/'; @@ -2206,9 +2049,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertDirectoryExists($directory); } - /** - * @test - */ + #[Test] public function mkdirSetsPermissionsOfCreatedDirectory(): void { if (Environment::isWindows()) { @@ -2227,7 +2068,6 @@ final class GeneralUtilityTest extends UnitTestCase ///////////////////////////////////////////// // Tests concerning writeFileToTypo3tempDir() ///////////////////////////////////////////// - /** * when adding entries here, make sure to register any files or directories that might get created as third array item * they will be cleaned up after test run. @@ -2273,12 +2113,8 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider invalidFilePathForTypo3tempDirDataProvider - * - * * @param non-empty-string $pathToCleanUp - */ + #[DataProvider('invalidFilePathForTypo3tempDirDataProvider')] + #[Test] public function writeFileToTypo3tempDirFailsWithInvalidPath(string $invalidFilePath, string $expectedResult, string $pathToCleanUp): void { if ($pathToCleanUp !== '') { @@ -2319,11 +2155,11 @@ final class GeneralUtilityTest extends UnitTestCase } /** - * @test - * @dataProvider validFilePathForTypo3tempDirDataProvider * @param non-empty-string $filePath * @param non-empty-string $pathToCleanUp */ + #[DataProvider('validFilePathForTypo3tempDirDataProvider')] + #[Test] public function writeFileToTypo3tempDirWorksWithValidPath(string $filePath, string $pathToCleanUp): void { if ($pathToCleanUp !== '') { @@ -2342,9 +2178,7 @@ final class GeneralUtilityTest extends UnitTestCase /////////////////////////////// // Tests concerning mkdir_deep /////////////////////////////// - /** - * @test - */ + #[Test] public function mkdirDeepCreatesDirectory(): void { $directory = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('test_'); @@ -2352,9 +2186,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertDirectoryExists($directory); } - /** - * @test - */ + #[Test] public function mkdirDeepCreatesSubdirectoriesRecursive(): void { $directory = $this->getTestDirectory() . '/typo3temp/var/tests/' . StringUtility::getUniqueId('test_'); @@ -2374,10 +2206,8 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider mkdirDeepCreatesDirectoryWithAndWithoutDoubleSlashesDataProvider - */ + #[DataProvider('mkdirDeepCreatesDirectoryWithAndWithoutDoubleSlashesDataProvider')] + #[Test] public function mkdirDeepCreatesDirectoryWithDoubleSlashes($directoryToCreate): void { $testRoot = Environment::getVarPath() . '/public/'; @@ -2387,9 +2217,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertDirectoryExists($directory); } - /** - * @test - */ + #[Test] public function mkdirDeepFixesPermissionsOfCreatedDirectory(): void { if (Environment::isWindows()) { @@ -2405,9 +2233,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertEquals('777', substr(decoct(fileperms(Environment::getVarPath() . '/tests/' . $directory)), -3, 3)); } - /** - * @test - */ + #[Test] public function mkdirDeepFixesPermissionsOnNewParentDirectory(): void { if (Environment::isWindows()) { @@ -2424,9 +2250,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertEquals('777', substr(decoct(fileperms(Environment::getVarPath() . '/tests/' . $directory)), -3, 3)); } - /** - * @test - */ + #[Test] public function mkdirDeepDoesNotChangePermissionsOfExistingSubDirectories(): void { if (Environment::isWindows()) { @@ -2442,9 +2266,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertEquals(742, (int)substr(decoct(fileperms($baseDirectory . $existingDirectory)), 2)); } - /** - * @test - */ + #[Test] public function mkdirDeepThrowsExceptionIfDirectoryCreationFails(): void { $this->expectException(\RuntimeException::class); @@ -2453,9 +2275,7 @@ final class GeneralUtilityTest extends UnitTestCase GeneralUtility::mkdir_deep('http://localhost'); } - /** - * @test - */ + #[Test] public function mkdirDeepThrowsExceptionIfBaseDirectoryIsNotOfTypeString(): void { $this->expectException(\InvalidArgumentException::class); @@ -2468,10 +2288,7 @@ final class GeneralUtilityTest extends UnitTestCase /////////////////////////////// // Tests concerning rmdir /////////////////////////////// - - /** - * @test - */ + #[Test] public function rmdirRemovesFile(): void { $testRoot = Environment::getVarPath() . '/tests/'; @@ -2483,9 +2300,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertFileDoesNotExist($file); } - /** - * @test - */ + #[Test] public function rmdirReturnTrueIfFileWasRemoved(): void { $file = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('file_'); @@ -2493,18 +2308,14 @@ final class GeneralUtilityTest extends UnitTestCase self::assertTrue(GeneralUtility::rmdir($file)); } - /** - * @test - */ + #[Test] public function rmdirReturnFalseIfNoFileWasRemoved(): void { $file = Environment::getVarPath() . '/tests/' . StringUtility::getUniqueId('file_'); self::assertFalse(GeneralUtility::rmdir($file)); } - /** - * @test - */ + #[Test] public function rmdirRemovesDirectory(): void { $directory = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('directory_'); @@ -2513,9 +2324,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertFileDoesNotExist($directory); } - /** - * @test - */ + #[Test] public function rmdirRemovesDirectoryWithTrailingSlash(): void { $directory = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('directory_') . '/'; @@ -2524,9 +2333,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertFileDoesNotExist($directory); } - /** - * @test - */ + #[Test] public function rmdirDoesNotRemoveDirectoryWithFilesAndReturnsFalseIfRecursiveDeletionIsOff(): void { $directory = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('directory_') . '/'; @@ -2539,9 +2346,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertFalse($return); } - /** - * @test - */ + #[Test] public function rmdirRemovesDirectoriesRecursiveAndReturnsTrue(): void { $directory = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('directory_') . '/'; @@ -2553,9 +2358,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertTrue($return); } - /** - * @test - */ + #[Test] public function rmdirRemovesLinkToDirectory(): void { $existingDirectory = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('notExists_') . '/'; @@ -2566,9 +2369,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertFalse(is_link($symlinkName)); } - /** - * @test - */ + #[Test] public function rmdirRemovesDeadLinkToDirectory(): void { $notExistingDirectory = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('notExists_') . '/'; @@ -2581,9 +2382,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertFalse(is_link($symlinkName)); } - /** - * @test - */ + #[Test] public function rmdirRemovesDeadLinkToFile(): void { $testDirectory = $this->getTestDirectory() . '/'; @@ -2599,7 +2398,6 @@ final class GeneralUtilityTest extends UnitTestCase /////////////////////////////////// // Tests concerning getFilesInDir /////////////////////////////////// - /** * Helper method to create test directory. * @@ -2628,9 +2426,7 @@ final class GeneralUtilityTest extends UnitTestCase return $path; } - /** - * @test - */ + #[Test] public function getFilesInDirFindsRegularFile(): void { $path = $this->getFilesInDirCreateTestDirectory(); @@ -2638,9 +2434,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertContains('testA.txt', $files); } - /** - * @test - */ + #[Test] public function getFilesInDirFindsHiddenFile(): void { $path = $this->getFilesInDirCreateTestDirectory(); @@ -2648,9 +2442,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertContains('.secret.txt', $files); } - /** - * @test - */ + #[Test] public function getFilesInDirOnlyFindWithMatchingExtension(): void { $path = $this->getFilesInDirCreateTestDirectory(); @@ -2680,10 +2472,8 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @dataProvider fileExtensionDataProvider - * @test - */ + #[DataProvider('fileExtensionDataProvider')] + #[Test] public function getFilesInDirByExtensionFindsFiles($fileExtensions): void { $path = $this->getFilesInDirCreateTestDirectory(); @@ -2694,9 +2484,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertContains('test.css', $files); } - /** - * @test - */ + #[Test] public function getFilesInDirByExtensionDoesNotFindFilesWithOtherExtensions(): void { $path = $this->getFilesInDirCreateTestDirectory(); @@ -2706,9 +2494,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertNotContains('test.css', $files); } - /** - * @test - */ + #[Test] public function getFilesInDirExcludesFilesMatchingPattern(): void { $path = $this->getFilesInDirCreateTestDirectory(); @@ -2717,9 +2503,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertNotContains('excludeMe.txt', $files); } - /** - * @test - */ + #[Test] public function getFilesInDirCanPrependPath(): void { $path = $this->getFilesInDirCreateTestDirectory(); @@ -2729,9 +2513,7 @@ final class GeneralUtilityTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function getFilesInDirDoesSortAlphabeticallyByDefault(): void { $path = $this->getFilesInDirCreateTestDirectory(); @@ -2741,9 +2523,7 @@ final class GeneralUtilityTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function getFilesInDirReturnsArrayWithMd5OfElementAndPathAsArrayKey(): void { $path = $this->getFilesInDirCreateTestDirectory(); @@ -2753,9 +2533,7 @@ final class GeneralUtilityTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function getFilesInDirDoesNotFindDirectories(): void { $path = $this->getFilesInDirCreateTestDirectory(); @@ -2768,9 +2546,8 @@ final class GeneralUtilityTest extends UnitTestCase /** * Dotfiles; current directory: '.' and parent directory: '..' must not be * present. - * - * @test */ + #[Test] public function getFilesInDirDoesNotFindDotfiles(): void { $path = $this->getFilesInDirCreateTestDirectory(); @@ -2782,9 +2559,7 @@ final class GeneralUtilityTest extends UnitTestCase /////////////////////////////// // Tests concerning split_fileref /////////////////////////////// - /** - * @test - */ + #[Test] public function splitFileRefReturnsFileTypeNotForFolders(): void { $directoryName = StringUtility::getUniqueId('test_') . '.com'; @@ -2804,9 +2579,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertArrayNotHasKey('realFileext', $fileInfo); } - /** - * @test - */ + #[Test] public function splitFileRefReturnsFileTypeForFilesWithoutPathSite(): void { $testFile = 'fileadmin/media/someFile.png'; @@ -2839,11 +2612,11 @@ final class GeneralUtilityTest extends UnitTestCase } /** - * @test - * @dataProvider dirnameDataProvider * @param string $input the input for dirname * @param string $expectedValue the expected return value expected from dirname */ + #[DataProvider('dirnameDataProvider')] + #[Test] public function dirnameWithDataProvider(string $input, string $expectedValue): void { self::assertEquals($expectedValue, GeneralUtility::dirname($input)); @@ -2890,11 +2663,11 @@ final class GeneralUtilityTest extends UnitTestCase } /** - * @test - * @dataProvider resolveBackPathDataProvider * @param string $input the input for resolveBackPath * @param string $expectedValue Expected return value from resolveBackPath */ + #[DataProvider('resolveBackPathDataProvider')] + #[Test] public function resolveBackPathWithDataProvider(string $input, string $expectedValue): void { self::assertEquals($expectedValue, GeneralUtility::resolveBackPath($input)); @@ -2903,9 +2676,7 @@ final class GeneralUtilityTest extends UnitTestCase ///////////////////////////////////////////////////////////////////////////////////// // Tests concerning makeInstance, setSingletonInstance, addInstance, purgeInstances ///////////////////////////////////////////////////////////////////////////////////// - /** - * @test - */ + #[Test] public function makeInstanceWithEmptyClassNameThrowsException(): void { $this->expectException(\InvalidArgumentException::class); @@ -2915,9 +2686,7 @@ final class GeneralUtilityTest extends UnitTestCase GeneralUtility::makeInstance(''); } - /** - * @test - */ + #[Test] public function makeInstanceWithBeginningSlashInClassNameThrowsException(): void { $this->expectException(\InvalidArgumentException::class); @@ -2926,17 +2695,13 @@ final class GeneralUtilityTest extends UnitTestCase GeneralUtility::makeInstance('\\TYPO3\\CMS\\Backend\\Controller\\BackendController'); } - /** - * @test - */ + #[Test] public function makeInstanceReturnsClassInstance(): void { self::assertInstanceOf(\stdClass::class, GeneralUtility::makeInstance(\stdClass::class)); } - /** - * @test - */ + #[Test] public function makeInstancePassesParametersToConstructor(): void { $instance = GeneralUtility::makeInstance(TwoParametersConstructorFixture::class, 'one parameter', 'another parameter'); @@ -2944,9 +2709,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertEquals('another parameter', $instance->constructorParameter2, 'The second constructor parameter has not been set.'); } - /** - * @test - */ + #[Test] public function makeInstanceInstanciatesConfiguredImplementation(): void { GeneralUtility::flushInternalRuntimeCaches(); @@ -2954,9 +2717,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertInstanceOf(ReplacementClassFixture::class, GeneralUtility::makeInstance(OriginalClassFixture::class)); } - /** - * @test - */ + #[Test] public function makeInstanceResolvesConfiguredImplementationsRecursively(): void { GeneralUtility::flushInternalRuntimeCaches(); @@ -2965,27 +2726,21 @@ final class GeneralUtilityTest extends UnitTestCase self::assertInstanceOf(OtherReplacementClassFixture::class, GeneralUtility::makeInstance(OriginalClassFixture::class)); } - /** - * @test - */ + #[Test] public function makeInstanceCalledTwoTimesForNonSingletonClassReturnsDifferentInstances(): void { $className = \stdClass::class; self::assertNotSame(GeneralUtility::makeInstance($className), GeneralUtility::makeInstance($className)); } - /** - * @test - */ + #[Test] public function makeInstanceCalledTwoTimesForSingletonClassReturnsSameInstance(): void { $className = get_class($this->createMock(SingletonInterface::class)); self::assertSame(GeneralUtility::makeInstance($className), GeneralUtility::makeInstance($className)); } - /** - * @test - */ + #[Test] public function makeInstanceCalledTwoTimesForSingletonClassWithPurgeInstancesInbetweenReturnsDifferentInstances(): void { $className = get_class($this->createMock(SingletonInterface::class)); @@ -2994,18 +2749,14 @@ final class GeneralUtilityTest extends UnitTestCase self::assertNotSame($instance, GeneralUtility::makeInstance($className)); } - /** - * @test - */ + #[Test] public function makeInstanceInjectsLogger(): void { $instance = GeneralUtility::makeInstance(GeneralUtilityMakeInstanceInjectLoggerFixture::class); self::assertInstanceOf(LoggerInterface::class, $instance->getLogger()); } - /** - * @test - */ + #[Test] public function setSingletonInstanceForEmptyClassNameThrowsException(): void { $this->expectException(\InvalidArgumentException::class); @@ -3016,9 +2767,7 @@ final class GeneralUtilityTest extends UnitTestCase GeneralUtility::setSingletonInstance('', $instance); } - /** - * @test - */ + #[Test] public function setSingletonInstanceForClassThatIsNoSubclassOfProvidedClassThrowsException(): void { $this->expectException(\InvalidArgumentException::class); @@ -3031,9 +2780,7 @@ final class GeneralUtilityTest extends UnitTestCase GeneralUtility::setSingletonInstance($singletonClassName, $instance); } - /** - * @test - */ + #[Test] public function setSingletonInstanceMakesMakeInstanceReturnThatInstance(): void { $instance = $this->createMock(SingletonInterface::class); @@ -3042,9 +2789,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertSame($instance, GeneralUtility::makeInstance($singletonClassName)); } - /** - * @test - */ + #[Test] public function setSingletonInstanceCalledTwoTimesMakesMakeInstanceReturnLastSetInstance(): void { $instance1 = $this->createMock(SingletonInterface::class); @@ -3055,9 +2800,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertSame($instance2, GeneralUtility::makeInstance($singletonClassName)); } - /** - * @test - */ + #[Test] public function getSingletonInstancesContainsPreviouslySetSingletonInstance(): void { $instance = $this->createMock(SingletonInterface::class); @@ -3068,9 +2811,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertSame($registeredSingletonInstances[$instanceClassName], $instance); } - /** - * @test - */ + #[Test] public function setSingletonInstanceReturnsFinalClassNameWithOverriddenClass(): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['Objects'][SingletonClassFixture::class]['className'] = ExtendedSingletonClassFixture::class; @@ -3082,9 +2823,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertEquals(ExtendedSingletonClassFixture::class, get_class($anotherInstance)); } - /** - * @test - */ + #[Test] public function resetSingletonInstancesResetsPreviouslySetInstance(): void { $instance = $this->createMock(SingletonInterface::class); @@ -3095,9 +2834,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertArrayNotHasKey($instanceClassName, $registeredSingletonInstances); } - /** - * @test - */ + #[Test] public function resetSingletonInstancesSetsGivenInstance(): void { $instance = $this->createMock(SingletonInterface::class); @@ -3110,9 +2847,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertSame($registeredSingletonInstances[$instanceClassName], $instance); } - /** - * @test - */ + #[Test] public function addInstanceForEmptyClassNameThrowsException(): void { $this->expectException(\InvalidArgumentException::class); @@ -3122,9 +2857,7 @@ final class GeneralUtilityTest extends UnitTestCase GeneralUtility::addInstance('', new \stdClass()); } - /** - * @test - */ + #[Test] public function addInstanceForClassThatIsNoSubclassOfProvidedClassThrowsException(): void { $this->expectException(\InvalidArgumentException::class); @@ -3137,9 +2870,7 @@ final class GeneralUtilityTest extends UnitTestCase GeneralUtility::addInstance($singletonClassName, $instance); } - /** - * @test - */ + #[Test] public function addInstanceWithSingletonInstanceThrowsException(): void { $this->expectException(\InvalidArgumentException::class); @@ -3149,9 +2880,7 @@ final class GeneralUtilityTest extends UnitTestCase GeneralUtility::addInstance(get_class($instance), $instance); } - /** - * @test - */ + #[Test] public function addInstanceMakesMakeInstanceReturnThatInstance(): void { $instance = $this->createMock(\stdClass::class); @@ -3160,9 +2889,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertSame($instance, GeneralUtility::makeInstance($className)); } - /** - * @test - */ + #[Test] public function makeInstanceCalledTwoTimesAfterAddInstanceReturnTwoDifferentInstances(): void { $instance = $this->createMock(\stdClass::class); @@ -3171,9 +2898,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertNotSame(GeneralUtility::makeInstance($className), GeneralUtility::makeInstance($className)); } - /** - * @test - */ + #[Test] public function addInstanceCalledTwoTimesMakesMakeInstanceReturnBothInstancesInAddingOrder(): void { $instance1 = $this->createMock(\stdClass::class); @@ -3185,9 +2910,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertSame($instance2, GeneralUtility::makeInstance($className), 'The second returned instance does not match the second added instance.'); } - /** - * @test - */ + #[Test] public function purgeInstancesDropsAddedInstance(): void { $instance = $this->createMock(\stdClass::class); @@ -3231,10 +2954,8 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider getFileAbsFileNameDataProvider - */ + #[DataProvider('getFileAbsFileNameDataProvider')] + #[Test] public function getFileAbsFileNameReturnsCorrectValues(string $path, string $expected): void { // build the dummy package "foo" for use in ExtensionManagementUtility::extPath('foo'); @@ -3299,10 +3020,9 @@ final class GeneralUtilityTest extends UnitTestCase /** * Tests whether invalid characters are detected. - * - * @dataProvider validPathStrInvalidCharactersDataProvider - * @test */ + #[DataProvider('validPathStrInvalidCharactersDataProvider')] + #[Test] public function validPathStrDetectsInvalidCharacters(string $path): void { self::assertFalse(GeneralUtility::validPathStr($path)); @@ -3323,10 +3043,9 @@ final class GeneralUtilityTest extends UnitTestCase /** * Tests whether Unicode characters are recognized as valid file name characters. - * - * @dataProvider validPathStrDataProvider - * @test */ + #[DataProvider('validPathStrDataProvider')] + #[Test] public function validPathStrWorksWithUnicodeFileNames($path): void { self::assertTrue(GeneralUtility::validPathStr($path)); @@ -3335,10 +3054,7 @@ final class GeneralUtilityTest extends UnitTestCase ///////////////////////////////////////////////////////////////////////////////////// // Tests concerning copyDirectory ///////////////////////////////////////////////////////////////////////////////////// - - /** - * @test - */ + #[Test] public function copyDirectoryCopiesFilesAndDirectoriesWithRelativePaths(): void { $sourceDirectory = 'typo3temp/var/tests/' . StringUtility::getUniqueId('test_') . '/'; @@ -3360,9 +3076,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertFileExists($absoluteTargetDirectory . 'foo/file'); } - /** - * @test - */ + #[Test] public function copyDirectoryCopiesFilesAndDirectoriesWithAbsolutePaths(): void { $sourceDirectory = 'typo3temp/var/tests/' . StringUtility::getUniqueId('test_') . '/'; @@ -3396,10 +3110,10 @@ final class GeneralUtilityTest extends UnitTestCase } /** - * @test - * @dataProvider callUserFunctionInvalidParameterDataProvider * @param non-empty-string $functionName */ + #[DataProvider('callUserFunctionInvalidParameterDataProvider')] + #[Test] public function callUserFunctionWillThrowExceptionForInvalidParameters(string $functionName, int $expectedException): void { $this->expectException(\InvalidArgumentException::class); @@ -3408,9 +3122,7 @@ final class GeneralUtilityTest extends UnitTestCase GeneralUtility::callUserFunction($functionName, $inputData, $this); } - /** - * @test - */ + #[Test] public function callUserFunctionCanCallClosure(): void { $inputData = ['foo' => 'bar']; @@ -3423,9 +3135,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertEquals('Worked fine', $result); } - /** - * @test - */ + #[Test] public function callUserFunctionCanCallMethod(): void { $inputData = ['foo' => 'bar']; @@ -3433,9 +3143,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertEquals('Worked fine', $result); } - /** - * @test - */ + #[Test] public function callUserFunctionTrimsSpaces(): void { $inputData = ['foo' => 'bar']; @@ -3443,9 +3151,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertEquals('Worked fine', $result); } - /** - * @test - */ + #[Test] public function callUserFunctionAcceptsClosures(): void { $inputData = ['foo' => 'bar']; @@ -3456,9 +3162,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertEquals('Worked fine', GeneralUtility::callUserFunction($closure, $inputData, $this)); } - /** - * @test - */ + #[Test] public function getAllFilesAndFoldersInPathReturnsArrayWithMd5Keys(): void { $directory = $this->getTestDirectory() . '/' . StringUtility::getUniqueId('directory_'); @@ -3477,9 +3181,8 @@ final class GeneralUtilityTest extends UnitTestCase /** * If the element is not empty, its contents might be treated as "something" (instead of "nothing") * e.g. by Fluid view helpers, which is why we want to avoid that. - * - * @test */ + #[Test] public function array2xmlConvertsEmptyArraysToElementWithoutContent(): void { $input = [ @@ -3493,9 +3196,7 @@ final class GeneralUtilityTest extends UnitTestCase </phparray>', $output); } - /** - * @test - */ + #[Test] public function xml2arrayUsesCache(): void { $cacheMock = $this->createMock(FrontendInterface::class); @@ -3564,10 +3265,8 @@ final class GeneralUtilityTest extends UnitTestCase return $data; } - /** - * @test - * @dataProvider xml2arrayProcessHandlesWhitespacesDataProvider - */ + #[DataProvider('xml2arrayProcessHandlesWhitespacesDataProvider')] + #[Test] public function xml2arrayProcessHandlesWhitespaces(string $input): void { $expected = [ @@ -3619,10 +3318,8 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider xml2arrayProcessHandlesTagNamespacesDataProvider - */ + #[DataProvider('xml2arrayProcessHandlesTagNamespacesDataProvider')] + #[Test] public function xml2arrayProcessHandlesTagNamespaces(string $input): void { $expected = [ @@ -3677,10 +3374,8 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider xml2arrayProcessHandlesDocumentTagDataProvider - */ + #[DataProvider('xml2arrayProcessHandlesDocumentTagDataProvider')] + #[Test] public function xml2arrayProcessHandlesDocumentTag(string $input, string $docTag): void { $expected = [ @@ -3725,10 +3420,8 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider xml2ArrayProcessHandlesBigXmlContentDataProvider - */ + #[DataProvider('xml2ArrayProcessHandlesBigXmlContentDataProvider')] + #[Test] public function xml2ArrayProcessHandlesBigXmlContent(string $input, string $testValue): void { $expected = [ @@ -3816,10 +3509,8 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider xml2ArrayProcessHandlesAttributeTypesDataProvider - */ + #[DataProvider('xml2ArrayProcessHandlesAttributeTypesDataProvider')] + #[Test] public function xml2ArrayProcessHandlesAttributeTypes(string $input, mixed $expected): void { $result = GeneralUtility::xml2arrayProcess($input); @@ -3858,10 +3549,10 @@ final class GeneralUtilityTest extends UnitTestCase } /** - * @test - * @dataProvider locationHeaderUrlDataProvider - * @throws \TYPO3\CMS\Core\Exception + * @throws Exception */ + #[DataProvider('locationHeaderUrlDataProvider')] + #[Test] public function locationHeaderUrl(string $path, string $host, string $expected): void { Environment::initialize( @@ -3881,9 +3572,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertSame($expected, $result); } - /** - * @test - */ + #[Test] public function createVersionNumberedFilenameDoesNotResolveBackpathForAbsolutePath(): void { $GLOBALS['TYPO3_CONF_VARS']['BE']['versionNumberInFilename'] = true; @@ -3900,9 +3589,7 @@ final class GeneralUtilityTest extends UnitTestCase self::assertMatchesRegularExpression('/^.*\/tests\/' . $uniqueFilename . '\.[0-9]+\.css/', $versionedFilename); } - /** - * @test - */ + #[Test] public function createVersionNumberedFilenameKeepsInvalidAbsolutePathInFrontendAndAddsQueryString(): void { Environment::initialize( @@ -3938,9 +3625,7 @@ final class GeneralUtilityTest extends UnitTestCase GeneralUtility::rmdir($testFileDirectory, true); } - /** - * @test - */ + #[Test] public function getMaxUploadFileSizeReturnsPositiveInt(): void { $result = GeneralUtility::getMaxUploadFileSize(); diff --git a/typo3/sysext/core/Tests/Unit/Utility/HttpUtilityTest.php b/typo3/sysext/core/Tests/Unit/Utility/HttpUtilityTest.php index 7dffb1c9251671b37873a540a452afb3d3b42d27..dae3774ad3b135965cab8e6e53dda5dbcbd14cd6 100644 --- a/typo3/sysext/core/Tests/Unit/Utility/HttpUtilityTest.php +++ b/typo3/sysext/core/Tests/Unit/Utility/HttpUtilityTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Utility; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Utility\HttpUtility; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -25,10 +27,8 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; */ final class HttpUtilityTest extends UnitTestCase { - /** - * @dataProvider isUrlBuiltCorrectlyDataProvider - * @test - */ + #[DataProvider('isUrlBuiltCorrectlyDataProvider')] + #[Test] public function isUrlBuiltCorrectly(array $urlParts, string $expected): void { $url = HttpUtility::buildUrl($urlParts); @@ -76,10 +76,8 @@ final class HttpUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider queryStringDataProvider - */ + #[DataProvider('queryStringDataProvider')] + #[Test] public function buildQueryStringBuildsValidParameterString(string $name, array $input, string $expected): void { if ($name === '') { @@ -89,9 +87,7 @@ final class HttpUtilityTest extends UnitTestCase } } - /** - * @test - */ + #[Test] public function buildQueryStringCanSkipEmptyParameters(): void { $input = ['one' => '√', '']; @@ -99,9 +95,7 @@ final class HttpUtilityTest extends UnitTestCase self::assertSame($expected, HttpUtility::buildQueryString(['foo' => $input], '', true)); } - /** - * @test - */ + #[Test] public function buildQueryStringCanUrlEncodeKeyNames(): void { $input = ['one' => '√', '']; @@ -109,9 +103,7 @@ final class HttpUtilityTest extends UnitTestCase self::assertSame($expected, HttpUtility::buildQueryString(['foo' => $input])); } - /** - * @test - */ + #[Test] public function buildQueryStringCanUrlEncodeKeyNamesMultidimensional(): void { $input = ['one' => ['two' => ['three' => '√']], '']; @@ -119,9 +111,7 @@ final class HttpUtilityTest extends UnitTestCase self::assertSame($expected, HttpUtility::buildQueryString(['foo' => $input])); } - /** - * @test - */ + #[Test] public function buildQueryStringSkipsLeadingCharacterOnEmptyParameters(): void { $input = []; @@ -129,9 +119,7 @@ final class HttpUtilityTest extends UnitTestCase self::assertSame($expected, HttpUtility::buildQueryString($input, '?', true)); } - /** - * @test - */ + #[Test] public function buildQueryStringSkipsLeadingCharacterOnCleanedEmptyParameters(): void { $input = ['one' => '']; diff --git a/typo3/sysext/core/Tests/Unit/Utility/IpAnonymizationUtilityTest.php b/typo3/sysext/core/Tests/Unit/Utility/IpAnonymizationUtilityTest.php index 594efb2583be91ccdf02a382be9e8906e2ec36fd..4baa2c21e57d6fbb237c5e6a9c8f243a97be5a30 100644 --- a/typo3/sysext/core/Tests/Unit/Utility/IpAnonymizationUtilityTest.php +++ b/typo3/sysext/core/Tests/Unit/Utility/IpAnonymizationUtilityTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Utility; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Utility\IpAnonymizationUtility; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -48,10 +50,10 @@ final class IpAnonymizationUtilityTest extends UnitTestCase } /** - * @test - * @dataProvider anonymizeIpReturnsCorrectValueDataProvider * @param int|null $mask */ + #[DataProvider('anonymizeIpReturnsCorrectValueDataProvider')] + #[Test] public function anonymizeIpReturnsCorrectValue(string $address, int $mask = null, string $expected): void { // set the default if $mask is null @@ -59,9 +61,7 @@ final class IpAnonymizationUtilityTest extends UnitTestCase self::assertEquals($expected, IpAnonymizationUtility::anonymizeIp($address, $mask)); } - /** - * @test - */ + #[Test] public function wrongMaskForAnonymizeIpThrowsException(): void { $this->expectException(\UnexpectedValueException::class); diff --git a/typo3/sysext/core/Tests/Unit/Utility/MailUtilityTest.php b/typo3/sysext/core/Tests/Unit/Utility/MailUtilityTest.php index d2af33d33034cd43a5b3d380a1884e9a4325a7b5..b21bc0adb908421f18aba909549ffbe65e76c04f 100644 --- a/typo3/sysext/core/Tests/Unit/Utility/MailUtilityTest.php +++ b/typo3/sysext/core/Tests/Unit/Utility/MailUtilityTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Utility; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Utility\MailUtility; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -24,17 +26,13 @@ final class MailUtilityTest extends UnitTestCase { protected bool $resetSingletonInstances = true; - /** - * @test - */ + #[Test] public function breakLinesForEmailReturnsEmptyStringIfEmptyStringIsGiven(): void { self::assertEmpty(MailUtility::breakLinesForEmail('')); } - /** - * @test - */ + #[Test] public function breakLinesForEmailReturnsOneLineIfCharWithIsNotExceeded(): void { $newlineChar = LF; @@ -44,9 +42,7 @@ final class MailUtilityTest extends UnitTestCase self::assertCount(1, explode($newlineChar, $returnString)); } - /** - * @test - */ + #[Test] public function breakLinesForEmailBreaksTextIfCharWithIsExceeded(): void { $newlineChar = LF; @@ -56,9 +52,7 @@ final class MailUtilityTest extends UnitTestCase self::assertCount(2, explode($newlineChar, $returnString)); } - /** - * @test - */ + #[Test] public function breakLinesForEmailBreaksTextWithNoSpaceFoundBeforeLimit(): void { $newlineChar = LF; @@ -69,9 +63,7 @@ final class MailUtilityTest extends UnitTestCase self::assertEquals($returnString, 'abcdefghijklmnopqrst' . LF . 'uvwxyz' . LF . '123456'); } - /** - * @test - */ + #[Test] public function breakLinesForEmailBreaksTextIfLineIsLongerThanTheLineWidth(): void { $str = 'Mein Link auf eine News (Link: http://zzzzzzzzzzzzz.xxxxxxxxx.de/index.php?id=10&tx_ttnews%5Btt_news%5D=1&cHash=66f5af320da29b7ae1cda49047ca7358)'; @@ -104,10 +96,8 @@ final class MailUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider parseAddressesProvider - */ + #[DataProvider('parseAddressesProvider')] + #[Test] public function parseAddressesTest(string $source, array $addressList): void { $returnArray = MailUtility::parseAddresses($source); @@ -136,10 +126,8 @@ final class MailUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider replyToProvider - */ + #[DataProvider('replyToProvider')] + #[Test] public function getSystemReplyToTest(array $configuration, array $expectedReplyTo): void { $GLOBALS['TYPO3_CONF_VARS']['MAIL'] = $configuration; diff --git a/typo3/sysext/core/Tests/Unit/Utility/MathUtilityTest.php b/typo3/sysext/core/Tests/Unit/Utility/MathUtilityTest.php index f2fb696985be5499405418923aac78a25d0d0cc9..fe058a2af51794badd8296992d117804d55b4b7d 100644 --- a/typo3/sysext/core/Tests/Unit/Utility/MathUtilityTest.php +++ b/typo3/sysext/core/Tests/Unit/Utility/MathUtilityTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Utility; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Tests\Unit\Utility\Fixtures\MathUtilityTestClassWithStringRepresentationFixture; use TYPO3\CMS\Core\Utility\MathUtility; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -42,18 +44,14 @@ final class MathUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider forceIntegerInRangeForcesIntegerIntoDefaultBoundariesDataProvider - */ + #[DataProvider('forceIntegerInRangeForcesIntegerIntoDefaultBoundariesDataProvider')] + #[Test] public function forceIntegerInRangeForcesIntegerIntoDefaultBoundaries($expected, $value): void { self::assertEquals($expected, MathUtility::forceIntegerInRange($value, 0)); } - /** - * @test - */ + #[Test] public function forceIntegerInRangeSetsDefaultValueIfZeroValueIsGiven(): void { self::assertEquals(42, MathUtility::forceIntegerInRange('', 0, 2000000000, 42)); @@ -62,17 +60,13 @@ final class MathUtilityTest extends UnitTestCase ////////////////////////////////// // Tests concerning convertToPositiveInteger ////////////////////////////////// - /** - * @test - */ + #[Test] public function convertToPositiveIntegerReturnsZeroForNegativeValues(): void { self::assertEquals(0, MathUtility::convertToPositiveInteger(-123)); } - /** - * @test - */ + #[Test] public function convertToPositiveIntegerReturnsTheInputValueForPositiveValues(): void { self::assertEquals(123, MathUtility::convertToPositiveInteger(123)); @@ -99,10 +93,8 @@ final class MathUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider functionCanBeInterpretedAsIntegerValidDataProvider - */ + #[DataProvider('functionCanBeInterpretedAsIntegerValidDataProvider')] + #[Test] public function canBeInterpretedAsIntegerReturnsTrue($int): void { self::assertTrue(MathUtility::canBeInterpretedAsInteger($int)); @@ -148,10 +140,8 @@ final class MathUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider functionCanBeInterpretedAsIntegerInvalidDataProvider - */ + #[DataProvider('functionCanBeInterpretedAsIntegerInvalidDataProvider')] + #[Test] public function canBeInterpretedAsIntegerReturnsFalse($int): void { self::assertFalse(MathUtility::canBeInterpretedAsInteger($int)); @@ -179,10 +169,8 @@ final class MathUtilityTest extends UnitTestCase return array_merge($intTestcases, $floatTestcases); } - /** - * @test - * @dataProvider functionCanBeInterpretedAsFloatValidDataProvider - */ + #[DataProvider('functionCanBeInterpretedAsFloatValidDataProvider')] + #[Test] public function canBeInterpretedAsFloatReturnsTrue($val): void { self::assertTrue(MathUtility::canBeInterpretedAsFloat($val)); @@ -224,10 +212,8 @@ final class MathUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider functionCanBeInterpretedAsFloatInvalidDataProvider - */ + #[DataProvider('functionCanBeInterpretedAsFloatInvalidDataProvider')] + #[Test] public function canBeInterpretedAsFloatReturnsFalse($int): void { self::assertFalse(MathUtility::canBeInterpretedAsFloat($int)); @@ -260,10 +246,8 @@ final class MathUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider calculateWithPriorityToAdditionAndSubtractionDataProvider - */ + #[DataProvider('calculateWithPriorityToAdditionAndSubtractionDataProvider')] + #[Test] public function calculateWithPriorityToAdditionAndSubtractionCorrectlyCalculatesExpression($expected, $expression): void { self::assertEquals($expected, MathUtility::calculateWithPriorityToAdditionAndSubtraction($expression)); @@ -288,10 +272,8 @@ final class MathUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider calculateWithParenthesesDataProvider - */ + #[DataProvider('calculateWithParenthesesDataProvider')] + #[Test] public function calculateWithParenthesesCorrectlyCalculatesExpression($expected, $expression): void { self::assertEquals($expected, MathUtility::calculateWithParentheses($expression)); @@ -300,33 +282,25 @@ final class MathUtilityTest extends UnitTestCase ////////////////////////////////// // Tests concerning isIntegerInRange ////////////////////////////////// - /** - * @test - */ + #[Test] public function isIntegerInRangeIncludesLowerBoundary(): void { self::assertTrue(MathUtility::isIntegerInRange(1, 1, 2)); } - /** - * @test - */ + #[Test] public function isIntegerInRangeIncludesUpperBoundary(): void { self::assertTrue(MathUtility::isIntegerInRange(2, 1, 2)); } - /** - * @test - */ + #[Test] public function isIntegerInRangeAcceptsValueInRange(): void { self::assertTrue(MathUtility::isIntegerInRange(10, 1, 100)); } - /** - * @test - */ + #[Test] public function isIntegerInRangeRejectsValueOutsideOfRange(): void { self::assertFalse(MathUtility::isIntegerInRange(10, 1, 2)); @@ -348,10 +322,8 @@ final class MathUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider isIntegerInRangeRejectsOtherDataTypesDataProvider - */ + #[DataProvider('isIntegerInRangeRejectsOtherDataTypesDataProvider')] + #[Test] public function isIntegerInRangeRejectsOtherDataTypes($inputValue): void { self::assertFalse(MathUtility::isIntegerInRange($inputValue, 0, 10)); diff --git a/typo3/sysext/core/Tests/Unit/Utility/PathUtilityPublicPathsTest.php b/typo3/sysext/core/Tests/Unit/Utility/PathUtilityPublicPathsTest.php index 71f6a1231e09fe65776171cd559abd963e7c6903..9a5d3acd3544bca06ca815059b82520fa52e06b8 100644 --- a/typo3/sysext/core/Tests/Unit/Utility/PathUtilityPublicPathsTest.php +++ b/typo3/sysext/core/Tests/Unit/Utility/PathUtilityPublicPathsTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Utility; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Core\Environment; use TYPO3\CMS\Core\Resource\Exception\InvalidFileException; use TYPO3\CMS\Core\Utility\PathUtility; @@ -81,9 +83,7 @@ final class PathUtilityPublicPathsTest extends UnitTestCase self::simulateWebRequest(Environment::getPublicPath(), $subDirectory); } - /** - * @test - */ + #[Test] public function tryingToResolveNonExtensionResourcesThrowsException(): void { $this->expectException(InvalidFileException::class); @@ -91,9 +91,7 @@ final class PathUtilityPublicPathsTest extends UnitTestCase PathUtility::getPublicResourceWebPath('typo3/sysext/core/Resources/Public/Icons/Extension.svg'); } - /** - * @test - */ + #[Test] public function tryingToResolvePrivateResourcesFromComposerPackagesThrowsException(): void { self::simulateWebRequestInComposerMode(); @@ -135,9 +133,9 @@ final class PathUtilityPublicPathsTest extends UnitTestCase /** * @throws InvalidFileException - * @dataProvider getPublicResourceWebPathResolvesUrlsCorrectlyDataProvider - * @test */ + #[DataProvider('getPublicResourceWebPathResolvesUrlsCorrectlyDataProvider')] + #[Test] public function getPublicResourceWebPathResolvesUrlsCorrectly(string $pathReference, string $expectedUrl, callable $setup): void { $setup(); diff --git a/typo3/sysext/core/Tests/Unit/Utility/PathUtilityTest.php b/typo3/sysext/core/Tests/Unit/Utility/PathUtilityTest.php index 5e977c4b650f1406cd6642830e21705c024529fe..0f887d631fbed871d955a7929534dba1d2b51d6f 100644 --- a/typo3/sysext/core/Tests/Unit/Utility/PathUtilityTest.php +++ b/typo3/sysext/core/Tests/Unit/Utility/PathUtilityTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Utility; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Core\Environment; use TYPO3\CMS\Core\Utility\PathUtility; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -30,9 +32,9 @@ final class PathUtilityTest extends UnitTestCase /** * @param string $expected - * @dataProvider isCommonPrefixResolvedCorrectlyDataProvider - * @test */ + #[DataProvider('isCommonPrefixResolvedCorrectlyDataProvider')] + #[Test] public function isCommonPrefixResolvedCorrectly(array $paths, $expected): void { $commonPrefix = PathUtility::getCommonPrefix($paths); @@ -135,9 +137,9 @@ final class PathUtilityTest extends UnitTestCase * @param string $source * @param string $target * @param string $expected - * @dataProvider isRelativePathResolvedCorrectlyDataProvider - * @test */ + #[DataProvider('isRelativePathResolvedCorrectlyDataProvider')] + #[Test] public function isRelativePathResolvedCorrectly($source, $target, $expected): void { $relativePath = PathUtility::getRelativePath($source, $target); @@ -184,9 +186,9 @@ final class PathUtilityTest extends UnitTestCase * @param string $path * @param string $separator * @param string $expected - * @dataProvider isTrailingSeparatorSanitizedCorrectlyDataProvider - * @test */ + #[DataProvider('isTrailingSeparatorSanitizedCorrectlyDataProvider')] + #[Test] public function isTrailingSeparatorSanitizedCorrectly($path, $separator, $expected): void { $sanitizedPath = PathUtility::sanitizeTrailingSeparator($path, $separator); @@ -241,10 +243,8 @@ final class PathUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider getAbsolutePathOfRelativeReferencedFileOrPathResolvesFileCorrectlyDataProvider - */ + #[DataProvider('getAbsolutePathOfRelativeReferencedFileOrPathResolvesFileCorrectlyDataProvider')] + #[Test] public function getAbsolutePathOfRelativeReferencedFileOrPathResolvesFileCorrectly(string $baseFileName, string $includeFileName, string $expectedFileName): void { $resolvedFilename = PathUtility::getAbsolutePathOfRelativeReferencedFileOrPath($baseFileName, $includeFileName); @@ -354,10 +354,8 @@ final class PathUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider getCanonicalPathCorrectlyCleansPathDataProvider - */ + #[DataProvider('getCanonicalPathCorrectlyCleansPathDataProvider')] + #[Test] public function getCanonicalPathCorrectlyCleansPath(string $inputName, string $expectedResult): void { // Ensure Environment runs as Windows test @@ -405,10 +403,8 @@ final class PathUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider dirnameDuringBootstrapCorrectlyFetchesParentDataProvider - */ + #[DataProvider('dirnameDuringBootstrapCorrectlyFetchesParentDataProvider')] + #[Test] public function dirnameDuringBootstrapCorrectlyFetchesParent(string $inputPath, string $expectedResult): void { self::assertSame( @@ -442,10 +438,8 @@ final class PathUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider basenameDuringBootstrapCorrectlyFetchesBasenameDataProvider - */ + #[DataProvider('basenameDuringBootstrapCorrectlyFetchesBasenameDataProvider')] + #[Test] public function basenameDuringBootstrapCorrectlyFetchesBasename(string $inputPath, string $expectedResult): void { self::assertSame( @@ -510,10 +504,8 @@ final class PathUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider isAbsolutePathRespectsAllOperatingSystemsPathDataProvider - */ + #[DataProvider('isAbsolutePathRespectsAllOperatingSystemsPathDataProvider')] + #[Test] public function isAbsolutePathRespectsAllOperatingSystems(string $inputPath, bool $isWindows, bool $expectedResult): void { if ($isWindows) { @@ -552,10 +544,8 @@ final class PathUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider hasProtocolAndSchemeDataProvider - */ + #[DataProvider('hasProtocolAndSchemeDataProvider')] + #[Test] public function hasProtocolAndScheme(string $url, bool $result): void { self::assertSame($result, PathUtility::hasProtocolAndScheme($url)); @@ -588,10 +578,8 @@ final class PathUtilityTest extends UnitTestCase yield [['/var/shared/'], '/var', false]; } - /** - * @test - * @dataProvider allowedAdditionalPathsAreEvaluatedDataProvider - */ + #[DataProvider('allowedAdditionalPathsAreEvaluatedDataProvider')] + #[Test] public function allowedAdditionalPathsAreEvaluated(mixed $lockRootPath, string $path, bool $expectation): void { $GLOBALS['TYPO3_CONF_VARS']['BE']['lockRootPath'] = $lockRootPath; diff --git a/typo3/sysext/core/Tests/Unit/Utility/PermutationUtilityTest.php b/typo3/sysext/core/Tests/Unit/Utility/PermutationUtilityTest.php index 830f53344148e996c70be07397e59dbf6c91620e..28ab742361c572fcf6801fcd0fa3ad610ae5e055 100644 --- a/typo3/sysext/core/Tests/Unit/Utility/PermutationUtilityTest.php +++ b/typo3/sysext/core/Tests/Unit/Utility/PermutationUtilityTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Utility; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Tests\Unit\Utility\Fixtures\StringValue; use TYPO3\CMS\Core\Utility\PermutationUtility; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -101,10 +103,9 @@ final class PermutationUtilityTest extends UnitTestCase /** * @param array|int $expectation - * - * @test - * @dataProvider meltStringItemsDataProvider */ + #[DataProvider('meltStringItemsDataProvider')] + #[Test] public function meltStringItemsIsExecuted(array $payload, $expectation): void { if (is_int($expectation)) { @@ -184,10 +185,9 @@ final class PermutationUtilityTest extends UnitTestCase /** * @param array|int $expectation - * - * @test - * @dataProvider meltArrayItemsDataProvider */ + #[DataProvider('meltArrayItemsDataProvider')] + #[Test] public function meltArrayItemsIsExecuted(array $payload, $expectation): void { if (is_int($expectation)) { diff --git a/typo3/sysext/core/Tests/Unit/Utility/RootlineUtilityTest.php b/typo3/sysext/core/Tests/Unit/Utility/RootlineUtilityTest.php index 279222776a02de99359d4be75be7e8458bd51ab3..f09e01bb333dc70d2d9652d032230ebf5c807f6e 100644 --- a/typo3/sysext/core/Tests/Unit/Utility/RootlineUtilityTest.php +++ b/typo3/sysext/core/Tests/Unit/Utility/RootlineUtilityTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Utility; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Core\Cache\CacheManager; use TYPO3\CMS\Core\Cache\Frontend\NullFrontend; @@ -70,36 +71,28 @@ final class RootlineUtilityTest extends UnitTestCase self::assertSame($subsetCandidate, array_intersect_assoc($subsetCandidate, $superset)); } - /** - * @test - */ + #[Test] public function isMountedPageWithoutMountPointsReturnsFalse(): void { $this->subject->__construct(1, '', new Context()); self::assertFalse($this->subject->isMountedPage()); } - /** - * @test - */ + #[Test] public function isMountedPageWithMatchingMountPointParameterReturnsTrue(): void { $this->subject->__construct(1, '1-99', new Context()); self::assertTrue($this->subject->isMountedPage()); } - /** - * @test - */ + #[Test] public function isMountedPageWithNonMatchingMountPointParameterReturnsFalse(): void { $this->subject->__construct(1, '99-99', new Context()); self::assertFalse($this->subject->isMountedPage()); } - /** - * @test - */ + #[Test] public function processMountedPageWithNonMountedPageThrowsException(): void { $this->expectException(\RuntimeException::class); @@ -113,9 +106,7 @@ final class RootlineUtilityTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function processMountedPageWithMountedPageNotThrowsException(): void { $this->subject->__construct(1, '1-99', new Context()); @@ -126,9 +117,7 @@ final class RootlineUtilityTest extends UnitTestCase )); } - /** - * @test - */ + #[Test] public function processMountedPageWithMountedPageAddsMountedFromParameter(): void { $this->subject->__construct(1, '1-99', new Context()); @@ -141,9 +130,7 @@ final class RootlineUtilityTest extends UnitTestCase self::assertSame(1, $result['_MOUNTED_FROM']); } - /** - * @test - */ + #[Test] public function processMountedPageWithMountedPageAddsMountPointParameterToReturnValue(): void { $this->subject->__construct(1, '1-99', new Context()); @@ -156,9 +143,7 @@ final class RootlineUtilityTest extends UnitTestCase self::assertSame('1-99', $result['_MP_PARAM']); } - /** - * @test - */ + #[Test] public function processMountedPageForMountPageIsOverlayAddsMountOLParameter(): void { $this->subject->__construct(1, '1-99', new Context()); @@ -171,9 +156,7 @@ final class RootlineUtilityTest extends UnitTestCase self::assertTrue($result['_MOUNT_OL']); } - /** - * @test - */ + #[Test] public function processMountedPageForMountPageIsOverlayAddsDataInformationAboutMountPage(): void { $this->subject->__construct(1, '1-99', new Context()); @@ -189,9 +172,7 @@ final class RootlineUtilityTest extends UnitTestCase self::assertSame(['uid' => 99, 'pid' => 5, 'title' => 'TestCase'], $result['_MOUNT_PAGE']); } - /** - * @test - */ + #[Test] public function processMountedPageForMountPageWithoutOverlayReplacesMountedPageWithMountPage(): void { $mountPointPageData = [ @@ -205,9 +186,7 @@ final class RootlineUtilityTest extends UnitTestCase $this->assertIsSubset($mountPointPageData, $result); } - /** - * @test - */ + #[Test] public function columnHasRelationToResolveDetectsGroupFieldAsLocal(): void { self::assertFalse($this->subject->_call('columnHasRelationToResolve', [ @@ -215,9 +194,7 @@ final class RootlineUtilityTest extends UnitTestCase ])); } - /** - * @test - */ + #[Test] public function columnHasRelationToResolveDetectsGroupFieldWithMMAsRemote2(): void { self::assertTrue($this->subject->_call('columnHasRelationToResolve', [ @@ -228,9 +205,7 @@ final class RootlineUtilityTest extends UnitTestCase ])); } - /** - * @test - */ + #[Test] public function columnHasRelationToResolveDetectsInlineFieldAsLocal(): void { self::assertFalse($this->subject->_call('columnHasRelationToResolve', [ @@ -240,9 +215,7 @@ final class RootlineUtilityTest extends UnitTestCase ])); } - /** - * @test - */ + #[Test] public function columnHasRelationToResolveDetectsInlineFieldWithForeignKeyAsRemote(): void { self::assertTrue($this->subject->_call('columnHasRelationToResolve', [ @@ -253,9 +226,7 @@ final class RootlineUtilityTest extends UnitTestCase ])); } - /** - * @test - */ + #[Test] public function columnHasRelationToResolveDetectsInlineFieldWithFMMAsRemote(): void { self::assertTrue($this->subject->_call('columnHasRelationToResolve', [ @@ -266,9 +237,7 @@ final class RootlineUtilityTest extends UnitTestCase ])); } - /** - * @test - */ + #[Test] public function columnHasRelationToResolveDetectsSelectFieldAsLocal(): void { self::assertFalse($this->subject->_call('columnHasRelationToResolve', [ @@ -278,9 +247,7 @@ final class RootlineUtilityTest extends UnitTestCase ])); } - /** - * @test - */ + #[Test] public function columnHasRelationToResolveDetectsSelectFieldWithMMAsRemote(): void { self::assertTrue($this->subject->_call('columnHasRelationToResolve', [ @@ -291,9 +258,7 @@ final class RootlineUtilityTest extends UnitTestCase ])); } - /** - * @test - */ + #[Test] public function getCacheIdentifierContainsAllContextParameters(): void { $this->subject->method('resolvePageId')->willReturn(42); @@ -312,9 +277,7 @@ final class RootlineUtilityTest extends UnitTestCase self::assertSame('42_47-11_8_0_0_1', $this->subject->getCacheIdentifier()); } - /** - * @test - */ + #[Test] public function getCacheIdentifierReturnsValidIdentifierWithCommasInMountPointParameter(): void { $this->subject->method('resolvePageId')->willReturn(42); diff --git a/typo3/sysext/core/Tests/Unit/Utility/String/StringFragmentCollectionTest.php b/typo3/sysext/core/Tests/Unit/Utility/String/StringFragmentCollectionTest.php index f9df1919513dd75fbf3c0bbbe8d7616131e4d70b..bd8efc8b2c2d07bb9c80635ec241ac2b54b1c634 100644 --- a/typo3/sysext/core/Tests/Unit/Utility/String/StringFragmentCollectionTest.php +++ b/typo3/sysext/core/Tests/Unit/Utility/String/StringFragmentCollectionTest.php @@ -17,15 +17,15 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Utility\String; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Utility\String\StringFragment; use TYPO3\CMS\Core\Utility\String\StringFragmentCollection; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class StringFragmentCollectionTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function collectionReflectsFragments(): void { $a = StringFragment::raw('aa'); @@ -64,10 +64,9 @@ final class StringFragmentCollectionTest extends UnitTestCase * @param list<StringFragment> $first * @param list<StringFragment> $second * @param list<StringFragment> $expectations - * - * @test - * @dataProvider differencesAreResolvedDataProvider */ + #[DataProvider('differencesAreResolvedDataProvider')] + #[Test] public function differencesAreResolved(array $first, array $second, array $expectations): void { $firstCollection = new StringFragmentCollection(...$first); @@ -103,10 +102,9 @@ final class StringFragmentCollectionTest extends UnitTestCase * @param list<StringFragment> $first * @param list<StringFragment> $second * @param list<StringFragment> $expectations - * - * @test - * @dataProvider intersectionsAreResolvedDataProvider */ + #[DataProvider('intersectionsAreResolvedDataProvider')] + #[Test] public function intersectionsAreResolved(array $first, array $second, array $expectations): void { $firstCollection = new StringFragmentCollection(...$first); diff --git a/typo3/sysext/core/Tests/Unit/Utility/String/StringFragmentSplitterTest.php b/typo3/sysext/core/Tests/Unit/Utility/String/StringFragmentSplitterTest.php index c54f148de3b038f7d680bb18845f6b6112a81a28..c9a06d9f05065cc90b6d5d56b1879fe370c321f4 100644 --- a/typo3/sysext/core/Tests/Unit/Utility/String/StringFragmentSplitterTest.php +++ b/typo3/sysext/core/Tests/Unit/Utility/String/StringFragmentSplitterTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Utility\String; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Utility\String\StringFragment; use TYPO3\CMS\Core\Utility\String\StringFragmentPattern; use TYPO3\CMS\Core\Utility\String\StringFragmentSplitter; @@ -78,10 +80,9 @@ final class StringFragmentSplitterTest extends UnitTestCase /** * @param list<StringFragmentPattern> $patterns * @param list<StringFragment> $expectations - * - * @test - * @dataProvider stringIsSplitDataProvider */ + #[DataProvider('stringIsSplitDataProvider')] + #[Test] public function stringIsSplit(string $value, array $patterns, int $flags, ?array $expectations): void { $splitter = new StringFragmentSplitter(...$patterns); diff --git a/typo3/sysext/core/Tests/Unit/Utility/StringUtilityTest.php b/typo3/sysext/core/Tests/Unit/Utility/StringUtilityTest.php index 9eaeedf7d7933f8d3a186ca52950e67d01e309df..ea1ec3a33d88d8b1445caf34895f2830979e7887 100644 --- a/typo3/sysext/core/Tests/Unit/Utility/StringUtilityTest.php +++ b/typo3/sysext/core/Tests/Unit/Utility/StringUtilityTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Utility; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Http\ApplicationType; use TYPO3\CMS\Core\Utility\StringUtility; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -35,10 +37,8 @@ final class StringUtilityTest extends UnitTestCase yield 'bool' => [true]; } - /** - * @test - * @dataProvider stringCastableValuesDataProvider - */ + #[DataProvider('stringCastableValuesDataProvider')] + #[Test] public function castWithStringCastableReturnsValueCastToString(mixed $value): void { $expected = (string)$value; @@ -62,10 +62,8 @@ final class StringUtilityTest extends UnitTestCase yield 'NaN' => [acos(2)]; } - /** - * @test - * @dataProvider nonStringCastableValuesDataProvider - */ + #[DataProvider('nonStringCastableValuesDataProvider')] + #[Test] public function castWithWithNonStringCastableReturnsDefault(mixed $value): void { $default = 'default'; @@ -73,10 +71,8 @@ final class StringUtilityTest extends UnitTestCase self::assertSame($default, StringUtility::cast($value, $default)); } - /** - * @test - * @dataProvider nonStringCastableValuesDataProvider - */ + #[DataProvider('nonStringCastableValuesDataProvider')] + #[Test] public function castWithWithNonStringCastableAndNoDefaultProvidedReturnsNull(mixed $value): void { self::assertNull(StringUtility::cast($value)); @@ -101,10 +97,8 @@ final class StringUtilityTest extends UnitTestCase yield 'NaN' => [acos(2)]; } - /** - * @test - * @dataProvider nonStringValueToFilterDataProvider - */ + #[DataProvider('nonStringValueToFilterDataProvider')] + #[Test] public function filterForNonStringValueAndDefaultProvidedReturnsDefault(mixed $value): void { $default = 'default'; @@ -112,10 +106,8 @@ final class StringUtilityTest extends UnitTestCase self::assertSame($default, StringUtility::filter($value, $default)); } - /** - * @test - * @dataProvider nonStringValueToFilterDataProvider - */ + #[DataProvider('nonStringValueToFilterDataProvider')] + #[Test] public function filterForNonStringValueAndNoDefaultProvidedReturnsNull(mixed $value): void { self::assertNull(StringUtility::filter($value)); @@ -129,36 +121,28 @@ final class StringUtilityTest extends UnitTestCase yield 'empty string' => ['']; yield 'non-empty string' => ['value']; } - /** - * @test - * @dataProvider stringValueToFilterDataProvider - */ + #[DataProvider('stringValueToFilterDataProvider')] + #[Test] public function filterForStringValuesReturnsProvidedValue(string $value): void { self::assertSame($value, StringUtility::filter($value, 'some default')); } - /** - * @test - */ + #[Test] public function getUniqueIdReturnsIdWithPrefix(): void { $id = StringUtility::getUniqueId('NEW'); self::assertEquals('NEW', substr($id, 0, 3)); } - /** - * @test - */ + #[Test] public function getUniqueIdReturnsIdWithoutDot(): void { self::assertStringNotContainsString('.', StringUtility::getUniqueId()); } - /** - * @test - * @dataProvider escapeCssSelectorDataProvider - */ + #[DataProvider('escapeCssSelectorDataProvider')] + #[Test] public function escapeCssSelector(string $selector, string $expectedValue): void { self::assertEquals($expectedValue, StringUtility::escapeCssSelector($selector)); @@ -175,10 +159,8 @@ final class StringUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider removeByteOrderMarkDataProvider - */ + #[DataProvider('removeByteOrderMarkDataProvider')] + #[Test] public function removeByteOrderMark(string $input, string $expectedValue): void { // assertContains is necessary as one test contains non-string characters @@ -199,10 +181,8 @@ final class StringUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider searchStringWildcardDataProvider - */ + #[DataProvider('searchStringWildcardDataProvider')] + #[Test] public function searchStringWildcard(string $haystack, string $needle, bool $result): void { self::assertSame($result, StringUtility::searchStringWildcard($haystack, $needle)); @@ -265,10 +245,8 @@ final class StringUtilityTest extends UnitTestCase yield 'List with multiple consecutive commas' => ['one,,two', 'one,two']; } - /** - * @test - * @dataProvider uniqueListUnifiesCommaSeparatedListDataProvider - */ + #[DataProvider('uniqueListUnifiesCommaSeparatedListDataProvider')] + #[Test] public function uniqueListUnifiesCommaSeparatedList(string $initialList, string $unifiedList): void { self::assertSame($unifiedList, StringUtility::uniqueList($initialList)); @@ -297,10 +275,9 @@ final class StringUtilityTest extends UnitTestCase /** * Tests that StringUtility::multibyteStringPad() returns the same value as \str_pad() * for ASCII strings. - * - * @test - * @dataProvider multibyteStringPadReturnsSameValueAsStrPadForAsciiStringsDataProvider */ + #[DataProvider('multibyteStringPadReturnsSameValueAsStrPadForAsciiStringsDataProvider')] + #[Test] public function multibyteStringPadReturnsSameValueAsStrPadForAsciiStrings(string $string, int $length, string $pad_string, int $pad_type): void { self::assertEquals( @@ -326,10 +303,8 @@ final class StringUtilityTest extends UnitTestCase yield 'Pad both to 8 with string with even length and 2 character padding with MB char' => ['äöähüäöä', 'hü', 8, 'äö', STR_PAD_BOTH]; } - /** - * @test - * @dataProvider multibyteStringPadReturnsCorrectResultsMultibyteDataProvider - */ + #[DataProvider('multibyteStringPadReturnsCorrectResultsMultibyteDataProvider')] + #[Test] public function multibyteStringPadReturnsCorrectResultsMultibyte(string $expectedResult, string $string, int $length, string $pad_string, int $pad_type): void { self::assertEquals( @@ -349,10 +324,8 @@ final class StringUtilityTest extends UnitTestCase yield [random_bytes(33)]; } - /** - * @test - * @dataProvider base64urlRoundTripWorksDataProvider - */ + #[DataProvider('base64urlRoundTripWorksDataProvider')] + #[Test] public function base64urlRoundTripWorks(string $rawValue): void { $encoded = StringUtility::base64urlEncode($rawValue); @@ -371,19 +344,15 @@ final class StringUtilityTest extends UnitTestCase yield ['aaaa', 'YWFhYQ']; } - /** - * @test - * @dataProvider base64urlDataProvider - */ + #[DataProvider('base64urlDataProvider')] + #[Test] public function base64urlEncodeWorks(string $rawValue, string $encodedValue): void { self::assertSame($encodedValue, StringUtility::base64urlEncode($rawValue)); } - /** - * @test - * @dataProvider base64urlDataProvider - */ + #[DataProvider('base64urlDataProvider')] + #[Test] public function base64urlDecodeWorks(string $rawValue, string $encodedValue): void { self::assertSame($rawValue, StringUtility::base64urlDecode($encodedValue)); @@ -406,10 +375,8 @@ final class StringUtilityTest extends UnitTestCase yield ["Y\tW\tE", 'aa']; } - /** - * @test - * @dataProvider base64urlStrictDataProvider - */ + #[DataProvider('base64urlStrictDataProvider')] + #[Test] public function base64urlStrictDecodeWorks(string $encodedValue, string|bool $expectation): void { self::assertSame($expectation, StringUtility::base64urlDecode($encodedValue, true)); @@ -456,10 +423,8 @@ final class StringUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider explodeEscapedDataProvider - */ + #[DataProvider('explodeEscapedDataProvider')] + #[Test] public function explodeEscapedWorks(string $escaped, array $unescapedExploded): void { self::assertSame($unescapedExploded, StringUtility::explodeEscaped('.', $escaped)); diff --git a/typo3/sysext/core/Tests/Unit/Utility/VersionNumberUtilityTest.php b/typo3/sysext/core/Tests/Unit/Utility/VersionNumberUtilityTest.php index 0684d0c3edbad60672c86fb846e6cb069524b9ed..ca298ed858bae268ca3e6f2a5ad53661c74a10b6 100644 --- a/typo3/sysext/core/Tests/Unit/Utility/VersionNumberUtilityTest.php +++ b/typo3/sysext/core/Tests/Unit/Utility/VersionNumberUtilityTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\Unit\Utility; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Tests\Unit\Utility\Fixtures\VersionNumberUtilityFixture; use TYPO3\CMS\Core\Utility\VersionNumberUtility; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -59,10 +61,9 @@ final class VersionNumberUtilityTest extends UnitTestCase /** * Check whether getNumericTypo3Version handles all kinds of valid * version strings - * - * @dataProvider getNumericTypo3VersionNumberDataProvider - * @test */ + #[DataProvider('getNumericTypo3VersionNumberDataProvider')] + #[Test] public function getNumericTypo3VersionNumber(string $currentVersion, string $expectedVersion): void { VersionNumberUtilityFixture::$versionNumber = $currentVersion; @@ -99,10 +100,8 @@ final class VersionNumberUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider convertVersionsStringToVersionNumbersForcesVersionNumberInRangeDataProvider - */ + #[DataProvider('convertVersionsStringToVersionNumbersForcesVersionNumberInRangeDataProvider')] + #[Test] public function convertVersionsStringToVersionNumbersForcesVersionNumberInRange(string $versionString, array $expectedResult): void { $versions = VersionNumberUtility::convertVersionsStringToVersionNumbers($versionString); diff --git a/typo3/sysext/core/Tests/UnitDeprecated/Compatibility/PublicMethodDeprecationTraitTest.php b/typo3/sysext/core/Tests/UnitDeprecated/Compatibility/PublicMethodDeprecationTraitTest.php index 07582c6c7825f7df547f27e072ad77027027b1a4..23bb67d37bec0785a11de09ca634c1069c29085a 100644 --- a/typo3/sysext/core/Tests/UnitDeprecated/Compatibility/PublicMethodDeprecationTraitTest.php +++ b/typo3/sysext/core/Tests/UnitDeprecated/Compatibility/PublicMethodDeprecationTraitTest.php @@ -17,14 +17,13 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\UnitDeprecated\Compatibility; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Tests\UnitDeprecated\Compatibility\Fixtures\PublicMethodDeprecationTraitTextFixture; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class PublicMethodDeprecationTraitTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function publicMethodCanBeCalled(): void { $this->expectException(\RuntimeException::class); @@ -32,27 +31,21 @@ final class PublicMethodDeprecationTraitTest extends UnitTestCase (new PublicMethodDeprecationTraitTextFixture())->standardPublicMethod(); } - /** - * @test - */ + #[Test] public function protectedMethodNotHandledByTraitThrowsError(): void { $this->expectException(\Error::class); (new PublicMethodDeprecationTraitTextFixture())->standardProtectedMethod(); } - /** - * @test - */ + #[Test] public function notExistingMethodThrowsError(): void { $this->expectException(\Error::class); (new PublicMethodDeprecationTraitTextFixture())->doesNotExist(); } - /** - * @test - */ + #[Test] public function methodMadeProtectedCanBeCalled(): void { $this->expectException(\RuntimeException::class); @@ -60,17 +53,13 @@ final class PublicMethodDeprecationTraitTest extends UnitTestCase (new PublicMethodDeprecationTraitTextFixture())->methodMadeProtected(); } - /** - * @test - */ + #[Test] public function methodMadeProtectedReturnsValue(): void { self::assertEquals('foo', (new PublicMethodDeprecationTraitTextFixture())->methodMadeProtectedWithReturn()); } - /** - * @test - */ + #[Test] public function methodMadeProtectedCanBeCalledWithArguments(): void { $this->expectException(\RuntimeException::class); diff --git a/typo3/sysext/core/Tests/UnitDeprecated/Compatibility/PublicPropertyDeprecationTraitTest.php b/typo3/sysext/core/Tests/UnitDeprecated/Compatibility/PublicPropertyDeprecationTraitTest.php index 4c1f2de6538a1fd1fc061dcab01d1a6c0c3d76c0..97b54b9a960e3461e0fc1c5fb85c7de9928bb21e 100644 --- a/typo3/sysext/core/Tests/UnitDeprecated/Compatibility/PublicPropertyDeprecationTraitTest.php +++ b/typo3/sysext/core/Tests/UnitDeprecated/Compatibility/PublicPropertyDeprecationTraitTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\UnitDeprecated\Compatibility; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Compatibility\PublicPropertyDeprecationTrait; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -77,18 +79,14 @@ final class PublicPropertyDeprecationTraitTest extends UnitTestCase ]; } - /** - * @dataProvider issetDataProvider - * @test - */ + #[DataProvider('issetDataProvider')] + #[Test] public function issetWorksAsExpected(bool $expected, string $property): void { self::assertSame($expected, isset($this->fixture->$property)); } - /** - * @test - */ + #[Test] public function unknownPropertyCanBeHandledAsUsual(): void { // Uses __isset() @@ -105,9 +103,7 @@ final class PublicPropertyDeprecationTraitTest extends UnitTestCase self::assertFalse(isset($this->fixture->unknownProperty)); } - /** - * @test - */ + #[Test] public function publicPropertyCanBeHandledAsUsual(): void { self::assertFalse(isset($this->fixture->unsetPublicProperty)); @@ -118,9 +114,7 @@ final class PublicPropertyDeprecationTraitTest extends UnitTestCase self::assertFalse(isset($this->fixture->unsetPublicProperty)); } - /** - * @test - */ + #[Test] public function taggedPropertyCanBeHandledLikePublicProperty(): void { self::assertFalse(isset($this->fixture->unsetTaggedProperty)); diff --git a/typo3/sysext/core/Tests/UnitDeprecated/Configuration/FlexForm/FlexFormToolsTest.php b/typo3/sysext/core/Tests/UnitDeprecated/Configuration/FlexForm/FlexFormToolsTest.php index 9ff6b6615223d14cfde507bcde54a5ca4e170c14..106309729c741efd74f3d18676919595d52375df 100644 --- a/typo3/sysext/core/Tests/UnitDeprecated/Configuration/FlexForm/FlexFormToolsTest.php +++ b/typo3/sysext/core/Tests/UnitDeprecated/Configuration/FlexForm/FlexFormToolsTest.php @@ -4,6 +4,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\UnitDeprecated\Configuration\FlexForm; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use Psr\EventDispatcher\EventDispatcherInterface; use TYPO3\CMS\Core\Configuration\FlexForm\FlexFormTools; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -56,10 +58,8 @@ final class FlexFormToolsTest extends UnitTestCase ]; } - /** - * @dataProvider tceFormsRemovedInMigrationDataProvider - * @test - */ + #[DataProvider('tceFormsRemovedInMigrationDataProvider')] + #[Test] public function tceFormsRemovedInMigration(array $dataStructure, array $expected): void { $eventDispatcher = new class () implements EventDispatcherInterface { diff --git a/typo3/sysext/core/Tests/UnitDeprecated/Configuration/Loader/PageTsConfigLoaderTest.php b/typo3/sysext/core/Tests/UnitDeprecated/Configuration/Loader/PageTsConfigLoaderTest.php index 74fad1e1a25aa008bebbe3d0dba54dde57436cbb..7d4b6a8dbdbcf533b1787316f634148de929b761 100644 --- a/typo3/sysext/core/Tests/UnitDeprecated/Configuration/Loader/PageTsConfigLoaderTest.php +++ b/typo3/sysext/core/Tests/UnitDeprecated/Configuration/Loader/PageTsConfigLoaderTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\UnitDeprecated\Configuration\Loader; +use PHPUnit\Framework\Attributes\Test; use Psr\EventDispatcher\EventDispatcherInterface; use TYPO3\CMS\Core\Configuration\Event\ModifyLoadedPageTsConfigEvent; use TYPO3\CMS\Core\Configuration\Loader\PageTsConfigLoader; @@ -25,9 +26,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class PageTsConfigLoaderTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function alwaysLoadDefaultSettings(): void { $expected = [ @@ -45,9 +44,7 @@ final class PageTsConfigLoaderTest extends UnitTestCase self::assertSame($expectedString, $result); } - /** - * @test - */ + #[Test] public function loadDefaultSettingsAtTheBeginningAndKeepEmptyEntriesExpectUidZero(): void { $expected = [ @@ -64,9 +61,7 @@ final class PageTsConfigLoaderTest extends UnitTestCase self::assertSame($expected, $result); } - /** - * @test - */ + #[Test] public function loadExternalInclusionsCorrectlyAndKeepLoadingOrder(): void { $expected = [ @@ -83,9 +78,7 @@ final class PageTsConfigLoaderTest extends UnitTestCase self::assertSame($expected, $result); } - /** - * @test - */ + #[Test] public function invalidExternalFileIsNotLoaded(): void { $expected = [ diff --git a/typo3/sysext/core/Tests/UnitDeprecated/Configuration/Parser/PageTsConfigParserTest.php b/typo3/sysext/core/Tests/UnitDeprecated/Configuration/Parser/PageTsConfigParserTest.php index 3993a0e2cac5644477073d7cd9f96334f371d6b4..acb6d5410114cdc0f68d1be8c986d8df073dc59d 100644 --- a/typo3/sysext/core/Tests/UnitDeprecated/Configuration/Parser/PageTsConfigParserTest.php +++ b/typo3/sysext/core/Tests/UnitDeprecated/Configuration/Parser/PageTsConfigParserTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\UnitDeprecated\Configuration\Parser; +use PHPUnit\Framework\Attributes\Test; use Psr\Log\NullLogger; use TYPO3\CMS\Core\Cache\Backend\TransientMemoryBackend; use TYPO3\CMS\Core\Cache\Frontend\NullFrontend; @@ -30,9 +31,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class PageTsConfigParserTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function invalidCacheAlwaysExecutesMatcher(): void { $input = 'mod.web_layout = disabled'; @@ -53,9 +52,7 @@ final class PageTsConfigParserTest extends UnitTestCase self::assertEquals($expectedParsedTsConfig, $parsedTsConfig); } - /** - * @test - */ + #[Test] public function cachedHitOnlyExecutesMatcher(): void { $cachedSection = 'mod.web_layout = disabled'; @@ -83,9 +80,7 @@ final class PageTsConfigParserTest extends UnitTestCase self::assertEquals($expectedParsedTsConfig, $parsedTsConfig); } - /** - * @test - */ + #[Test] public function parseReplacesSiteSettings(): void { $input = 'mod.web_layout = {$numberedThings.1}' . "\n" . @@ -132,9 +127,7 @@ final class PageTsConfigParserTest extends UnitTestCase self::assertEquals($expectedParsedTsConfig, $parsedTsConfig); } - /** - * @test - */ + #[Test] public function parseReplacesSiteSettingsWithMultipleSitesAndCache(): void { $input = 'mod.web_layout = {$numberedThings.1}'; diff --git a/typo3/sysext/core/Tests/UnitDeprecated/Configuration/TypoScript/ConditionMatching/AbstractConditionMatcherTest.php b/typo3/sysext/core/Tests/UnitDeprecated/Configuration/TypoScript/ConditionMatching/AbstractConditionMatcherTest.php index ef769856a7aef0a781a9fed0097798bbfc282234..73b9e6f5170cf23b906f4939837e67db416f593d 100644 --- a/typo3/sysext/core/Tests/UnitDeprecated/Configuration/TypoScript/ConditionMatching/AbstractConditionMatcherTest.php +++ b/typo3/sysext/core/Tests/UnitDeprecated/Configuration/TypoScript/ConditionMatching/AbstractConditionMatcherTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\UnitDeprecated\Configuration\TypoScript\ConditionMatching; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use Psr\Log\NullLogger; use TYPO3\CMS\Backend\Configuration\TypoScript\ConditionMatching\ConditionMatcher; use TYPO3\CMS\Core\Cache\CacheManager; @@ -109,10 +111,8 @@ final class AbstractConditionMatcherTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider requestFunctionDataProvider - */ + #[DataProvider('requestFunctionDataProvider')] + #[Test] public function checkConditionMatcherForRequestFunction(string $expression, bool $expected): void { $request = (new ServerRequest()) @@ -142,10 +142,8 @@ final class AbstractConditionMatcherTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider datesFunctionDataProvider - */ + #[DataProvider('datesFunctionDataProvider')] + #[Test] public function checkConditionMatcherForDateFunction(string $format, int $expressionValue, bool $expected): void { $GLOBALS['SIM_EXEC_TIME'] = gmmktime(11, 4, 0, 1, 17, 1945); @@ -157,9 +155,7 @@ final class AbstractConditionMatcherTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function checkConditionMatcherForFeatureFunction(): void { $featureName = 'test.testFeature'; @@ -212,10 +208,8 @@ final class AbstractConditionMatcherTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider matchingApplicationContextConditionsDataProvider - */ + #[DataProvider('matchingApplicationContextConditionsDataProvider')] + #[Test] public function evaluateConditionCommonReturnsTrueForMatchingContexts($matchingContextCondition): void { Environment::initialize( @@ -253,10 +247,8 @@ final class AbstractConditionMatcherTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider notMatchingApplicationContextConditionsDataProvider - */ + #[DataProvider('notMatchingApplicationContextConditionsDataProvider')] + #[Test] public function evaluateConditionCommonReturnsNullForNotMatchingApplicationContexts($notMatchingApplicationContextCondition): void { Environment::initialize( @@ -330,10 +322,8 @@ final class AbstractConditionMatcherTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider evaluateConditionCommonDevIpMaskDataProvider - */ + #[DataProvider('evaluateConditionCommonDevIpMaskDataProvider')] + #[Test] public function evaluateConditionCommonEvaluatesIpAddressesCorrectly($devIpMask, $actualIp, $expectedResult): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['devIPmask'] = $devIpMask; @@ -357,9 +347,7 @@ final class AbstractConditionMatcherTest extends UnitTestCase self::assertSame($expectedResult, $result); } - /** - * @test - */ + #[Test] public function typoScriptElseConditionIsNotEvaluatedAndAlwaysReturnsFalse(): void { $this->initConditionMatcher(); diff --git a/typo3/sysext/core/Tests/UnitDeprecated/Database/Query/Restriction/BackendWorkspaceRestrictionTest.php b/typo3/sysext/core/Tests/UnitDeprecated/Database/Query/Restriction/BackendWorkspaceRestrictionTest.php index 97b896cb308ad49ded013f70b34b7b771ba24307..c86d58976aff1ad6a943fe292f03e943f6819946 100644 --- a/typo3/sysext/core/Tests/UnitDeprecated/Database/Query/Restriction/BackendWorkspaceRestrictionTest.php +++ b/typo3/sysext/core/Tests/UnitDeprecated/Database/Query/Restriction/BackendWorkspaceRestrictionTest.php @@ -17,14 +17,13 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\UnitDeprecated\Database\Query\Restriction; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Query\Restriction\BackendWorkspaceRestriction; use TYPO3\CMS\Core\Tests\Unit\Database\Query\Restriction\AbstractRestrictionTestCase; final class BackendWorkspaceRestrictionTest extends AbstractRestrictionTestCase { - /** - * @test - */ + #[Test] public function buildExpressionAddsLiveWorkspaceWhereClause(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ @@ -35,9 +34,7 @@ final class BackendWorkspaceRestrictionTest extends AbstractRestrictionTestCase self::assertSame('(("aTable"."t3ver_wsid" = 0) OR ("aTable"."t3ver_state" <= 0))', (string)$expression); } - /** - * @test - */ + #[Test] public function buildExpressionAddsNonLiveWorkspaceWhereClause(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ @@ -48,9 +45,7 @@ final class BackendWorkspaceRestrictionTest extends AbstractRestrictionTestCase self::assertSame('(("aTable"."t3ver_wsid" = 42) OR ("aTable"."t3ver_state" <= 0))', (string)$expression); } - /** - * @test - */ + #[Test] public function buildExpressionAddsLiveWorkspaceLimitedWhereClause(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ @@ -61,9 +56,7 @@ final class BackendWorkspaceRestrictionTest extends AbstractRestrictionTestCase self::assertSame('(("aTable"."t3ver_wsid" = 0) AND ("aTable"."t3ver_oid" = 0))', (string)$expression); } - /** - * @test - */ + #[Test] public function buildExpressionAddsNonLiveWorkspaceLimitedWhereClause(): void { $GLOBALS['TCA']['aTable']['ctrl'] = [ diff --git a/typo3/sysext/core/Tests/UnitDeprecated/Database/Query/Restriction/FrontendWorkspaceRestrictionTest.php b/typo3/sysext/core/Tests/UnitDeprecated/Database/Query/Restriction/FrontendWorkspaceRestrictionTest.php index 321bbccce572a96709bc15ccf7d92fbc33d449f5..af9a2f1ee6e6a59d2ec01597f4bf941d036f4c1c 100644 --- a/typo3/sysext/core/Tests/UnitDeprecated/Database/Query/Restriction/FrontendWorkspaceRestrictionTest.php +++ b/typo3/sysext/core/Tests/UnitDeprecated/Database/Query/Restriction/FrontendWorkspaceRestrictionTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\UnitDeprecated\Database\Query\Restriction; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Query\Restriction\FrontendWorkspaceRestriction; use TYPO3\CMS\Core\Tests\Unit\Database\Query\Restriction\AbstractRestrictionTestCase; @@ -24,9 +25,7 @@ final class FrontendWorkspaceRestrictionTest extends AbstractRestrictionTestCase { protected bool $resetSingletonInstances = true; - /** - * @test - */ + #[Test] public function buildExpressionAddsLiveWorkspaceWhereClause(): void { $GLOBALS['TCA'] = [ @@ -42,9 +41,7 @@ final class FrontendWorkspaceRestrictionTest extends AbstractRestrictionTestCase self::assertSame('(("aTable"."t3ver_state" <= 0) AND ("aTable"."t3ver_oid" = 0))', (string)$expression); } - /** - * @test - */ + #[Test] public function buildExpressionAddsNonLiveWorkspaceWhereClause(): void { $GLOBALS['TCA'] = [ @@ -60,9 +57,7 @@ final class FrontendWorkspaceRestrictionTest extends AbstractRestrictionTestCase self::assertSame('(((("aTable"."t3ver_wsid" = 0) OR ("aTable"."t3ver_wsid" = 42))) AND ("aTable"."t3ver_oid" = 0))', (string)$expression); } - /** - * @test - */ + #[Test] public function buildExpressionAddsNonLiveWorkspaceExclusiveWhereClause(): void { $GLOBALS['TCA'] = [ diff --git a/typo3/sysext/core/Tests/UnitDeprecated/Domain/Repository/PageRepositoryTest.php b/typo3/sysext/core/Tests/UnitDeprecated/Domain/Repository/PageRepositoryTest.php index 11a3fc81c366dc0752835661c72def4e88217acc..5d4f51e64e3332e5803e18376be8fa2ef3706fc3 100644 --- a/typo3/sysext/core/Tests/UnitDeprecated/Domain/Repository/PageRepositoryTest.php +++ b/typo3/sysext/core/Tests/UnitDeprecated/Domain/Repository/PageRepositoryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\UnitDeprecated\Domain\Repository; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Core\Context\Context; use TYPO3\CMS\Core\Core\SystemEnvironmentBuilder; @@ -63,9 +64,7 @@ final class PageRepositoryTest extends UnitTestCase /////////////////////////////// // Tests concerning getExtURL /////////////////////////////// - /** - * @test - */ + #[Test] public function getExtUrlForDokType3UsesTheSameValue(): void { self::assertEquals('http://www.example.com', $this->pageSelectObject->getExtURL([ @@ -74,9 +73,7 @@ final class PageRepositoryTest extends UnitTestCase ])); } - /** - * @test - */ + #[Test] public function getExtUrlForDokType3PrependsSiteUrl(): void { $request = (new ServerRequest('https://foo.de', 'GET')) @@ -91,9 +88,7 @@ final class PageRepositoryTest extends UnitTestCase unset($GLOBALS['TYPO3_REQUEST']); } - /** - * @test - */ + #[Test] public function getExtUrlForDokType3AssumesAbsoluteUrl(): void { self::assertEquals('/hello/world/', $this->pageSelectObject->getExtURL([ @@ -102,9 +97,7 @@ final class PageRepositoryTest extends UnitTestCase ])); } - /** - * @test - */ + #[Test] public function getExtUrlForDokType3UsesEmailAsSameValue(): void { self::assertEquals('mailto:mail@typo3-test.com', $this->pageSelectObject->getExtURL([ @@ -113,9 +106,7 @@ final class PageRepositoryTest extends UnitTestCase ])); } - /** - * @test - */ + #[Test] public function getExtUrlForDokType3UsesValidEmailWithoutProtocolAsEmail(): void { self::assertEquals('mailto:mail@typo3-test.com', $this->pageSelectObject->getExtURL([ diff --git a/typo3/sysext/core/Tests/UnitDeprecated/FormProtection/FormProtectionFactoryTest.php b/typo3/sysext/core/Tests/UnitDeprecated/FormProtection/FormProtectionFactoryTest.php index c87306a86a5caf202f09d5cb5f7cd699829639d2..8ac94151a2711c438c7aa6f6173f68d87ddd2f19 100644 --- a/typo3/sysext/core/Tests/UnitDeprecated/FormProtection/FormProtectionFactoryTest.php +++ b/typo3/sysext/core/Tests/UnitDeprecated/FormProtection/FormProtectionFactoryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\UnitDeprecated\FormProtection; +use PHPUnit\Framework\Attributes\Test; use Psr\Log\NullLogger; use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; use TYPO3\CMS\Core\Cache\Backend\TransientMemoryBackend; @@ -65,9 +66,7 @@ final class FormProtectionFactoryTest extends UnitTestCase ///////////////////////// // Tests concerning get ///////////////////////// - /** - * @test - */ + #[Test] public function getForNotExistingClassThrowsException(): void { GeneralUtility::addInstance(FormProtectionFactory::class, $this->subject); @@ -77,9 +76,7 @@ final class FormProtectionFactoryTest extends UnitTestCase FormProtectionFactory::get('noSuchClass'); } - /** - * @test - */ + #[Test] public function getForClassThatIsNoFormProtectionSubclassThrowsException(): void { GeneralUtility::addInstance(FormProtectionFactory::class, $this->subject); @@ -89,9 +86,7 @@ final class FormProtectionFactoryTest extends UnitTestCase FormProtectionFactory::get(\stdClass::class); } - /** - * @test - */ + #[Test] public function getForTypeBackEndWithExistingBackEndReturnsBackEndFormProtection(): void { GeneralUtility::addInstance(FormProtectionFactory::class, $this->subject); @@ -107,9 +102,7 @@ final class FormProtectionFactoryTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function getForTypeBackEndCalledTwoTimesReturnsTheSameInstance(): void { GeneralUtility::addInstance(FormProtectionFactory::class, $this->subject); @@ -127,9 +120,7 @@ final class FormProtectionFactoryTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function getForTypeInstallToolReturnsInstallToolFormProtection(): void { GeneralUtility::addInstance(FormProtectionFactory::class, $this->subject); @@ -139,9 +130,7 @@ final class FormProtectionFactoryTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function getForTypeInstallToolCalledTwoTimesReturnsTheSameInstance(): void { GeneralUtility::addInstance(FormProtectionFactory::class, $this->subject); @@ -152,9 +141,7 @@ final class FormProtectionFactoryTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function getForTypesInstallToolAndDisabledReturnsDifferentInstances(): void { GeneralUtility::addInstance(FormProtectionFactory::class, $this->subject); diff --git a/typo3/sysext/core/Tests/UnitDeprecated/Resource/Utility/FileExtensionFilterTest.php b/typo3/sysext/core/Tests/UnitDeprecated/Resource/Utility/FileExtensionFilterTest.php index 0d34511a54e00ef8eba8e99bd77d416f833b2027..7eb0ce30e922683cf57f58bffe4be439e3c5851c 100644 --- a/typo3/sysext/core/Tests/UnitDeprecated/Resource/Utility/FileExtensionFilterTest.php +++ b/typo3/sysext/core/Tests/UnitDeprecated/Resource/Utility/FileExtensionFilterTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\UnitDeprecated\Resource\Utility; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\DataHandling\DataHandler; use TYPO3\CMS\Core\Resource\Filter\FileExtensionFilter; use TYPO3\CMS\Core\Resource\ResourceFactory; @@ -50,9 +52,9 @@ final class FileExtensionFilterTest extends UnitTestCase * @param array|string $allowed * @param array|string $disallowed * @param array|string $values - * @test - * @dataProvider invalidInlineChildrenFilterParametersDataProvider */ + #[DataProvider('invalidInlineChildrenFilterParametersDataProvider')] + #[Test] public function areInlineChildrenFilteredWithInvalidParameters($allowed, $disallowed, $values): void { $parameters = [ diff --git a/typo3/sysext/core/Tests/UnitDeprecated/TypoScript/Parser/TypoScriptParserTest.php b/typo3/sysext/core/Tests/UnitDeprecated/TypoScript/Parser/TypoScriptParserTest.php index c2db2b2fde5edeba55d6f007f11bedfe28b06831..614681076532ed6343a2e810440eff47acdc36c7 100644 --- a/typo3/sysext/core/Tests/UnitDeprecated/TypoScript/Parser/TypoScriptParserTest.php +++ b/typo3/sysext/core/Tests/UnitDeprecated/TypoScript/Parser/TypoScriptParserTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\UnitDeprecated\TypoScript\Parser; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Backend\Configuration\TypoScript\ConditionMatching\ConditionMatcher; use TYPO3\CMS\Core\Cache\CacheManager; @@ -228,10 +230,8 @@ final class TypoScriptParserTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider executeValueModifierDataProvider - */ + #[DataProvider('executeValueModifierDataProvider')] + #[Test] public function executeValueModifierReturnsModifiedResult( string $modifierName, string $currentValue, @@ -289,10 +289,8 @@ final class TypoScriptParserTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider executeGetEnvModifierDataProvider - */ + #[DataProvider('executeGetEnvModifierDataProvider')] + #[Test] public function executeGetEnvModifierReturnsModifiedResult( array $environmentVariables, ?string $currentValue, @@ -335,10 +333,8 @@ final class TypoScriptParserTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider executeValueModifierInvalidDataProvider - */ + #[DataProvider('executeValueModifierInvalidDataProvider')] + #[Test] public function executeValueModifierThrowsException( string $modifierName, string $currentValue, @@ -349,9 +345,7 @@ final class TypoScriptParserTest extends UnitTestCase $this->typoScriptParser->_call('executeValueModifier', $modifierName, $modifierArgument, $currentValue); } - /** - * @test - */ + #[Test] public function invalidCharactersInObjectNamesAreReported(): void { $timeTrackerMock = $this->createMock(TimeTracker::class); @@ -372,10 +366,8 @@ final class TypoScriptParserTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider invalidConditionsDataProvider - */ + #[DataProvider('invalidConditionsDataProvider')] + #[Test] public function invalidConditionsAreReported(string $condition, bool $isValid): void { $timeTrackerMock = $this->createMock(TimeTracker::class); @@ -388,9 +380,7 @@ final class TypoScriptParserTest extends UnitTestCase } } - /** - * @test - */ + #[Test] public function emptyConditionIsReported(): void { $timeTrackerMock = $this->createMock(TimeTracker::class); @@ -411,10 +401,8 @@ final class TypoScriptParserTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider doubleSlashCommentsDataProvider - */ + #[DataProvider('doubleSlashCommentsDataProvider')] + #[Test] public function doubleSlashCommentsAreValid(string $typoScript): void { $this->typoScriptParser->parse($typoScript); @@ -439,10 +427,8 @@ final class TypoScriptParserTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider includeFileDataProvider - */ + #[DataProvider('includeFileDataProvider')] + #[Test] public function includeFilesWithConditions(string $typoScript): void { // This test triggers a BackendUtility::BEgetRootLine() down below, we need to suppress the cache call @@ -661,10 +647,8 @@ test.TYPO3Forever.TypoScript = 1 ]; } - /** - * @test - * @dataProvider importFilesDataProvider - */ + #[DataProvider('importFilesDataProvider')] + #[Test] public function importFiles(string $typoScript, string $expected): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['encryptionKey'] = 'secret-encryption-key-test'; @@ -673,10 +657,8 @@ test.TYPO3Forever.TypoScript = 1 self::assertEquals($expected, $resolvedIncludeLines); } - /** - * @dataProvider typoScriptIsParsedToArrayDataProvider - * @test - */ + #[DataProvider('typoScriptIsParsedToArrayDataProvider')] + #[Test] public function typoScriptIsParsedToArray(string $typoScript, array $expected): void { $this->typoScriptParser->parse($typoScript); @@ -1117,9 +1099,7 @@ test.TYPO3Forever.TypoScript = 1 ]; } - /** - * @test - */ + #[Test] public function setValCanBeCalledWithArrayValueParameter(): void { $string = ''; @@ -1136,9 +1116,7 @@ test.TYPO3Forever.TypoScript = 1 $mock($typoScriptParser); } - /** - * @test - */ + #[Test] public function setValCanBeCalledWithStringValueParameter(): void { $string = ''; @@ -1155,10 +1133,8 @@ test.TYPO3Forever.TypoScript = 1 $mock($typoScriptParser); } - /** - * @test - * @dataProvider parseNextKeySegmentReturnsCorrectNextKeySegmentDataProvider - */ + #[DataProvider('parseNextKeySegmentReturnsCorrectNextKeySegmentDataProvider')] + #[Test] public function parseNextKeySegmentReturnsCorrectNextKeySegment( string $key, string $expectedKeySegment, @@ -1226,9 +1202,7 @@ test.TYPO3Forever.TypoScript = 1 ]; } - /** - * @test - */ + #[Test] public function typoScriptWithModifierReturningNullDoesNotCreateErrors(): void { $typoScript = ' diff --git a/typo3/sysext/core/Tests/UnitDeprecated/TypoScript/TemplateServiceTest.php b/typo3/sysext/core/Tests/UnitDeprecated/TypoScript/TemplateServiceTest.php index 39d97a4cee01f356ed48f1a2371db714684746c1..dc0bc6f47d81779a5b908a25ed8050df4670e9a0 100644 --- a/typo3/sysext/core/Tests/UnitDeprecated/TypoScript/TemplateServiceTest.php +++ b/typo3/sysext/core/Tests/UnitDeprecated/TypoScript/TemplateServiceTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\UnitDeprecated\TypoScript; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Core\Context\Context; use TYPO3\CMS\Core\Database\ConnectionPool; @@ -77,9 +78,7 @@ final class TemplateServiceTest extends UnitTestCase parent::tearDown(); } - /** - * @test - */ + #[Test] public function extensionStaticFilesAreNotProcessedIfNotExplicitlyRequested(): void { $queryBuilderMock = $this->createMock(QueryBuilder::class); @@ -96,9 +95,7 @@ final class TemplateServiceTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function extensionStaticsAreProcessedIfExplicitlyRequested(): void { $queryBuilderMock = $this->createMock(QueryBuilder::class); diff --git a/typo3/sysext/core/Tests/UnitDeprecated/Utility/GeneralUtilityTest.php b/typo3/sysext/core/Tests/UnitDeprecated/Utility/GeneralUtilityTest.php index 1bdf2cf428b14a67c9e86edce1c0cc9c0f0ba588..576dcb6f8406f21fd0c09e54dd1b5f9cdd15e35c 100644 --- a/typo3/sysext/core/Tests/UnitDeprecated/Utility/GeneralUtilityTest.php +++ b/typo3/sysext/core/Tests/UnitDeprecated/Utility/GeneralUtilityTest.php @@ -17,15 +17,15 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\UnitDeprecated\Utility; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class GeneralUtilityTest extends UnitTestCase { - /** - * @test - * @dataProvider gpMergedDataProvider - */ + #[DataProvider('gpMergedDataProvider')] + #[Test] public function gpMergedWillMergeArraysFromGetAndPost($get, $post, $expected): void { $_POST = $post; @@ -66,20 +66,16 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider getAndPostDataProvider - */ + #[DataProvider('getAndPostDataProvider')] + #[Test] public function canRetrieveGlobalInputsThroughGet($key, $get, $expected): void { $_GET = $get; self::assertSame($expected, GeneralUtility::_GET($key)); } - /** - * @test - * @dataProvider getAndPostDataProvider - */ + #[DataProvider('getAndPostDataProvider')] + #[Test] public function canRetrieveGlobalInputsThroughPost($key, $post, $expected): void { $_POST = $post; @@ -104,10 +100,8 @@ final class GeneralUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider gpDataProvider - */ + #[DataProvider('gpDataProvider')] + #[Test] public function canRetrieveValueWithGP($key, $get, $post, $expected): void { $_GET = $get; diff --git a/typo3/sysext/core/Tests/UnitDeprecated/Utility/PathUtilityPublicPathsTest.php b/typo3/sysext/core/Tests/UnitDeprecated/Utility/PathUtilityPublicPathsTest.php index df8b34c8f427bd06ee3bdc57a0fcda5448ce459a..d02e2caec6041033d65d6c05285ef2aaa43fbf68 100644 --- a/typo3/sysext/core/Tests/UnitDeprecated/Utility/PathUtilityPublicPathsTest.php +++ b/typo3/sysext/core/Tests/UnitDeprecated/Utility/PathUtilityPublicPathsTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\UnitDeprecated\Utility; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Core\Environment; use TYPO3\CMS\Core\Resource\Exception\InvalidFileException; use TYPO3\CMS\Core\Utility\PathUtility; @@ -89,9 +91,9 @@ final class PathUtilityPublicPathsTest extends UnitTestCase /** * @throws InvalidFileException - * @dataProvider getPublicResourceWebPathResolvesUrlsCorrectlyDataProvider - * @test */ + #[DataProvider('getPublicResourceWebPathResolvesUrlsCorrectlyDataProvider')] + #[Test] public function getPublicResourceWebPathResolvesUrlsCorrectly(string $pathReference, string $expectedUrl, callable $setup): void { $setup(); diff --git a/typo3/sysext/core/Tests/UnitDeprecated/Utility/ResourceUtilityTest.php b/typo3/sysext/core/Tests/UnitDeprecated/Utility/ResourceUtilityTest.php index 3ec11a76e72ef58efe501b36abe2e91888b0cd64..0ee3c1316b3fa71263999e9f769ff9cbb84fd3cb 100644 --- a/typo3/sysext/core/Tests/UnitDeprecated/Utility/ResourceUtilityTest.php +++ b/typo3/sysext/core/Tests/UnitDeprecated/Utility/ResourceUtilityTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Core\Tests\UnitDeprecated\Utility; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Utility\ResourceUtility; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -63,10 +65,8 @@ final class ResourceUtilityTest extends UnitTestCase ]; } - /** - * @dataProvider recursiveFileListSortingHelperTestDataProvider - * @test - */ + #[DataProvider('recursiveFileListSortingHelperTestDataProvider')] + #[Test] public function recursiveFileListSortingHelperCorrectlySorts(array $unsortedList, array $expectedList): void { $result = $unsortedList; diff --git a/typo3/sysext/dashboard/Tests/Unit/DashboardPresetRegistryTest.php b/typo3/sysext/dashboard/Tests/Unit/DashboardPresetRegistryTest.php index 919869e94069cf8a3aa1a6cdfc18663b93a9c867..346a53cfa72e3101ca7c742cf44da126171d1349 100644 --- a/typo3/sysext/dashboard/Tests/Unit/DashboardPresetRegistryTest.php +++ b/typo3/sysext/dashboard/Tests/Unit/DashboardPresetRegistryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Dashboard\Tests\Unit; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Dashboard\DashboardPreset; use TYPO3\CMS\Dashboard\DashboardPresetRegistry; @@ -35,9 +36,7 @@ final class DashboardPresetRegistryTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function withoutRegisteredPresetsOnlyFallbackPresetsIsReturned(): void { $presets = $this->subject->getDashboardPresets(); @@ -47,9 +46,7 @@ final class DashboardPresetRegistryTest extends UnitTestCase self::assertInstanceOf(DashboardPreset::class, reset($presets)); } - /** - * @test - */ + #[Test] public function getWidgetsMethodReturnsDashboardPresetsObjects(): void { $dashboardPreset1 = new DashboardPreset('identifier1', 'title1', 'description1'); @@ -63,9 +60,7 @@ final class DashboardPresetRegistryTest extends UnitTestCase } } - /** - * @test - */ + #[Test] public function dashboardPresetsGetRegistered(): void { // If no dashboard preset is registered, it will return a fallback preset diff --git a/typo3/sysext/dashboard/Tests/Unit/DependencyInjection/DashboardWidgetPassTest.php b/typo3/sysext/dashboard/Tests/Unit/DependencyInjection/DashboardWidgetPassTest.php index acae44441c6ece714655fbb9f5724808d8f4e46e..0db4b7029fe8a1e6fd2322d1208d5733ceb05fb1 100644 --- a/typo3/sysext/dashboard/Tests/Unit/DependencyInjection/DashboardWidgetPassTest.php +++ b/typo3/sysext/dashboard/Tests/Unit/DependencyInjection/DashboardWidgetPassTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Dashboard\Tests\Unit\DependencyInjection; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Definition; @@ -41,9 +42,7 @@ final class DashboardWidgetPassTest extends UnitTestCase $this->widgetRegistryDefinition = $this->createMock(Definition::class); } - /** - * @test - */ + #[Test] public function doesNothingIfWidgetRegistryIsUnknown(): void { $this->container->method('hasDefinition')->with(WidgetRegistry::class)->willReturn(false); @@ -52,9 +51,7 @@ final class DashboardWidgetPassTest extends UnitTestCase $this->subject->process($this->container); } - /** - * @test - */ + #[Test] public function doesNothingIfNoWidgetsAreTagged(): void { $this->container->method('hasDefinition')->with(WidgetRegistry::class)->willReturn(true); @@ -65,9 +62,7 @@ final class DashboardWidgetPassTest extends UnitTestCase $this->subject->process($this->container); } - /** - * @test - */ + #[Test] public function makesWidgetPublic(): void { $this->container->method('hasDefinition')->with(WidgetRegistry::class)->willReturn(true); @@ -82,9 +77,7 @@ final class DashboardWidgetPassTest extends UnitTestCase $this->subject->process($this->container); } - /** - * @test - */ + #[Test] public function registersTaggedWidgetWithMinimumConfigurationInRegistry(): void { $this->container->method('hasDefinition')->with(WidgetRegistry::class)->willReturn(true); @@ -132,9 +125,7 @@ final class DashboardWidgetPassTest extends UnitTestCase $this->subject->process($this->container); } - /** - * @test - */ + #[Test] public function registersWidgetToMultipleGroupsByComma(): void { $this->container->method('hasDefinition')->with(WidgetRegistry::class)->willReturn(true); @@ -176,9 +167,7 @@ final class DashboardWidgetPassTest extends UnitTestCase $this->subject->process($this->container); } - /** - * @test - */ + #[Test] public function registersTaggedWidgetWithMaximumConfigurationInRegistry(): void { $this->container->method('hasDefinition')->with(WidgetRegistry::class)->willReturn(true); diff --git a/typo3/sysext/dashboard/Tests/Unit/WidgetGroupRegistryTest.php b/typo3/sysext/dashboard/Tests/Unit/WidgetGroupRegistryTest.php index f599dea70a14b1fea62f9adc718a5432fe51e7e9..f43c6f6f05b3710cbf026db38d785ccfc1fb0cdd 100644 --- a/typo3/sysext/dashboard/Tests/Unit/WidgetGroupRegistryTest.php +++ b/typo3/sysext/dashboard/Tests/Unit/WidgetGroupRegistryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Dashboard\Tests\Unit; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Dashboard\WidgetGroup; use TYPO3\CMS\Dashboard\WidgetGroupRegistry; @@ -35,17 +36,13 @@ final class WidgetGroupRegistryTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function initiallyZeroWidgetGroupsAreRegistered(): void { self::assertCount(0, $this->subject->getWidgetGroups()); } - /** - * @test - */ + #[Test] public function getWidgetsMethodReturnsWidgetGroupObjects(): void { $widgetGroup1 = new WidgetGroup('identifier1', 'title1'); @@ -60,9 +57,7 @@ final class WidgetGroupRegistryTest extends UnitTestCase } } - /** - * @test - */ + #[Test] public function widgetGroupsGetRegistered(): void { self::assertCount(0, $this->subject->getWidgetGroups()); @@ -89,9 +84,7 @@ final class WidgetGroupRegistryTest extends UnitTestCase self::assertEquals(['identifier', 'identifier2'], array_keys($widgetGroups)); } - /** - * @test - */ + #[Test] public function alternativeRepositoryObjectReturnsSameResults(): void { $widgetGroup1 = new WidgetGroup('identifier1', 'title1'); diff --git a/typo3/sysext/extbase/Tests/Unit/Configuration/FrontendConfigurationManagerTest.php b/typo3/sysext/extbase/Tests/Unit/Configuration/FrontendConfigurationManagerTest.php index 7c1110ca1f9f299f303bafaa12e00462b329b9a5..88dc3f0596d7b62678d3ba7f4049cab0a1f39694 100644 --- a/typo3/sysext/extbase/Tests/Unit/Configuration/FrontendConfigurationManagerTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Configuration/FrontendConfigurationManagerTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Configuration; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Core\Domain\Repository\PageRepository; use TYPO3\CMS\Core\EventDispatcher\EventDispatcher; @@ -115,9 +116,7 @@ final class FrontendConfigurationManagerTest extends UnitTestCase $this->frontendConfigurationManager->_set('eventDispatcher', $this->createMock(EventDispatcher::class)); } - /** - * @test - */ + #[Test] public function setConfigurationResetsConfigurationCache(): void { $this->frontendConfigurationManager->_set('configurationCache', ['foo' => 'bar']); @@ -125,9 +124,7 @@ final class FrontendConfigurationManagerTest extends UnitTestCase self::assertEquals([], $this->frontendConfigurationManager->_get('configurationCache')); } - /** - * @test - */ + #[Test] public function setConfigurationSetsExtensionAndPluginName(): void { $configuration = [ @@ -139,9 +136,7 @@ final class FrontendConfigurationManagerTest extends UnitTestCase self::assertEquals('SomePluginName', $this->frontendConfigurationManager->_get('pluginName')); } - /** - * @test - */ + #[Test] public function setConfigurationConvertsTypoScriptArrayToPlainArray(): void { $configuration = [ @@ -159,9 +154,7 @@ final class FrontendConfigurationManagerTest extends UnitTestCase self::assertEquals($expectedResult, $this->frontendConfigurationManager->_get('configuration')); } - /** - * @test - */ + #[Test] public function getConfigurationReturnsCachedResultOfCurrentPlugin(): void { $this->frontendConfigurationManager->_set('extensionName', 'CurrentExtensionName'); @@ -175,9 +168,7 @@ final class FrontendConfigurationManagerTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function getConfigurationReturnsCachedResultForGivenExtension(): void { $this->frontendConfigurationManager->_set('configurationCache', [ @@ -189,9 +180,7 @@ final class FrontendConfigurationManagerTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function getConfigurationRecursivelyMergesCurrentPluginConfigurationWithFrameworkConfiguration(): void { $frontendConfigurationManager = $this->getAccessibleMock( @@ -239,9 +228,7 @@ final class FrontendConfigurationManagerTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function getConfigurationRecursivelyMergesPluginConfigurationOfSpecifiedPluginWithFrameworkConfiguration(): void { $frontendConfigurationManager = $this->getAccessibleMock( @@ -287,9 +274,7 @@ final class FrontendConfigurationManagerTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function getConfigurationDoesNotOverrideConfigurationWithContextSpecificFrameworkConfigurationIfDifferentPluginIsSpecified(): void { $frontendConfigurationManager = $this->getAccessibleMock( @@ -310,9 +295,7 @@ final class FrontendConfigurationManagerTest extends UnitTestCase $frontendConfigurationManager->getConfiguration('SomeExtensionName', 'SomePluginName'); } - /** - * @test - */ + #[Test] public function getConfigurationOverridesConfigurationWithContextSpecificFrameworkConfigurationIfNoPluginWasSpecified(): void { $frontendConfigurationManager = $this->getAccessibleMock( @@ -342,9 +325,7 @@ final class FrontendConfigurationManagerTest extends UnitTestCase self::assertEquals($contextSpecificFrameworkConfiguration, $actualResult); } - /** - * @test - */ + #[Test] public function getConfigurationOverridesConfigurationWithContextSpecificFrameworkConfigurationIfSpecifiedPluginIsTheCurrentPlugin(): void { $frontendConfigurationManager = $this->getAccessibleMock( @@ -382,9 +363,7 @@ final class FrontendConfigurationManagerTest extends UnitTestCase self::assertEquals($contextSpecificFrameworkConfiguration, $actualResult); } - /** - * @test - */ + #[Test] public function getConfigurationStoresResultInConfigurationCache(): void { $frontendConfigurationManager = $this->getAccessibleMock( @@ -414,9 +393,7 @@ final class FrontendConfigurationManagerTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function getConfigurationRetrievesStoragePidIncludingGivenStoragePidWithRecursiveSetForSingleStoragePid(): void { $frontendConfigurationManager = $this->getAccessibleMock( @@ -444,9 +421,7 @@ final class FrontendConfigurationManagerTest extends UnitTestCase $frontendConfigurationManager->getConfiguration('SomeOtherExtensionName', 'SomeOtherCurrentPluginName'); } - /** - * @test - */ + #[Test] public function getConfigurationRetrievesStoragePidIncludingGivenStoragePidWithRecursiveSetForMultipleStoragePid(): void { $frontendConfigurationManager = $this->getAccessibleMock( @@ -474,17 +449,13 @@ final class FrontendConfigurationManagerTest extends UnitTestCase $frontendConfigurationManager->getConfiguration('SomeOtherExtensionName', 'SomeOtherCurrentPluginName'); } - /** - * @test - */ + #[Test] public function getContentObjectReturnsInstanceOfContentObjectRenderer(): void { self::assertInstanceOf(ContentObjectRenderer::class, $this->frontendConfigurationManager->getContentObject()); } - /** - * @test - */ + #[Test] public function getContentObjectTheCurrentContentObject(): void { $mockContentObject = $this->createMock(ContentObjectRenderer::class); @@ -492,9 +463,7 @@ final class FrontendConfigurationManagerTest extends UnitTestCase self::assertSame($this->frontendConfigurationManager->getContentObject(), $mockContentObject); } - /** - * @test - */ + #[Test] public function getTypoScriptSetupReturnsSetupFromRequest(): void { $frontendTypoScript = new FrontendTypoScript(new RootNode(), []); @@ -503,9 +472,7 @@ final class FrontendConfigurationManagerTest extends UnitTestCase self::assertEquals(['foo' => 'bar'], $this->frontendConfigurationManager->_call('getTypoScriptSetup')); } - /** - * @test - */ + #[Test] public function getPluginConfigurationReturnsEmptyArrayIfNoPluginConfigurationWasFound(): void { $frontendTypoScript = new FrontendTypoScript(new RootNode(), []); @@ -520,9 +487,7 @@ final class FrontendConfigurationManagerTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function getPluginConfigurationReturnsExtensionConfiguration(): void { $testSettings = [ @@ -553,9 +518,7 @@ final class FrontendConfigurationManagerTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function getPluginConfigurationReturnsPluginConfiguration(): void { $testSettings = [ @@ -590,9 +553,7 @@ final class FrontendConfigurationManagerTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function getPluginConfigurationRecursivelyMergesExtensionAndPluginConfiguration(): void { $testExtensionSettings = [ @@ -663,9 +624,7 @@ final class FrontendConfigurationManagerTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function getControllerConfigurationReturnsEmptyArrayByDefault(): void { $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['extbase'] = null; @@ -678,9 +637,7 @@ final class FrontendConfigurationManagerTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function getControllerConfigurationReturnsConfigurationStoredInExtconf(): void { $controllerConfiguration = [ @@ -710,9 +667,7 @@ final class FrontendConfigurationManagerTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function getContextSpecificFrameworkConfigurationCorrectlyCallsOverrideMethods(): void { $frameworkConfiguration = [ @@ -742,9 +697,7 @@ final class FrontendConfigurationManagerTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function mergeConfigurationIntoFrameworkConfigurationWorksAsExpected(): void { $configuration = [ @@ -765,9 +718,7 @@ final class FrontendConfigurationManagerTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function overrideStoragePidIfStartingPointIsSetOverridesCorrectly(): void { $this->mockContentObject->data = ['pages' => '0', 'recursive' => 1]; @@ -785,9 +736,7 @@ final class FrontendConfigurationManagerTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function overrideStoragePidIfStartingPointIsSetCorrectlyHandlesEmptyValuesFromPageRepository(): void { $this->mockContentObject->data = ['pages' => '0', 'recursive' => 1]; @@ -805,9 +754,7 @@ final class FrontendConfigurationManagerTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function overrideConfigurationFromFlexFormChecksForDataIsString(): void { $flexFormService = $this->getMockBuilder(FlexFormService::class) @@ -829,9 +776,7 @@ final class FrontendConfigurationManagerTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function overrideConfigurationFromFlexFormChecksForDataIsStringAndEmpty(): void { $flexFormService = $this->getMockBuilder(FlexFormService::class) @@ -849,9 +794,7 @@ final class FrontendConfigurationManagerTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function overrideConfigurationFromFlexFormChecksForDataIsArray(): void { $flexFormService = $this->getMockBuilder(FlexFormService::class) @@ -869,9 +812,7 @@ final class FrontendConfigurationManagerTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function overrideConfigurationFromFlexFormChecksForDataIsArrayAndEmpty(): void { $flexFormService = $this->getMockBuilder(FlexFormService::class) @@ -889,9 +830,7 @@ final class FrontendConfigurationManagerTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function overrideConfigurationFromPluginOverridesCorrectly(): void { $frontendConfigurationManager = $this->getAccessibleMock( diff --git a/typo3/sysext/extbase/Tests/Unit/Domain/Model/CategoryTest.php b/typo3/sysext/extbase/Tests/Unit/Domain/Model/CategoryTest.php index 2fbc31ae60e72c43c5a23a5c92b7b94ffd4439cb..4f8938404fd816e2fd7944d0e9402d0fb9246868 100644 --- a/typo3/sysext/extbase/Tests/Unit/Domain/Model/CategoryTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Domain/Model/CategoryTest.php @@ -17,23 +17,20 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Domain\Model; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extbase\Domain\Model\Category; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class CategoryTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getTitleInitiallyReturnsEmptyString(): void { $subject = new Category(); self::assertSame('', $subject->getTitle()); } - /** - * @test - */ + #[Test] public function setTitleSetsTitle(): void { $subject = new Category(); @@ -41,18 +38,14 @@ final class CategoryTest extends UnitTestCase self::assertSame('foo bar', $subject->getTitle()); } - /** - * @test - */ + #[Test] public function getDescriptionInitiallyReturnsEmptyString(): void { $subject = new Category(); self::assertSame('', $subject->getDescription()); } - /** - * @test - */ + #[Test] public function setDescriptionSetsDescription(): void { $subject = new Category(); @@ -60,18 +53,14 @@ final class CategoryTest extends UnitTestCase self::assertSame('foo bar', $subject->getDescription()); } - /** - * @test - */ + #[Test] public function getParentInitiallyReturnsNull(): void { $subject = new Category(); self::assertNull($subject->getParent()); } - /** - * @test - */ + #[Test] public function setParentSetsParent(): void { $parent = new Category(); diff --git a/typo3/sysext/extbase/Tests/Unit/DomainObject/AbstractEntityTest.php b/typo3/sysext/extbase/Tests/Unit/DomainObject/AbstractEntityTest.php index 5054a4a0c14bc5922abdd7c18d5944c5bac4c81d..82e549317db2f0ed7b0c1985808321c4f07af16e 100644 --- a/typo3/sysext/extbase/Tests/Unit/DomainObject/AbstractEntityTest.php +++ b/typo3/sysext/extbase/Tests/Unit/DomainObject/AbstractEntityTest.php @@ -17,14 +17,13 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\DomainObject; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extbase\DomainObject\AbstractEntity; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class AbstractEntityTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function objectIsNotDirtyAfterCallingMemorizeCleanStateWithSimpleProperties(): void { $domainObject = new class () extends AbstractEntity { @@ -36,9 +35,7 @@ final class AbstractEntityTest extends UnitTestCase self::assertFalse($domainObject->_isDirty()); } - /** - * @test - */ + #[Test] public function objectIsDirtyAfterCallingMemorizeCleanStateWithSimplePropertiesAndModifyingThePropertiesAfterwards(): void { $domainObject = new class () extends AbstractEntity { @@ -51,9 +48,7 @@ final class AbstractEntityTest extends UnitTestCase self::assertTrue($domainObject->_isDirty()); } - /** - * @test - */ + #[Test] public function objectIsNotDirtyAfterCallingMemorizeCleanStateWithObjectProperties(): void { $domainObject = new class () extends AbstractEntity { @@ -66,9 +61,7 @@ final class AbstractEntityTest extends UnitTestCase self::assertFalse($domainObject->_isDirty()); } - /** - * @test - */ + #[Test] public function objectIsNotDirtyAfterCallingMemorizeCleanStateWithOtherDomainObjectsAsProperties(): void { $domainObject = new class () extends AbstractEntity { diff --git a/typo3/sysext/extbase/Tests/Unit/Error/ErrorTest.php b/typo3/sysext/extbase/Tests/Unit/Error/ErrorTest.php index 27b50442a4a73f6f0764c14d218dec30f5af87f2..135391b2f3afb8398a15c103ec5ef77f0de6d32b 100644 --- a/typo3/sysext/extbase/Tests/Unit/Error/ErrorTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Error/ErrorTest.php @@ -17,14 +17,13 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Error; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extbase\Error\Error; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ErrorTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function theConstructorSetsTheErrorMessageCorrectly(): void { $errorMessage = 'The message'; @@ -32,9 +31,7 @@ final class ErrorTest extends UnitTestCase self::assertEquals($errorMessage, $error->getMessage()); } - /** - * @test - */ + #[Test] public function theConstructorSetsTheErrorCodeCorrectly(): void { $errorCode = 123456789; diff --git a/typo3/sysext/extbase/Tests/Unit/Error/MessageTest.php b/typo3/sysext/extbase/Tests/Unit/Error/MessageTest.php index 839ff8eebf7c3ee71aa56f49ea27898aa8a261e0..2cc5df6c9d45d0970ad39dd578e9dbff49de0a00 100644 --- a/typo3/sysext/extbase/Tests/Unit/Error/MessageTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Error/MessageTest.php @@ -17,14 +17,13 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Error; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extbase\Error\Message; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class MessageTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function theConstructorSetsTheMessageMessageCorrectly(): void { $messageMessage = 'The message'; @@ -32,9 +31,7 @@ final class MessageTest extends UnitTestCase self::assertEquals($messageMessage, $error->getMessage()); } - /** - * @test - */ + #[Test] public function theConstructorSetsTheMessageCodeCorrectly(): void { $messageCode = 123456789; @@ -42,9 +39,7 @@ final class MessageTest extends UnitTestCase self::assertEquals($messageCode, $error->getCode()); } - /** - * @test - */ + #[Test] public function theConstructorSetsTheMessageArgumentsCorrectly(): void { $messageArguments = ['foo', 'bar']; @@ -52,9 +47,7 @@ final class MessageTest extends UnitTestCase self::assertEquals($messageArguments, $error->getArguments()); } - /** - * @test - */ + #[Test] public function theConstructorSetsTheMessageTitleCorrectly(): void { $messageTitle = 'Title'; @@ -62,27 +55,21 @@ final class MessageTest extends UnitTestCase self::assertEquals($messageTitle, $error->getTitle()); } - /** - * @test - */ + #[Test] public function renderRendersCorrectlyWithoutArguments(): void { $error = new Message('Message', 1); self::assertEquals('Message', $error->render()); } - /** - * @test - */ + #[Test] public function renderRendersCorrectlyWithArguments(): void { $error = new Message('Foo is %s and Bar is %s', 1, ['baz', 'qux']); self::assertEquals('Foo is baz and Bar is qux', $error->render()); } - /** - * @test - */ + #[Test] public function toStringCallsRender(): void { $error = new Message('Foo is %s and Bar is %s', 1, ['baz', 'qux']); diff --git a/typo3/sysext/extbase/Tests/Unit/Error/ResultTest.php b/typo3/sysext/extbase/Tests/Unit/Error/ResultTest.php index 4c48a699dbd7eb1166d86c1c52c7cf11daaa3e7e..30161efcf1e718ef8f4fe8443e5d3b8619da9668 100644 --- a/typo3/sysext/extbase/Tests/Unit/Error/ResultTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Error/ResultTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Error; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Extbase\Error\Result; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -45,10 +47,8 @@ final class ResultTest extends UnitTestCase return $this->createMock('TYPO3\\CMS\\Extbase\\Error\\' . $type); } - /** - * @test - * @dataProvider dataTypes - */ + #[DataProvider('dataTypes')] + #[Test] public function addedMessagesShouldBeRetrievableAgain(string $dataTypeInSingular, string $dataTypeInPlural): void { $message = $this->getMockMessage($dataTypeInSingular); @@ -58,10 +58,8 @@ final class ResultTest extends UnitTestCase self::assertEquals([$message], $this->result->{$getterMethodName}()); } - /** - * @test - * @dataProvider dataTypes - */ + #[DataProvider('dataTypes')] + #[Test] public function getMessageShouldNotBeRecursive(string $dataTypeInSingular, string $dataTypeInPlural): void { $message = $this->getMockMessage($dataTypeInSingular); @@ -71,10 +69,8 @@ final class ResultTest extends UnitTestCase self::assertEquals([], $this->result->{$getterMethodName}()); } - /** - * @test - * @dataProvider dataTypes - */ + #[DataProvider('dataTypes')] + #[Test] public function getFirstMessageShouldReturnFirstMessage(string $dataTypeInSingular, string $dataTypeInPlural): void { $message1 = $this->getMockMessage($dataTypeInSingular); @@ -86,9 +82,7 @@ final class ResultTest extends UnitTestCase self::assertSame($message1, $this->result->{$getterMethodName}()); } - /** - * @test - */ + #[Test] public function forPropertyShouldReturnSubResult(): void { $container2 = $this->result->forProperty('foo.bar'); @@ -96,28 +90,22 @@ final class ResultTest extends UnitTestCase self::assertSame($container2, $this->result->forProperty('foo')->forProperty('bar')); } - /** - * @test - */ + #[Test] public function forPropertyWithEmptyStringShouldReturnSelf(): void { $container2 = $this->result->forProperty(''); self::assertSame($container2, $this->result); } - /** - * @test - */ + #[Test] public function forPropertyWithNullShouldReturnSelf(): void { $container2 = $this->result->forProperty(null); self::assertSame($container2, $this->result); } - /** - * @test - * @dataProvider dataTypes - */ + #[DataProvider('dataTypes')] + #[Test] public function hasMessagesShouldReturnTrueIfTopLevelObjectHasMessages(string $dataTypeInSingular, string $dataTypeInPlural): void { $message = $this->getMockMessage($dataTypeInSingular); @@ -127,10 +115,8 @@ final class ResultTest extends UnitTestCase self::assertTrue($this->result->{$methodName}()); } - /** - * @test - * @dataProvider dataTypes - */ + #[DataProvider('dataTypes')] + #[Test] public function hasMessagesShouldReturnTrueIfSubObjectHasErrors(string $dataTypeInSingular, string $dataTypeInPlural): void { $addMethodName = 'add' . $dataTypeInSingular; @@ -140,10 +126,8 @@ final class ResultTest extends UnitTestCase self::assertTrue($this->result->{$methodName}()); } - /** - * @test - * @dataProvider dataTypes - */ + #[DataProvider('dataTypes')] + #[Test] public function hasMessagesShouldReturnFalseIfSubObjectHasNoErrors(string $dataTypeInSingular, string $dataTypeInPlural): void { $methodName = 'has' . $dataTypeInPlural; @@ -152,10 +136,8 @@ final class ResultTest extends UnitTestCase self::assertFalse($this->result->{$methodName}()); } - /** - * @test - * @dataProvider dataTypes - */ + #[DataProvider('dataTypes')] + #[Test] public function getFlattenedMessagesShouldReturnAllSubMessages(string $dataTypeInSingular, string $dataTypeInPlural): void { $message1 = $this->getMockMessage($dataTypeInSingular); @@ -179,10 +161,8 @@ final class ResultTest extends UnitTestCase self::assertEquals($expected, $this->result->{$getMethodName}()); } - /** - * @test - * @dataProvider dataTypes - */ + #[DataProvider('dataTypes')] + #[Test] public function getFlattenedMessagesShouldNotContainEmptyResults(string $dataTypeInSingular, string $dataTypeInPlural): void { $message1 = $this->getMockMessage($dataTypeInSingular); @@ -198,9 +178,7 @@ final class ResultTest extends UnitTestCase self::assertEquals($expected, $this->result->{$getMethodName}()); } - /** - * @test - */ + #[Test] public function mergeShouldMergeTwoResults(): void { $notice1 = $this->getMockMessage('Notice'); @@ -231,9 +209,7 @@ final class ResultTest extends UnitTestCase self::assertSame([$error1, $error2], $this->result->forProperty('foo')->getErrors()); } - /** - * @test - */ + #[Test] public function getFirstReturnsFalseOnEmptyResult(): void { $subject = new Result(); diff --git a/typo3/sysext/extbase/Tests/Unit/Event/Configuration/BeforeFlexFormConfigurationOverrideEventTest.php b/typo3/sysext/extbase/Tests/Unit/Event/Configuration/BeforeFlexFormConfigurationOverrideEventTest.php index be3c604e5b89bee9ba3d70b166a0f4bedbfe3720..9f1523aefdde203f10c33f3e2d52fa5433845f50 100644 --- a/typo3/sysext/extbase/Tests/Unit/Event/Configuration/BeforeFlexFormConfigurationOverrideEventTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Event/Configuration/BeforeFlexFormConfigurationOverrideEventTest.php @@ -17,14 +17,13 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Event\Configuration; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extbase\Event\Configuration\BeforeFlexFormConfigurationOverrideEvent; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class BeforeFlexFormConfigurationOverrideEventTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function canAccessCurrentConfiguration(): void { $event = new BeforeFlexFormConfigurationOverrideEvent( @@ -38,9 +37,7 @@ final class BeforeFlexFormConfigurationOverrideEventTest extends UnitTestCase self::assertSame(['foo' => 'bar'], $event->getFlexFormConfiguration()); } - /** - * @test - */ + #[Test] public function canOverrideFlexFormConfiguration(): void { $event = new BeforeFlexFormConfigurationOverrideEvent( diff --git a/typo3/sysext/extbase/Tests/Unit/Mvc/Controller/ArgumentTest.php b/typo3/sysext/extbase/Tests/Unit/Mvc/Controller/ArgumentTest.php index 5ceaf22f4c6101870c78b9a0ecfdd05b20e058ed..6baa79ed638c10cb27b8dca81e444c900fe159c8 100644 --- a/typo3/sysext/extbase/Tests/Unit/Mvc/Controller/ArgumentTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Mvc/Controller/ArgumentTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Mvc\Controller; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extbase\Mvc\Controller\Argument; use TYPO3\CMS\Extbase\Property\TypeConverter\PersistentObjectConverter; use TYPO3\CMS\Extbase\Validation\Validator\ValidatorInterface; @@ -34,9 +36,7 @@ final class ArgumentTest extends UnitTestCase $this->objectArgument = new Argument('someName', 'DateTime'); } - /** - * @test - */ + #[Test] public function constructingArgumentWithoutNameThrowsException(): void { $this->expectException(\InvalidArgumentException::class); @@ -44,9 +44,7 @@ final class ArgumentTest extends UnitTestCase new Argument('', 'Text'); } - /** - * @test - */ + #[Test] public function constructingArgumentWithInvalidNameThrowsException(): void { $this->expectException(\InvalidArgumentException::class); @@ -54,18 +52,14 @@ final class ArgumentTest extends UnitTestCase new Argument(new \ArrayObject(), 'Text'); } - /** - * @test - */ + #[Test] public function passingDataTypeToConstructorReallySetsTheDataType(): void { self::assertEquals('string', $this->simpleValueArgument->getDataType(), 'The specified data type has not been set correctly.'); self::assertEquals('someName', $this->simpleValueArgument->getName(), 'The specified name has not been set correctly.'); } - /** - * @test - */ + #[Test] public function setShortNameProvidesFluentInterface(): void { $returnedArgument = $this->simpleValueArgument->setShortName('x'); @@ -82,10 +76,10 @@ final class ArgumentTest extends UnitTestCase } /** - * @test - * @dataProvider invalidShortNames * @param string|int $invalidShortName */ + #[DataProvider('invalidShortNames')] + #[Test] public function shortNameShouldThrowExceptionIfInvalid($invalidShortName): void { $this->expectException(\InvalidArgumentException::class); @@ -93,18 +87,14 @@ final class ArgumentTest extends UnitTestCase $this->simpleValueArgument->setShortName($invalidShortName); } - /** - * @test - */ + #[Test] public function shortNameCanBeRetrievedAgain(): void { $this->simpleValueArgument->setShortName('x'); self::assertEquals('x', $this->simpleValueArgument->getShortName()); } - /** - * @test - */ + #[Test] public function setRequiredShouldProvideFluentInterfaceAndReallySetRequiredState(): void { $returnedArgument = $this->simpleValueArgument->setRequired(true); @@ -112,9 +102,7 @@ final class ArgumentTest extends UnitTestCase self::assertTrue($this->simpleValueArgument->isRequired()); } - /** - * @test - */ + #[Test] public function setDefaultValueShouldProvideFluentInterfaceAndReallySetDefaultValue(): void { $returnedArgument = $this->simpleValueArgument->setDefaultValue('default'); @@ -122,9 +110,7 @@ final class ArgumentTest extends UnitTestCase self::assertSame('default', $this->simpleValueArgument->getDefaultValue()); } - /** - * @test - */ + #[Test] public function setValidatorShouldProvideFluentInterfaceAndReallySetValidator(): void { $mockValidator = $this->createMock(ValidatorInterface::class); @@ -133,18 +119,14 @@ final class ArgumentTest extends UnitTestCase self::assertSame($mockValidator, $this->simpleValueArgument->getValidator()); } - /** - * @test - */ + #[Test] public function setValueProvidesFluentInterface(): void { $returnedArgument = $this->simpleValueArgument->setValue(null); self::assertSame($this->simpleValueArgument, $returnedArgument, 'The returned argument is not the original argument.'); } - /** - * @test - */ + #[Test] public function setValueUsesNullAsIs(): void { $this->simpleValueArgument = new Argument('dummy', 'string'); @@ -152,9 +134,7 @@ final class ArgumentTest extends UnitTestCase self::assertNull($this->simpleValueArgument->getValue()); } - /** - * @test - */ + #[Test] public function defaultPropertyMappingConfigurationDoesNotAllowCreationOrModificationOfObjects(): void { self::assertNull($this->simpleValueArgument->getPropertyMappingConfiguration()->getConfigurationValue(PersistentObjectConverter::class, PersistentObjectConverter::CONFIGURATION_CREATION_ALLOWED)); diff --git a/typo3/sysext/extbase/Tests/Unit/Mvc/Controller/ArgumentsTest.php b/typo3/sysext/extbase/Tests/Unit/Mvc/Controller/ArgumentsTest.php index 96b2e70ba3713b786535230f9aceefcf6173ff4d..9e0f9108affee727228472b4b9336e22e4deb931 100644 --- a/typo3/sysext/extbase/Tests/Unit/Mvc/Controller/ArgumentsTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Mvc/Controller/ArgumentsTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Mvc\Controller; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extbase\Mvc\Controller\Argument; use TYPO3\CMS\Extbase\Mvc\Controller\Arguments; use TYPO3\CMS\Extbase\Mvc\Exception\NoSuchArgumentException; @@ -24,9 +25,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ArgumentsTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function argumentsObjectIsOfScopePrototype(): void { $arguments1 = new Arguments(); @@ -34,9 +33,7 @@ final class ArgumentsTest extends UnitTestCase self::assertNotSame($arguments1, $arguments2, 'The arguments object is not of scope prototype!'); } - /** - * @test - */ + #[Test] public function addingAnArgumentManuallyWorks(): void { $arguments = new Arguments(); @@ -45,9 +42,7 @@ final class ArgumentsTest extends UnitTestCase self::assertSame($newArgument, $arguments->getArgument('argumentName1234'), 'The added and retrieved argument is not the same.'); } - /** - * @test - */ + #[Test] public function addingAnArgumentReplacesArgumentWithSameName(): void { $arguments = new Arguments(); @@ -66,9 +61,7 @@ final class ArgumentsTest extends UnitTestCase self::assertSame($mockSecondArgument, $arguments->getArgument('argumentName1234'), 'The added and retrieved argument is not the same.'); } - /** - * @test - */ + #[Test] public function addNewArgumentProvidesFluentInterface(): void { $arguments = new Arguments(); @@ -76,9 +69,7 @@ final class ArgumentsTest extends UnitTestCase self::assertInstanceOf(Argument::class, $newArgument); } - /** - * @test - */ + #[Test] public function addingArgumentThroughArrayAccessWorks(): void { $mockArgument = $this->getMockBuilder(Argument::class) @@ -92,9 +83,7 @@ final class ArgumentsTest extends UnitTestCase self::assertSame($mockArgument, $arguments->getArgument('argumentName1234'), 'Added and retrieved arguments are not the same.'); } - /** - * @test - */ + #[Test] public function retrievingArgumentThroughArrayAccessWorks(): void { $mockArgument = $this->getMockBuilder(Argument::class) @@ -107,9 +96,7 @@ final class ArgumentsTest extends UnitTestCase self::assertSame($mockArgument, $arguments['argumentName1234'], 'Argument retrieved by array access is not the one we added.'); } - /** - * @test - */ + #[Test] public function getArgumentWithNonExistingArgumentNameThrowsException(): void { $arguments = new Arguments(); @@ -120,9 +107,7 @@ final class ArgumentsTest extends UnitTestCase } } - /** - * @test - */ + #[Test] public function issetReturnsCorrectResult(): void { $mockArgument = $this->getMockBuilder(Argument::class) @@ -136,9 +121,7 @@ final class ArgumentsTest extends UnitTestCase self::assertTrue(isset($arguments['argumentName1234']), 'isset() did not return TRUE.'); } - /** - * @test - */ + #[Test] public function getArgumentNamesReturnsNamesOfAddedArguments(): void { $mockArgument1 = $this->getMockBuilder(Argument::class) @@ -164,9 +147,7 @@ final class ArgumentsTest extends UnitTestCase self::assertEquals($expectedArgumentNames, $arguments->getArgumentNames(), 'Returned argument names were not as expected.'); } - /** - * @test - */ + #[Test] public function getArgumentShortNamesReturnsShortNamesOfAddedArguments(): void { $mockArgument1 = $this->getMockBuilder(Argument::class) @@ -195,9 +176,7 @@ final class ArgumentsTest extends UnitTestCase self::assertEquals($expectedShortNames, $arguments->getArgumentShortNames(), 'Returned argument short names were not as expected.'); } - /** - * @test - */ + #[Test] public function addNewArgumentCreatesAndAddsNewArgument(): void { $mockArgument = $this->getMockBuilder(Argument::class) @@ -212,9 +191,7 @@ final class ArgumentsTest extends UnitTestCase self::assertSame($addedArgument, $retrievedArgument, 'The added and the retrieved argument are not the same.'); } - /** - * @test - */ + #[Test] public function addNewArgumentAssumesTextDataTypeByDefault(): void { $mockArgument = $this->getMockBuilder(Argument::class) @@ -226,9 +203,7 @@ final class ArgumentsTest extends UnitTestCase $arguments->addNewArgument('dummyName'); } - /** - * @test - */ + #[Test] public function addNewArgumentCanAddArgumentsMarkedAsRequired(): void { $arguments = new Arguments(); @@ -236,9 +211,7 @@ final class ArgumentsTest extends UnitTestCase self::assertTrue($argument->isRequired()); } - /** - * @test - */ + #[Test] public function addNewArgumentCanAddArgumentsMarkedAsOptionalWithDefaultValues(): void { $arguments = new Arguments(); @@ -246,9 +219,7 @@ final class ArgumentsTest extends UnitTestCase self::assertFalse($argument->isRequired()); } - /** - * @test - */ + #[Test] public function callingInvalidMethodThrowsException(): void { $this->expectException(\LogicException::class); @@ -257,9 +228,7 @@ final class ArgumentsTest extends UnitTestCase $arguments->nonExistingMethod(); } - /** - * @test - */ + #[Test] public function removeAllClearsAllArguments(): void { $mockArgument1 = $this->getMockBuilder(Argument::class) diff --git a/typo3/sysext/extbase/Tests/Unit/Mvc/Controller/MvcPropertyMappingConfigurationServiceTest.php b/typo3/sysext/extbase/Tests/Unit/Mvc/Controller/MvcPropertyMappingConfigurationServiceTest.php index 72c7383963a6a747a5130e3288a8ebff4d9a8780..17ec979a7de8d7e6fb56cbcbb73860bdacdf2b0b 100644 --- a/typo3/sysext/extbase/Tests/Unit/Mvc/Controller/MvcPropertyMappingConfigurationServiceTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Mvc/Controller/MvcPropertyMappingConfigurationServiceTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Mvc\Controller; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Error\Http\BadRequestException; use TYPO3\CMS\Core\Http\ServerRequest; use TYPO3\CMS\Extbase\Mvc\Controller\Argument; @@ -120,10 +122,8 @@ final class MvcPropertyMappingConfigurationServiceTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider dataProviderForGenerateTrustedPropertiesToken - */ + #[DataProvider('dataProviderForGenerateTrustedPropertiesToken')] + #[Test] public function generateTrustedPropertiesTokenGeneratesTheCorrectHashesInNormalOperation($input, $expected): void { $requestHashService = $this->getMockBuilder(MvcPropertyMappingConfigurationService::class) @@ -133,10 +133,8 @@ final class MvcPropertyMappingConfigurationServiceTest extends UnitTestCase $requestHashService->generateTrustedPropertiesToken($input); } - /** - * @test - * @dataProvider dataProviderForGenerateTrustedPropertiesTokenWithUnallowedValues - */ + #[DataProvider('dataProviderForGenerateTrustedPropertiesTokenWithUnallowedValues')] + #[Test] public function generateTrustedPropertiesTokenThrowsExceptionInWrongCases(array $input, int $expectExceptionCode): void { $this->expectException(InvalidArgumentForHashGenerationException::class); @@ -147,9 +145,7 @@ final class MvcPropertyMappingConfigurationServiceTest extends UnitTestCase $requestHashService->generateTrustedPropertiesToken($input); } - /** - * @test - */ + #[Test] public function serializeAndHashFormFieldArrayWorks(): void { $formFieldArray = [ @@ -173,9 +169,7 @@ final class MvcPropertyMappingConfigurationServiceTest extends UnitTestCase self::assertEquals($expected, $actual); } - /** - * @test - */ + #[Test] public function initializePropertyMappingConfigurationDoesNothingIfTrustedPropertiesAreNotSet(): void { $extbaseAttribute = (new ExtbaseRequestParameters())->setArgument('__trustedProperties', null); @@ -187,9 +181,7 @@ final class MvcPropertyMappingConfigurationServiceTest extends UnitTestCase $requestHashService->initializePropertyMappingConfigurationFromRequest($extbaseRequest, $arguments); } - /** - * @test - */ + #[Test] public function initializePropertyMappingConfigurationThrowsBadRequestExceptionOnInvalidHmac(): void { $this->expectException(BadRequestException::class); @@ -206,9 +198,7 @@ final class MvcPropertyMappingConfigurationServiceTest extends UnitTestCase $requestHashService->initializePropertyMappingConfigurationFromRequest($extbaseRequest, $arguments); } - /** - * @test - */ + #[Test] public function initializePropertyMappingConfigurationWithNonDecodableTrustedPropertiesThrowsException(): void { $hashService = new HashService(); @@ -228,9 +218,7 @@ final class MvcPropertyMappingConfigurationServiceTest extends UnitTestCase $requestHashService->initializePropertyMappingConfigurationFromRequest($extbaseRequest, $arguments); } - /** - * @test - */ + #[Test] public function initializePropertyMappingConfigurationWithOutdatedTrustedPropertiesThrowsException(): void { $hashService = new HashService(); @@ -250,9 +238,7 @@ final class MvcPropertyMappingConfigurationServiceTest extends UnitTestCase $requestHashService->initializePropertyMappingConfigurationFromRequest($extbaseRequest, $arguments); } - /** - * @test - */ + #[Test] public function initializePropertyMappingConfigurationReturnsEarlyIfNoTrustedPropertiesAreSet(): void { $trustedProperties = [ @@ -261,9 +247,7 @@ final class MvcPropertyMappingConfigurationServiceTest extends UnitTestCase $this->initializePropertyMappingConfiguration($trustedProperties); } - /** - * @test - */ + #[Test] public function initializePropertyMappingConfigurationReturnsEarlyIfArgumentIsUnknown(): void { $trustedProperties = [ @@ -273,9 +257,7 @@ final class MvcPropertyMappingConfigurationServiceTest extends UnitTestCase self::assertFalse($arguments->hasArgument('nonExistingArgument')); } - /** - * @test - */ + #[Test] public function initializePropertyMappingConfigurationSetsModificationAllowedIfIdentityPropertyIsSet(): void { $trustedProperties = [ @@ -297,9 +279,7 @@ final class MvcPropertyMappingConfigurationServiceTest extends UnitTestCase self::assertFalse($propertyMappingConfiguration->forProperty('nested')->shouldMap('someProperty'), 'Value is not FALSE at line ' . __LINE__); } - /** - * @test - */ + #[Test] public function initializePropertyMappingConfigurationSetsCreationAllowedIfIdentityPropertyIsNotSet(): void { $trustedProperties = [ @@ -318,9 +298,7 @@ final class MvcPropertyMappingConfigurationServiceTest extends UnitTestCase self::assertFalse($propertyMappingConfiguration->forProperty('bar')->shouldMap('someProperty')); } - /** - * @test - */ + #[Test] public function initializePropertyMappingConfigurationSetsAllowedFields(): void { $trustedProperties = [ @@ -334,9 +312,7 @@ final class MvcPropertyMappingConfigurationServiceTest extends UnitTestCase self::assertTrue($propertyMappingConfiguration->shouldMap('bar')); } - /** - * @test - */ + #[Test] public function initializePropertyMappingConfigurationSetsAllowedFieldsRecursively(): void { $trustedProperties = [ diff --git a/typo3/sysext/extbase/Tests/Unit/Mvc/RequestTest.php b/typo3/sysext/extbase/Tests/Unit/Mvc/RequestTest.php index 89e3b406d7b2dfaa0d48c72c79e609636779d6e0..b62789d2af3d3a3cc373b3b5c4e5352e376ef54a 100644 --- a/typo3/sysext/extbase/Tests/Unit/Mvc/RequestTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Mvc/RequestTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Mvc; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Http\ServerRequest; use TYPO3\CMS\Extbase\Mvc\Exception\InvalidArgumentNameException; use TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters; @@ -25,9 +27,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class RequestTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function aSingleArgumentCanBeSetWithWithArgumentAndRetrievedWithGetArgument(): void { $serverRequest = (new ServerRequest())->withAttribute('extbase', new ExtbaseRequestParameters()); @@ -36,9 +36,7 @@ final class RequestTest extends UnitTestCase self::assertEquals('theValue', $request->getArgument('someArgumentName')); } - /** - * @test - */ + #[Test] public function withArgumentThrowsExceptionIfTheGivenArgumentNameIsAnEmptyString(): void { $this->expectException(InvalidArgumentNameException::class); @@ -48,9 +46,7 @@ final class RequestTest extends UnitTestCase $request->withArgument('', 'theValue'); } - /** - * @test - */ + #[Test] public function withArgumentsOverridesAllExistingArguments(): void { $arguments = ['key1' => 'value1', 'key2' => 'value2']; @@ -62,9 +58,7 @@ final class RequestTest extends UnitTestCase self::assertEquals($arguments, $actualResult); } - /** - * @test - */ + #[Test] public function withArgumentCanNotSetAtExtension(): void { $serverRequest = (new ServerRequest())->withAttribute('extbase', new ExtbaseRequestParameters()); @@ -73,9 +67,7 @@ final class RequestTest extends UnitTestCase self::assertFalse($request->hasArgument('@extension')); } - /** - * @test - */ + #[Test] public function withArgumentCanNotSetAtController(): void { $serverRequest = (new ServerRequest())->withAttribute('extbase', new ExtbaseRequestParameters()); @@ -84,9 +76,7 @@ final class RequestTest extends UnitTestCase self::assertFalse($request->hasArgument('@controller')); } - /** - * @test - */ + #[Test] public function withArgumentCanNotSetAtAction(): void { $serverRequest = (new ServerRequest())->withAttribute('extbase', new ExtbaseRequestParameters()); @@ -95,9 +85,7 @@ final class RequestTest extends UnitTestCase self::assertFalse($request->hasArgument('@action')); } - /** - * @test - */ + #[Test] public function withArgumentCanNotSetAtFormat(): void { $serverRequest = (new ServerRequest())->withAttribute('extbase', new ExtbaseRequestParameters()); @@ -106,9 +94,7 @@ final class RequestTest extends UnitTestCase self::assertFalse($request->hasArgument('@format')); } - /** - * @test - */ + #[Test] public function internalArgumentsIsNotReturnedAsNormalArgument(): void { $serverRequest = (new ServerRequest())->withAttribute('extbase', new ExtbaseRequestParameters()); @@ -117,9 +103,7 @@ final class RequestTest extends UnitTestCase self::assertFalse($request->hasArgument('__referrer')); } - /** - * @test - */ + #[Test] public function multipleArgumentsCanBeSetWithWithArgumentsAndRetrievedWithGetArguments(): void { $serverRequest = (new ServerRequest())->withAttribute('extbase', new ExtbaseRequestParameters()); @@ -133,9 +117,7 @@ final class RequestTest extends UnitTestCase self::assertEquals($arguments, $request->getArguments()); } - /** - * @test - */ + #[Test] public function hasArgumentTellsIfAnArgumentExists(): void { $serverRequest = (new ServerRequest())->withAttribute('extbase', new ExtbaseRequestParameters()); @@ -145,9 +127,7 @@ final class RequestTest extends UnitTestCase self::assertFalse($request->hasArgument('notExistingArgument')); } - /** - * @test - */ + #[Test] public function theActionNameCanBeSetAndRetrieved(): void { $serverRequest = (new ServerRequest())->withAttribute('extbase', new ExtbaseRequestParameters()); @@ -156,9 +136,7 @@ final class RequestTest extends UnitTestCase self::assertEquals('theAction', $request->getControllerActionName()); } - /** - * @test - */ + #[Test] public function theRepresentationFormatCanBeSetAndRetrieved(): void { $serverRequest = (new ServerRequest())->withAttribute('extbase', new ExtbaseRequestParameters()); @@ -204,10 +182,8 @@ final class RequestTest extends UnitTestCase ]; } - /** - * @dataProvider controllerArgumentsAndExpectedObjectName - * @test - */ + #[DataProvider('controllerArgumentsAndExpectedObjectName')] + #[Test] public function withControllerObjectNameResolvesControllerObjectNameArgumentsCorrectly(array $controllerArguments, string $controllerObjectName): void { $serverRequest = (new ServerRequest())->withAttribute('extbase', new ExtbaseRequestParameters()); diff --git a/typo3/sysext/extbase/Tests/Unit/Mvc/View/JsonViewTest.php b/typo3/sysext/extbase/Tests/Unit/Mvc/View/JsonViewTest.php index 59a7a34bb5e81fb0bb615b43be1264d511f6fb0e..2ba2fa066c5f6b2c4f89ba1cda290ed3e5239b82 100644 --- a/typo3/sysext/extbase/Tests/Unit/Mvc/View/JsonViewTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Mvc/View/JsonViewTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Mvc\View; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Cache\Frontend\NullFrontend; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Utility\StringUtility; @@ -168,11 +170,11 @@ final class JsonViewTest extends UnitTestCase } /** - * @test * @param object|array $object * @param array|string $expected - * @dataProvider jsonViewTestData */ + #[DataProvider('jsonViewTestData')] + #[Test] public function transformValue($object, array $configuration, $expected, string $description): void { GeneralUtility::setSingletonInstance(ReflectionService::class, new ReflectionService(new NullFrontend('extbase'), 'ClassSchemata')); @@ -340,11 +342,11 @@ final class JsonViewTest extends UnitTestCase } /** - * @test * @param object|array $object * @param array|string $expected - * @dataProvider jsonViewTestDataRecursive */ + #[DataProvider('jsonViewTestDataRecursive')] + #[Test] public function recursive($object, array $configuration, $expected, string $variableToRender, string $description): void { GeneralUtility::setSingletonInstance(ReflectionService::class, new ReflectionService(new NullFrontend('extbase'), 'ClassSchemata')); @@ -387,10 +389,8 @@ final class JsonViewTest extends UnitTestCase return $output; } - /** - * @test - * @dataProvider objectIdentifierExposureTestData - */ + #[DataProvider('objectIdentifierExposureTestData')] + #[Test] public function transformValueWithObjectIdentifierExposure( object $object, array $configuration, @@ -441,10 +441,8 @@ final class JsonViewTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider exposeClassNameSettingsAndResults - */ + #[DataProvider('exposeClassNameSettingsAndResults')] + #[Test] public function viewExposesClassNameFullyIfConfiguredSo( ?int $exposeClassNameSetting, string $className, @@ -473,9 +471,7 @@ final class JsonViewTest extends UnitTestCase self::assertSame($expected, $actual); } - /** - * @test - */ + #[Test] public function renderReturnsJsonRepresentationOfAssignedObject(): void { $object = new \stdClass(); @@ -487,9 +483,7 @@ final class JsonViewTest extends UnitTestCase self::assertSame($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function renderReturnsJsonRepresentationOfAssignedArray(): void { $array = ['foo' => 'Foo', 'bar' => 'Bar']; @@ -500,9 +494,7 @@ final class JsonViewTest extends UnitTestCase self::assertSame($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function renderReturnsJsonRepresentationOfAssignedSimpleValue(): void { $value = 'Foo'; @@ -513,9 +505,7 @@ final class JsonViewTest extends UnitTestCase self::assertSame($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function renderKeepsUtf8CharactersUnescaped(): void { $value = 'Gürkchen'; @@ -538,10 +528,8 @@ final class JsonViewTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider escapeCharacterDataProvider - */ + #[DataProvider('escapeCharacterDataProvider')] + #[Test] public function renderEscapesEscapeCharacters(string $character): void { $this->view->assign('value', $character); @@ -552,9 +540,7 @@ final class JsonViewTest extends UnitTestCase self::assertSame($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function renderReturnsNullIfNameOfAssignedVariableIsNotEqualToValue(): void { $value = 'Foo'; @@ -565,9 +551,7 @@ final class JsonViewTest extends UnitTestCase self::assertSame($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function renderOnlyRendersVariableWithTheNameValue(): void { $this->view @@ -579,9 +563,7 @@ final class JsonViewTest extends UnitTestCase self::assertSame($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function setVariablesToRenderOverridesValueToRender(): void { $value = 'Foo'; @@ -593,9 +575,7 @@ final class JsonViewTest extends UnitTestCase self::assertSame($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function renderRendersMultipleValuesIfTheyAreSpecifiedAsVariablesToRender(): void { $this->view @@ -609,9 +589,7 @@ final class JsonViewTest extends UnitTestCase self::assertSame($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function renderCanRenderMultipleComplexObjects(): void { $array = ['foo' => ['bar' => 'Baz']]; @@ -629,9 +607,7 @@ final class JsonViewTest extends UnitTestCase self::assertSame($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function renderCanRenderPlainArray(): void { $array = [['name' => 'Foo', 'secret' => true], ['name' => 'Bar', 'secret' => true]]; @@ -650,9 +626,7 @@ final class JsonViewTest extends UnitTestCase self::assertSame($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function renderCanRenderPlainArrayWithNumericKeys(): void { $array = [ @@ -677,9 +651,7 @@ final class JsonViewTest extends UnitTestCase self::assertSame($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function descendAllKeepsArrayIndexes(): void { $array = [['name' => 'Foo', 'secret' => true], ['name' => 'Bar', 'secret' => true]]; diff --git a/typo3/sysext/extbase/Tests/Unit/Mvc/Web/RequestBuilderDefaultValuesTest.php b/typo3/sysext/extbase/Tests/Unit/Mvc/Web/RequestBuilderDefaultValuesTest.php index e779b0d74c044fb7deda36fdec676feddbee1dab..2cf972f82b4051f1a47caa9f0d36009b3b3d7222 100644 --- a/typo3/sysext/extbase/Tests/Unit/Mvc/Web/RequestBuilderDefaultValuesTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Mvc/Web/RequestBuilderDefaultValuesTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Mvc\Web; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extbase\Mvc\Controller\ActionController; use TYPO3\CMS\Extbase\Mvc\Web\RequestBuilderDefaultValues; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -38,18 +39,14 @@ final class RequestBuilderDefaultValuesTest extends UnitTestCase ], ]; - /** - * @test - */ + #[Test] public function fromConfigurationThrowsExceptionIfConfigurationMissesExtensionName(): void { self::expectExceptionCode(1289843275); RequestBuilderDefaultValues::fromConfiguration([]); } - /** - * @test - */ + #[Test] public function fromConfigurationThrowsExceptionIfConfigurationMissesPluginName(): void { self::expectExceptionCode(1289843277); @@ -58,9 +55,7 @@ final class RequestBuilderDefaultValuesTest extends UnitTestCase ]); } - /** - * @test - */ + #[Test] public function fromConfigurationThrowsExceptionIfConfigurationMissesControllerConfigurations(): void { self::expectExceptionCode(1316104317); @@ -70,9 +65,7 @@ final class RequestBuilderDefaultValuesTest extends UnitTestCase ]); } - /** - * @test - */ + #[Test] public function fromConfigurationSetsExtensionName(): void { $defaultValues = RequestBuilderDefaultValues::fromConfiguration(self::MINIMAL_WORKING_CONFIGURATION); @@ -80,9 +73,7 @@ final class RequestBuilderDefaultValuesTest extends UnitTestCase self::assertSame('news', $defaultValues->getExtensionName()); } - /** - * @test - */ + #[Test] public function fromConfigurationSetsPluginName(): void { $defaultValues = RequestBuilderDefaultValues::fromConfiguration(self::MINIMAL_WORKING_CONFIGURATION); @@ -90,9 +81,7 @@ final class RequestBuilderDefaultValuesTest extends UnitTestCase self::assertSame('list', $defaultValues->getPluginName()); } - /** - * @test - */ + #[Test] public function fromConfigurationFallsBackToDefaultFormat(): void { $defaultValues = RequestBuilderDefaultValues::fromConfiguration(self::MINIMAL_WORKING_CONFIGURATION); @@ -100,9 +89,7 @@ final class RequestBuilderDefaultValuesTest extends UnitTestCase self::assertSame('html', $defaultValues->getDefaultFormat()); } - /** - * @test - */ + #[Test] public function fromConfigurationSetsFormat(): void { $defaultValues = RequestBuilderDefaultValues::fromConfiguration( @@ -114,9 +101,7 @@ final class RequestBuilderDefaultValuesTest extends UnitTestCase self::assertSame('json', $defaultValues->getDefaultFormat()); } - /** - * @test - */ + #[Test] public function fromConfigurationSetsDefaultControllerClassName(): void { $defaultValues = RequestBuilderDefaultValues::fromConfiguration(self::MINIMAL_WORKING_CONFIGURATION); @@ -124,9 +109,7 @@ final class RequestBuilderDefaultValuesTest extends UnitTestCase self::assertSame(ActionController::class, $defaultValues->getDefaultControllerClassName()); } - /** - * @test - */ + #[Test] public function fromConfigurationSetsDefaultControllerAlias(): void { $defaultValues = RequestBuilderDefaultValues::fromConfiguration(self::MINIMAL_WORKING_CONFIGURATION); @@ -134,9 +117,7 @@ final class RequestBuilderDefaultValuesTest extends UnitTestCase self::assertSame('ActionController', $defaultValues->getDefaultControllerAlias()); } - /** - * @test - */ + #[Test] public function getControllerAliasForControllerClassName(): void { $defaultValues = RequestBuilderDefaultValues::fromConfiguration(self::MINIMAL_WORKING_CONFIGURATION); @@ -144,9 +125,7 @@ final class RequestBuilderDefaultValuesTest extends UnitTestCase self::assertSame('ActionController', $defaultValues->getControllerAliasForControllerClassName(ActionController::class)); } - /** - * @test - */ + #[Test] public function getControllerClassNameForAlias(): void { $defaultValues = RequestBuilderDefaultValues::fromConfiguration(self::MINIMAL_WORKING_CONFIGURATION); @@ -154,9 +133,7 @@ final class RequestBuilderDefaultValuesTest extends UnitTestCase self::assertSame(ActionController::class, $defaultValues->getControllerClassNameForAlias('ActionController')); } - /** - * @test - */ + #[Test] public function getAllowedControllerActions(): void { $defaultValues = RequestBuilderDefaultValues::fromConfiguration(self::MINIMAL_WORKING_CONFIGURATION); @@ -164,9 +141,7 @@ final class RequestBuilderDefaultValuesTest extends UnitTestCase self::assertSame([ActionController::class => ['list', 'show']], $defaultValues->getAllowedControllerActions()); } - /** - * @test - */ + #[Test] public function getControllerAliasToClassMapping(): void { $defaultValues = RequestBuilderDefaultValues::fromConfiguration(self::MINIMAL_WORKING_CONFIGURATION); @@ -174,9 +149,7 @@ final class RequestBuilderDefaultValuesTest extends UnitTestCase self::assertSame(['ActionController' => ActionController::class], $defaultValues->getControllerAliasToClassMapping()); } - /** - * @test - */ + #[Test] public function getControllerClassToAliasMapping(): void { $defaultValues = RequestBuilderDefaultValues::fromConfiguration(self::MINIMAL_WORKING_CONFIGURATION); diff --git a/typo3/sysext/extbase/Tests/Unit/Mvc/Web/Routing/UriBuilderTest.php b/typo3/sysext/extbase/Tests/Unit/Mvc/Web/Routing/UriBuilderTest.php index 459e9e09a6bce51c68df4d633e6833a7f3cbd27f..ff771acbc4e6543fb45318186e22deca80d46529 100644 --- a/typo3/sysext/extbase/Tests/Unit/Mvc/Web/Routing/UriBuilderTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Mvc/Web/Routing/UriBuilderTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Mvc\Web\Routing; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\Exception; use PHPUnit\Framework\MockObject\MockObject; use Psr\Http\Message\ServerRequestInterface; @@ -91,9 +93,7 @@ final class UriBuilderTest extends UnitTestCase return (new ServerRequest(new Uri($baseUri)))->withAttribute('route', new Route('/test/Path', ['_identifier' => $routeIdentifier])); } - /** - * @test - */ + #[Test] public function settersAndGettersWorkAsExpected(): void { $this->subject @@ -124,9 +124,7 @@ final class UriBuilderTest extends UnitTestCase self::assertTrue($this->subject->getNoCache()); } - /** - * @test - */ + #[Test] public function uriForPrefixesArgumentsWithExtensionAndPluginNameAndSetsControllerArgument(): void { $expectedArguments = ['foo' => 'bar', 'baz' => ['extbase' => 'fluid'], 'controller' => 'SomeController']; @@ -136,9 +134,7 @@ final class UriBuilderTest extends UnitTestCase self::assertEquals($expectedArguments, $this->subject->getArguments()); } - /** - * @test - */ + #[Test] public function uriForRecursivelyMergesAndOverrulesControllerArgumentsWithArguments(): void { $arguments = ['foo' => 'bar', 'additionalParam' => 'additionalValue']; @@ -150,9 +146,7 @@ final class UriBuilderTest extends UnitTestCase self::assertEquals($expectedArguments, $this->subject->getArguments()); } - /** - * @test - */ + #[Test] public function uriForOnlySetsActionArgumentIfSpecified(): void { $expectedArguments = ['controller' => 'SomeController']; @@ -161,9 +155,7 @@ final class UriBuilderTest extends UnitTestCase self::assertEquals($expectedArguments, $this->subject->getArguments()); } - /** - * @test - */ + #[Test] public function uriForSetsControllerFromRequestIfControllerIsNotSet(): void { $this->mockRequest->expects(self::once())->method('getControllerName')->willReturn('SomeControllerFromRequest'); @@ -173,9 +165,7 @@ final class UriBuilderTest extends UnitTestCase self::assertEquals($expectedArguments, $this->subject->getArguments()); } - /** - * @test - */ + #[Test] public function uriForSetsExtensionNameFromRequestIfExtensionNameIsNotSet(): void { $this->mockRequest->expects(self::once())->method('getControllerExtensionName')->willReturn('SomeExtensionNameFromRequest'); @@ -185,9 +175,7 @@ final class UriBuilderTest extends UnitTestCase self::assertEquals($expectedArguments, $this->subject->getArguments()); } - /** - * @test - */ + #[Test] public function uriForSetsPluginNameFromRequestIfPluginNameIsNotSetInFrontend(): void { $this->mockExtensionService->expects(self::once())->method('getPluginNamespace')->willReturn('tx_someextension_somepluginnamefromrequest'); @@ -197,9 +185,7 @@ final class UriBuilderTest extends UnitTestCase $this->subject->uriFor(null, [], 'SomeController', 'SomeExtension'); self::assertEquals($expectedArguments, $this->subject->getArguments()); } - /** - * @test - */ + #[Test] public function uriForSetsPluginNameFromRequestIfPluginNameIsNotSet(): void { $this->mockRequest->expects(self::once())->method('getPluginName')->willReturn('SomePluginNameFromRequest'); @@ -209,9 +195,7 @@ final class UriBuilderTest extends UnitTestCase self::assertEquals($expectedArguments, $this->subject->getArguments()); } - /** - * @test - */ + #[Test] public function buildBackendUriKeepsQueryParametersIfAddQueryStringIsSet(): void { $extbaseParameters = new ExtbaseRequestParameters(); @@ -230,9 +214,7 @@ final class UriBuilderTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function buildBackendUriRouteAttributeOverrulesGetParameterIfAddQueryStringIsSet(): void { $extbaseParameters = new ExtbaseRequestParameters(); @@ -314,10 +296,8 @@ final class UriBuilderTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider buildBackendUriRemovesSpecifiedQueryParametersIfArgumentsToBeExcludedFromQueryStringIsSetDataProvider - */ + #[DataProvider('buildBackendUriRemovesSpecifiedQueryParametersIfArgumentsToBeExcludedFromQueryStringIsSetDataProvider')] + #[Test] public function buildBackendUriRemovesSpecifiedQueryParametersIfArgumentsToBeExcludedFromQueryStringIsSet(array $parameters, array $excluded, string $expected): void { $serverRequest = $this->getRequestWithRouteAttribute() @@ -336,9 +316,7 @@ final class UriBuilderTest extends UnitTestCase self::assertEquals($expected, $actualResult); } - /** - * @test - */ + #[Test] public function buildBackendUriKeepsModuleQueryParametersIfAddQueryStringIsNotSet(): void { $serverRequest = $this->getRequestWithRouteAttribute() @@ -352,9 +330,7 @@ final class UriBuilderTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function buildBackendUriMergesAndOverrulesQueryParametersWithArguments(): void { $serverRequest = $this->getRequestWithRouteAttribute() @@ -368,9 +344,7 @@ final class UriBuilderTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function buildBackendUriConvertsDomainObjectsAfterArgumentsHaveBeenMerged(): void { $serverRequest = $this->getRequestWithRouteAttribute() @@ -385,9 +359,7 @@ final class UriBuilderTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function buildBackendUriRespectsSection(): void { $serverRequest = $this->getRequestWithRouteAttribute() @@ -400,9 +372,7 @@ final class UriBuilderTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function buildBackendUriCreatesAbsoluteUrisIfSpecified(): void { $request = $this->getRequestWithRouteAttribute(baseUri: 'http://baseuri/typo3/') @@ -420,9 +390,7 @@ final class UriBuilderTest extends UnitTestCase self::assertSame($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function buildBackendRespectsGivenControllerActionArguments(): void { $serverRequest = $this @@ -436,9 +404,7 @@ final class UriBuilderTest extends UnitTestCase self::assertSame($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function buildBackendOverwritesSubRouteIdentifierControllerActionArguments(): void { $serverRequest = $this @@ -452,9 +418,7 @@ final class UriBuilderTest extends UnitTestCase self::assertSame($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function buildFrontendUriCreatesTypoLink(): void { $uriBuilder = $this->getAccessibleMock(UriBuilder::class, ['buildTypolinkConfiguration']); @@ -464,9 +428,7 @@ final class UriBuilderTest extends UnitTestCase $uriBuilder->buildFrontendUri(); } - /** - * @test - */ + #[Test] public function buildFrontendUriCreatesRelativeUrisByDefault(): void { $this->mockContentObject->expects(self::once())->method('createUrl')->willReturn('relative/uri'); @@ -475,9 +437,7 @@ final class UriBuilderTest extends UnitTestCase self::assertSame($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function buildFrontendUriDoesNotStripLeadingSlashesFromRelativeUris(): void { $this->mockContentObject->expects(self::once())->method('createUrl')->willReturn('/relative/uri'); @@ -486,9 +446,7 @@ final class UriBuilderTest extends UnitTestCase self::assertSame($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function buildFrontendUriCreatesAbsoluteUrisIfSpecified(): void { $uriBuilder = $this->getAccessibleMock(UriBuilder::class, ['buildTypolinkConfiguration']); @@ -501,9 +459,7 @@ final class UriBuilderTest extends UnitTestCase self::assertSame($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function buildFrontendUriSetsAbsoluteUriSchemeIfSpecified(): void { $uriBuilder = $this->getAccessibleMock(UriBuilder::class, ['buildTypolinkConfiguration']); @@ -517,9 +473,7 @@ final class UriBuilderTest extends UnitTestCase self::assertSame($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function buildFrontendUriDoesNotSetAbsoluteUriSchemeIfCreateAbsoluteUriIsFalse(): void { $uriBuilder = $this->getAccessibleMock(UriBuilder::class, ['buildTypolinkConfiguration']); @@ -533,9 +487,7 @@ final class UriBuilderTest extends UnitTestCase self::assertSame($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function resetSetsAllOptionsToTheirDefaultValue(): void { $this->subject @@ -569,9 +521,7 @@ final class UriBuilderTest extends UnitTestCase self::assertNull($this->subject->getAbsoluteUriScheme()); } - /** - * @test - */ + #[Test] public function buildTypolinkConfigurationRespectsSpecifiedTargetPageUid(): void { $GLOBALS['TSFE']->id = 123; @@ -581,9 +531,7 @@ final class UriBuilderTest extends UnitTestCase self::assertEquals($expectedConfiguration, $actualConfiguration); } - /** - * @test - */ + #[Test] public function buildTypolinkConfigurationUsesCurrentPageUidIfTargetPageUidIsNotSet(): void { $GLOBALS['TSFE']->id = 123; @@ -592,9 +540,7 @@ final class UriBuilderTest extends UnitTestCase self::assertEquals($expectedConfiguration, $actualConfiguration); } - /** - * @test - */ + #[Test] public function buildTypolinkConfigurationProperlySetsAdditionalArguments(): void { $this->subject->setTargetPageUid(123); @@ -648,10 +594,8 @@ final class UriBuilderTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider buildTypolinkConfigurationProperlySetsAddQueryStringDataProvider - */ + #[DataProvider('buildTypolinkConfigurationProperlySetsAddQueryStringDataProvider')] + #[Test] public function buildTypolinkConfigurationProperlySetsAddQueryString( bool|string|int|null $addQueryString, array $expectedConfiguration @@ -664,9 +608,7 @@ final class UriBuilderTest extends UnitTestCase self::assertEquals($expectedConfiguration, $actualConfiguration); } - /** - * @test - */ + #[Test] public function buildTypolinkConfigurationConvertsDomainObjects(): void { $mockDomainObject1 = $this->getAccessibleMock(AbstractEntity::class, null); @@ -680,9 +622,7 @@ final class UriBuilderTest extends UnitTestCase self::assertEquals($expectedConfiguration, $actualConfiguration); } - /** - * @test - */ + #[Test] public function buildTypolinkConfigurationResolvesPageTypeFromFormat(): void { $this->subject->setTargetPageUid(123); @@ -703,9 +643,7 @@ final class UriBuilderTest extends UnitTestCase self::assertEquals($expectedConfiguration, $actualConfiguration); } - /** - * @test - */ + #[Test] public function buildTypolinkConfigurationResolvesDefaultPageTypeFromFormatIfNoMappingIsConfigured(): void { $this->subject->setTargetPageUid(123); @@ -725,9 +663,7 @@ final class UriBuilderTest extends UnitTestCase self::assertEquals($expectedConfiguration, $actualConfiguration); } - /** - * @test - */ + #[Test] public function buildTypolinkConfigurationResolvesDefaultPageTypeFromFormatIfFormatIsNotMapped(): void { $this->subject->setTargetPageUid(123); @@ -748,9 +684,7 @@ final class UriBuilderTest extends UnitTestCase self::assertEquals($expectedConfiguration, $actualConfiguration); } - /** - * @test - */ + #[Test] public function buildTypolinkConfigurationDisablesCacheHashIfNoCacheIsSet(): void { $this->subject->setTargetPageUid(123); @@ -760,9 +694,7 @@ final class UriBuilderTest extends UnitTestCase self::assertEquals($expectedConfiguration, $actualConfiguration); } - /** - * @test - */ + #[Test] public function buildTypolinkConfigurationConsidersSection(): void { $this->subject->setTargetPageUid(123); @@ -772,9 +704,7 @@ final class UriBuilderTest extends UnitTestCase self::assertEquals($expectedConfiguration, $actualConfiguration); } - /** - * @test - */ + #[Test] public function buildTypolinkConfigurationLinkAccessRestrictedPagesSetting(): void { $this->subject->setTargetPageUid(123); @@ -784,9 +714,7 @@ final class UriBuilderTest extends UnitTestCase self::assertEquals($expectedConfiguration, $actualConfiguration); } - /** - * @test - */ + #[Test] public function convertDomainObjectsToIdentityArraysConvertsDomainObjects(): void { $mockDomainObject1 = $this->getAccessibleMock(AbstractEntity::class, null); @@ -798,9 +726,7 @@ final class UriBuilderTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function convertDomainObjectsToIdentityArraysConvertsObjectStoragesWithDomainObjects(): void { $objectStorage = new ObjectStorage(); @@ -812,9 +738,7 @@ final class UriBuilderTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function conversionOfTransientObjectsIsInvoked(): void { $mockValueObject = new ValueObjectFixture(); @@ -826,9 +750,7 @@ final class UriBuilderTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function conversionOfTransientObjectsThrowsExceptionForOtherThanValueObjects(): void { $this->expectException(InvalidArgumentValueException::class); @@ -839,9 +761,7 @@ final class UriBuilderTest extends UnitTestCase $mockUriBuilder->_call('convertDomainObjectsToIdentityArrays', ['object' => $mockEntity]); } - /** - * @test - */ + #[Test] public function transientObjectsAreConvertedToAnArrayOfProperties(): void { $mockValueObject = new ValueObjectFixture(); @@ -852,9 +772,7 @@ final class UriBuilderTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function transientObjectsWithObjectStorageAreConvertedToAnArrayOfProperties(): void { $mockValueObject = new ValueObjectFixture(); @@ -882,9 +800,7 @@ final class UriBuilderTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function transientObjectsAreRecursivelyConverted(): void { $mockInnerValueObject2 = new ValueObjectFixture(); @@ -919,10 +835,8 @@ final class UriBuilderTest extends UnitTestCase ]; } - /** - * @dataProvider convertIteratorToArrayConvertsIteratorsToArrayProvider - * @test - */ + #[DataProvider('convertIteratorToArrayConvertsIteratorsToArrayProvider')] + #[Test] public function convertIteratorToArrayConvertsIteratorsToArray($iterator): void { $result = $this->subject->_call('convertIteratorToArray', $iterator); diff --git a/typo3/sysext/extbase/Tests/Unit/Persistence/ClassesConfigurationFactoryTest.php b/typo3/sysext/extbase/Tests/Unit/Persistence/ClassesConfigurationFactoryTest.php index 8193c13a07c3ab96297306318a1ea03ecd030cf6..51697cd1b14b08574f504052a74494013c7b43d9 100644 --- a/typo3/sysext/extbase/Tests/Unit/Persistence/ClassesConfigurationFactoryTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Persistence/ClassesConfigurationFactoryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Persistence; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Cache\Frontend\NullFrontend; use TYPO3\CMS\Core\Package\PackageManager; use TYPO3\CMS\Core\Service\DependencyOrderingService; @@ -31,9 +32,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; */ final class ClassesConfigurationFactoryTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function inheritPropertiesFromParentClasses(): void { $classesConfigurationFactory = new ClassesConfigurationFactory(new NullFrontend('extbase'), new PackageManager(new DependencyOrderingService()), 'PersistenceClasses'); diff --git a/typo3/sysext/extbase/Tests/Unit/Persistence/ClassesConfigurationTest.php b/typo3/sysext/extbase/Tests/Unit/Persistence/ClassesConfigurationTest.php index a65d8ffe49bc93f7ca71d3bf8126bb07583f1715..1e20717b24e8b8132751f03b374853c252a6bf87 100644 --- a/typo3/sysext/extbase/Tests/Unit/Persistence/ClassesConfigurationTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Persistence/ClassesConfigurationTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Persistence; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extbase\Persistence\ClassesConfiguration; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -25,9 +27,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; */ final class ClassesConfigurationTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function hasClassReturnsTrue(): void { $className = 'ClassName'; @@ -35,9 +35,7 @@ final class ClassesConfigurationTest extends UnitTestCase self::assertTrue($classesConfiguration->hasClass($className)); } - /** - * @test - */ + #[Test] public function hasClassReturnsFalse(): void { $className = 'ClassName'; @@ -45,9 +43,7 @@ final class ClassesConfigurationTest extends UnitTestCase self::assertFalse($classesConfiguration->hasClass($className)); } - /** - * @test - */ + #[Test] public function getConfigurationForReturnsArray(): void { $configuration = [ @@ -62,9 +58,7 @@ final class ClassesConfigurationTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function getConfigurationForReturnsNull(): void { $classesConfiguration = new ClassesConfiguration([]); @@ -154,10 +148,8 @@ final class ClassesConfigurationTest extends UnitTestCase ]; } - /** - * @dataProvider resolveSubclassesRecursiveDataProvider - * @test - */ + #[DataProvider('resolveSubclassesRecursiveDataProvider')] + #[Test] public function getSubclasses(array $expected, array $configuration, string $className): void { $classesConfiguration = new ClassesConfiguration($configuration); diff --git a/typo3/sysext/extbase/Tests/Unit/Persistence/Generic/BackendTest.php b/typo3/sysext/extbase/Tests/Unit/Persistence/Generic/BackendTest.php index 249d3e718155e8bc8071c0da618bbfaa0a5be30d..651f04c923c66ac194e55ecfbf60ec12e3b88bc9 100644 --- a/typo3/sysext/extbase/Tests/Unit/Persistence/Generic/BackendTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Persistence/Generic/BackendTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Persistence\Generic; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface; use TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface; @@ -37,9 +38,7 @@ final class BackendTest extends UnitTestCase parent::tearDown(); } - /** - * @test - */ + #[Test] public function insertRelationInRelationtableSetsMmMatchFieldsInRow(): void { $fixture = $this->getAccessibleMock(Backend::class, null, [], '', false); @@ -85,9 +84,7 @@ final class BackendTest extends UnitTestCase $fixture->_call('insertRelationInRelationtable', $domainObject, $domainObject, ''); } - /** - * @test - */ + #[Test] public function getIdentifierByObjectWithStringInsteadOfObjectReturnsNull(): void { $session = $this->createMock(Session::class); @@ -99,9 +96,7 @@ final class BackendTest extends UnitTestCase self::assertNull($backend->getIdentifierByObject('invalidObject')); } - /** - * @test - */ + #[Test] public function getIdentifierByObjectReturnsIdentifierForNonLazyObject(): void { $fakeUuid = 'fakeUuid'; @@ -120,9 +115,7 @@ final class BackendTest extends UnitTestCase self::assertEquals($backend->getIdentifierByObject($object), $fakeUuid); } - /** - * @test - */ + #[Test] public function getIdentifierByObjectReturnsIdentifierForLazyObject(): void { $fakeUuid = 'fakeUuid'; diff --git a/typo3/sysext/extbase/Tests/Unit/Persistence/Generic/Mapper/DataMapFactoryTest.php b/typo3/sysext/extbase/Tests/Unit/Persistence/Generic/Mapper/DataMapFactoryTest.php index 666f6cda4b4744b77f4bc115de88a3d38a993fe6..07205b84c0e2d1e62761c88d3fe55fda49999a51 100644 --- a/typo3/sysext/extbase/Tests/Unit/Persistence/Generic/Mapper/DataMapFactoryTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Persistence/Generic/Mapper/DataMapFactoryTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Persistence\Generic\Mapper; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Belog\Domain\Model\LogEntry; use TYPO3\CMS\Core\Cache\Frontend\VariableFrontend; use TYPO3\CMS\Extbase\Persistence\Generic\Exception\InvalidClassException; @@ -25,9 +27,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class DataMapFactoryTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function buildDataMapThrowsExceptionIfClassNameIsNotKnown(): void { $this->expectException(InvalidClassException::class); @@ -53,10 +53,8 @@ final class DataMapFactoryTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider classNameTableNameMappings - */ + #[DataProvider('classNameTableNameMappings')] + #[Test] public function resolveTableNameReturnsExpectedTablenames($className, $expected): void { $subject = $this->getAccessibleMock(DataMapFactory::class, null, [], '', false); diff --git a/typo3/sysext/extbase/Tests/Unit/Persistence/Generic/Mapper/DataMapperTest.php b/typo3/sysext/extbase/Tests/Unit/Persistence/Generic/Mapper/DataMapperTest.php index ac0a4592eef091381f67b018076e5b14df84eb95..58e530646455ee091b61cf52e73e65c87f93356a 100644 --- a/typo3/sysext/extbase/Tests/Unit/Persistence/Generic/Mapper/DataMapperTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Persistence/Generic/Mapper/DataMapperTest.php @@ -18,6 +18,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Persistence\Generic\Mapper; use Doctrine\Instantiator\InstantiatorInterface; +use PHPUnit\Framework\Attributes\Test; use Psr\EventDispatcher\EventDispatcherInterface; use TYPO3\CMS\Core\Cache\CacheManager; use TYPO3\CMS\Extbase\Configuration\ConfigurationManager; @@ -71,9 +72,7 @@ final class DataMapperTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function getOrderingsForColumnMapReturnsNullIfNeitherForeignSortByNorForeignDefaultSortByAreSet(): void { // Arrange @@ -91,9 +90,7 @@ final class DataMapperTest extends UnitTestCase self::assertNull($orderings); } - /** - * @test - */ + #[Test] public function getOrderingsForColumnMapReturnsNullIfForeignDefaultSortByIsEmpty(): void { // Arrange @@ -112,9 +109,7 @@ final class DataMapperTest extends UnitTestCase self::assertNull($orderings); } - /** - * @test - */ + #[Test] public function getOrderingsForColumnMapFallBackToAscendingOrdering(): void { // Arrange @@ -136,9 +131,7 @@ final class DataMapperTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function setOneToManyRelationDetectsForeignSortBy(): void { // Arrange @@ -160,9 +153,7 @@ final class DataMapperTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function setOneToManyRelationDetectsForeignSortByWithForeignDefaultSortBy(): void { // Arrange @@ -185,9 +176,7 @@ final class DataMapperTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function setOneToManyRelationDetectsForeignDefaultSortByWithoutDirection(): void { // Arrange @@ -209,9 +198,7 @@ final class DataMapperTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function setOneToManyRelationDetectsForeignDefaultSortByWithDirection(): void { // Arrange @@ -233,9 +220,7 @@ final class DataMapperTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function setOneToManyRelationDetectsMultipleForeignDefaultSortByWithAndWithoutDirection(): void { // Arrange diff --git a/typo3/sysext/extbase/Tests/Unit/Persistence/Generic/PersistenceManagerTest.php b/typo3/sysext/extbase/Tests/Unit/Persistence/Generic/PersistenceManagerTest.php index 607c914a8a9d78f73d150c6c5f7ea3a384b95c6e..21e84acf53d417f083769be18462739e95b90a4c 100644 --- a/typo3/sysext/extbase/Tests/Unit/Persistence/Generic/PersistenceManagerTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Persistence/Generic/PersistenceManagerTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Persistence\Generic; +use PHPUnit\Framework\Attributes\Test; use Psr\Container\ContainerInterface; use TYPO3\CMS\Core\Utility\StringUtility; use TYPO3\CMS\Extbase\DomainObject\AbstractEntity; @@ -32,9 +33,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class PersistenceManagerTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function persistAllPassesAddedObjectsToBackend(): void { $entity2 = new Entity2(); @@ -53,9 +52,7 @@ final class PersistenceManagerTest extends UnitTestCase $manager->persistAll(); } - /** - * @test - */ + #[Test] public function persistAllPassesRemovedObjectsToBackend(): void { $entity2 = new Entity2(); @@ -74,9 +71,7 @@ final class PersistenceManagerTest extends UnitTestCase $manager->persistAll(); } - /** - * @test - */ + #[Test] public function getIdentifierByObjectReturnsIdentifierFromBackend(): void { $fakeUuid = 'fakeUuid'; @@ -94,9 +89,7 @@ final class PersistenceManagerTest extends UnitTestCase self::assertEquals($manager->getIdentifierByObject($object), $fakeUuid); } - /** - * @test - */ + #[Test] public function getObjectByIdentifierReturnsObjectFromSessionIfAvailable(): void { $fakeUuid = 'fakeUuid'; @@ -115,9 +108,7 @@ final class PersistenceManagerTest extends UnitTestCase self::assertEquals($manager->getObjectByIdentifier($fakeUuid, $object::class), $object); } - /** - * @test - */ + #[Test] public function getObjectByIdentifierReturnsObjectFromPersistenceIfAvailable(): void { $fakeUuid = '42'; @@ -142,9 +133,7 @@ final class PersistenceManagerTest extends UnitTestCase self::assertEquals($manager->getObjectByIdentifier($fakeUuid, $fakeEntityType), $object); } - /** - * @test - */ + #[Test] public function getObjectByIdentifierReturnsNullForUnknownObject(): void { $fakeUuid = '42'; @@ -171,9 +160,7 @@ final class PersistenceManagerTest extends UnitTestCase self::assertNull($manager->getObjectByIdentifier($fakeUuid, $fakeEntityType)); } - /** - * @test - */ + #[Test] public function addActuallyAddsAnObjectToTheInternalObjectsArray(): void { $someObject = new \stdClass(); @@ -197,9 +184,7 @@ final class PersistenceManagerTest extends UnitTestCase $persistenceManager->persistAll(); } - /** - * @test - */ + #[Test] public function removeActuallyRemovesAnObjectFromTheInternalObjectsArray(): void { $object1 = new \stdClass(); @@ -234,9 +219,7 @@ final class PersistenceManagerTest extends UnitTestCase $persistenceManager->persistAll(); } - /** - * @test - */ + #[Test] public function removeRemovesTheRightObjectEvenIfItHasBeenModifiedSinceItsAddition(): void { $object1 = new \ArrayObject(['val' => '1']); @@ -277,9 +260,8 @@ final class PersistenceManagerTest extends UnitTestCase /** * Make sure we remember the objects that are not currently add()ed * but might be in persistent storage. - * - * @test */ + #[Test] public function removeRetainsObjectForObjectsNotInCurrentSession(): void { $object = new \ArrayObject(['val' => '1']); @@ -303,9 +285,7 @@ final class PersistenceManagerTest extends UnitTestCase $persistenceManager->persistAll(); } - /** - * @test - */ + #[Test] public function updateSchedulesAnObjectForPersistence(): void { $className = StringUtility::getUniqueId('BazFixture'); @@ -356,9 +336,7 @@ final class PersistenceManagerTest extends UnitTestCase $persistenceManager->persistAll(); } - /** - * @test - */ + #[Test] public function tearDownWithBackendSupportingTearDownDelegatesCallToBackend(): void { $mockBackend = $this->getMockBuilder(BackendInterface::class) @@ -376,9 +354,7 @@ final class PersistenceManagerTest extends UnitTestCase $persistenceManager->tearDown(); } - /** - * @test - */ + #[Test] public function persistAllAddsNamespacedReconstitutedObjectFromSessionToBackendsAggregateRootObjects(): void { $className = StringUtility::getUniqueId('BazFixture'); diff --git a/typo3/sysext/extbase/Tests/Unit/Persistence/Generic/QueryFactoryTest.php b/typo3/sysext/extbase/Tests/Unit/Persistence/Generic/QueryFactoryTest.php index 13fbd4ec434f559d61b9ccb8468b91e6bd7bd195..c24923b5ff7afe8c36453fbff2fc16fc825be925 100644 --- a/typo3/sysext/extbase/Tests/Unit/Persistence/Generic/QueryFactoryTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Persistence/Generic/QueryFactoryTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Persistence\Generic; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use Psr\Container\ContainerInterface; use TYPO3\CMS\Core\Context\Context; @@ -77,10 +79,9 @@ final class QueryFactoryTest extends UnitTestCase * @param bool $static * @param bool $rootLevel * @param bool $expectedResult - * - * @dataProvider getStaticAndRootLevelAndExpectedResult - * @test */ + #[DataProvider('getStaticAndRootLevelAndExpectedResult')] + #[Test] public function createDoesNotRespectStoragePageIfStaticOrRootLevelIsTrue($static, $rootLevel, $expectedResult): void { $this->dataMap->method('getIsStatic')->willReturn($static); diff --git a/typo3/sysext/extbase/Tests/Unit/Persistence/Generic/QueryResultTest.php b/typo3/sysext/extbase/Tests/Unit/Persistence/Generic/QueryResultTest.php index c72c80ac86691304d95607355103475e25c1d8de..0028ddc02d3feb85ad6cac62b44d7ef6cf2d46b5 100644 --- a/typo3/sysext/extbase/Tests/Unit/Persistence/Generic/QueryResultTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Persistence/Generic/QueryResultTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Persistence\Generic; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extbase\Persistence\Generic\Mapper\DataMapper; use TYPO3\CMS\Extbase\Persistence\Generic\QueryResult; use TYPO3\CMS\Extbase\Persistence\PersistenceManagerInterface; @@ -65,27 +66,21 @@ final class QueryResultTest extends UnitTestCase $this->mockDataMapper->method('map')->willReturn($this->sampleResult); } - /** - * @test - */ + #[Test] public function getQueryReturnsQueryObject(): void { $this->queryResult->setQuery($this->mockQuery); self::assertInstanceOf(QueryInterface::class, $this->queryResult->getQuery()); } - /** - * @test - */ + #[Test] public function getQueryReturnsAClone(): void { $this->queryResult->setQuery($this->mockQuery); self::assertNotSame($this->mockQuery, $this->queryResult->getQuery()); } - /** - * @test - */ + #[Test] public function offsetExistsWorksAsExpected(): void { $this->queryResult->setQuery($this->mockQuery); @@ -94,9 +89,7 @@ final class QueryResultTest extends UnitTestCase self::assertFalse($this->queryResult->offsetExists('foo')); } - /** - * @test - */ + #[Test] public function offsetGetWorksAsExpected(): void { $this->queryResult->setQuery($this->mockQuery); @@ -105,9 +98,7 @@ final class QueryResultTest extends UnitTestCase self::assertNull($this->queryResult->offsetGet('foo')); } - /** - * @test - */ + #[Test] public function offsetSetWorksAsExpected(): void { $this->queryResult->setQuery($this->mockQuery); @@ -115,9 +106,7 @@ final class QueryResultTest extends UnitTestCase self::assertInstanceOf(\stdClass::class, $this->queryResult->offsetGet(0)); } - /** - * @test - */ + #[Test] public function offsetUnsetWorksAsExpected(): void { $this->queryResult->setQuery($this->mockQuery); @@ -125,9 +114,7 @@ final class QueryResultTest extends UnitTestCase self::assertFalse($this->queryResult->offsetExists(0)); } - /** - * @test - */ + #[Test] public function countDoesNotInitializeProxy(): void { $queryResult = $this->getAccessibleMock(QueryResult::class, ['initialize'], [], '', false); @@ -138,9 +125,7 @@ final class QueryResultTest extends UnitTestCase $queryResult->count(); } - /** - * @test - */ + #[Test] public function countCallsGetObjectCountByQueryOnPersistenceManager(): void { $queryResult = $this->getAccessibleMock(QueryResult::class, ['initialize'], [], '', false); @@ -150,9 +135,7 @@ final class QueryResultTest extends UnitTestCase self::assertEquals(2, $queryResult->count()); } - /** - * @test - */ + #[Test] public function countCountsQueryResultDirectlyIfAlreadyInitialized(): void { $this->queryResult->setQuery($this->mockQuery); @@ -161,9 +144,7 @@ final class QueryResultTest extends UnitTestCase self::assertEquals(2, $this->queryResult->count()); } - /** - * @test - */ + #[Test] public function countOnlyCallsGetObjectCountByQueryOnPersistenceManagerOnce(): void { $this->queryResult->setQuery($this->mockQuery); @@ -172,9 +153,7 @@ final class QueryResultTest extends UnitTestCase self::assertEquals(2, $this->queryResult->count()); } - /** - * @test - */ + #[Test] public function countCallsGetObjectCountByQueryIfOffsetChanges(): void { $this->queryResult->setQuery($this->mockQuery); @@ -191,9 +170,7 @@ final class QueryResultTest extends UnitTestCase self::assertSame(3, $thirdCount); } - /** - * @test - */ + #[Test] public function iteratorMethodsAreCorrectlyImplemented(): void { $this->queryResult->setQuery($this->mockQuery); @@ -214,9 +191,7 @@ final class QueryResultTest extends UnitTestCase self::assertEquals($array1, $this->queryResult->current()); } - /** - * @test - */ + #[Test] public function initializeExecutesQueryWithArrayFetchMode(): void { $queryResult = $this->getAccessibleMock(QueryResult::class, null, [], '', false); diff --git a/typo3/sysext/extbase/Tests/Unit/Persistence/Generic/QueryTest.php b/typo3/sysext/extbase/Tests/Unit/Persistence/Generic/QueryTest.php index 860dc599721c013bdefad888687ba34360e90894..700fe0f6e84af47bde61b57e69dc43b05101edf4 100644 --- a/typo3/sysext/extbase/Tests/Unit/Persistence/Generic/QueryTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Persistence/Generic/QueryTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Persistence\Generic; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use Psr\Container\ContainerInterface; use TYPO3\CMS\Extbase\Persistence\Generic\Mapper\DataMapFactory; @@ -59,9 +61,7 @@ final class QueryTest extends UnitTestCase $this->query->_set('container', $this->container); } - /** - * @test - */ + #[Test] public function executeReturnsQueryResultInstanceAndInjectsItself(): void { $queryResult = $this->createMock(QueryResult::class); @@ -70,9 +70,7 @@ final class QueryTest extends UnitTestCase self::assertSame($queryResult, $actualResult); } - /** - * @test - */ + #[Test] public function executeReturnsRawObjectDataIfReturnRawQueryResultIsSet(): void { $this->persistenceManager->expects(self::once())->method('getObjectDataByQuery')->with($this->query)->willReturn('rawQueryResult'); @@ -81,9 +79,7 @@ final class QueryTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function setLimitAcceptsOnlyIntegers(): void { $this->expectException(\InvalidArgumentException::class); @@ -91,9 +87,7 @@ final class QueryTest extends UnitTestCase $this->query->setLimit(1.5); } - /** - * @test - */ + #[Test] public function setLimitRejectsIntegersLessThanOne(): void { $this->expectException(\InvalidArgumentException::class); @@ -101,9 +95,7 @@ final class QueryTest extends UnitTestCase $this->query->setLimit(0); } - /** - * @test - */ + #[Test] public function setLimitSetsLimit(): void { $this->query->setLimit(15); @@ -114,9 +106,7 @@ final class QueryTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function unsetLimitWillResetLimitToNull(): void { $this->query->setLimit(15); @@ -127,9 +117,7 @@ final class QueryTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function setOffsetAcceptsOnlyIntegers(): void { $this->expectException(\InvalidArgumentException::class); @@ -137,9 +125,7 @@ final class QueryTest extends UnitTestCase $this->query->setOffset(1.5); } - /** - * @test - */ + #[Test] public function setOffsetRejectsIntegersLessThanZero(): void { $this->expectException(\InvalidArgumentException::class); @@ -160,11 +146,11 @@ final class QueryTest extends UnitTestCase /** * Checks if equals condition makes utf-8 argument lowercase correctly * - * @test - * @dataProvider equalsForCaseSensitiveFalseLowercasesOperandProvider * @param string $propertyName The name of the property to compare against * @param mixed $operand The value to compare with */ + #[DataProvider('equalsForCaseSensitiveFalseLowercasesOperandProvider')] + #[Test] public function equalsForCaseSensitiveFalseLowercasesOperand(string $propertyName, $operand, string $expectedOperand): void { $qomFactory = $this->getAccessibleMock(QueryObjectModelFactory::class, ['comparison']); @@ -174,9 +160,7 @@ final class QueryTest extends UnitTestCase $this->query->equals($propertyName, $operand, false); } - /** - * @test - */ + #[Test] public function logicalAndSupportsMultipleConstraintsAsMethodArguments(): void { $subject = new Query( @@ -197,9 +181,7 @@ final class QueryTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function logicalOrSupportsMultipleConstraintsAsMethodArguments(): void { $subject = new Query( diff --git a/typo3/sysext/extbase/Tests/Unit/Persistence/Generic/SessionTest.php b/typo3/sysext/extbase/Tests/Unit/Persistence/Generic/SessionTest.php index 1933ef8d01c84df3a33dbaa6f446f013209d0d8c..f6b2b1f1d3316c73cf7b415d055ca99ab67e4a7b 100644 --- a/typo3/sysext/extbase/Tests/Unit/Persistence/Generic/SessionTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Persistence/Generic/SessionTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Persistence\Generic; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extbase\DomainObject\AbstractDomainObject; use TYPO3\CMS\Extbase\DomainObject\AbstractEntity; use TYPO3\CMS\Extbase\Persistence\Generic\Session; @@ -24,9 +25,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class SessionTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function objectRegisteredWithRegisterReconstitutedEntityCanBeRetrievedWithGetReconstitutedEntities(): void { $someObject = new class () extends AbstractDomainObject {}; @@ -37,9 +36,7 @@ final class SessionTest extends UnitTestCase self::assertTrue($ReconstitutedEntities->contains($someObject)); } - /** - * @test - */ + #[Test] public function unregisterReconstitutedEntityRemovesObjectFromSession(): void { $someObject = new class () extends AbstractDomainObject {}; @@ -52,9 +49,7 @@ final class SessionTest extends UnitTestCase self::assertFalse($ReconstitutedEntities->contains($someObject)); } - /** - * @test - */ + #[Test] public function hasObjectReturnsTrueForRegisteredObject(): void { $object1 = new class () extends AbstractDomainObject {}; @@ -66,9 +61,7 @@ final class SessionTest extends UnitTestCase self::assertFalse($session->hasObject($object2), 'Session claims it does have unregistered object.'); } - /** - * @test - */ + #[Test] public function hasIdentifierReturnsTrueForRegisteredObject(): void { $object = new class () extends AbstractDomainObject {}; @@ -79,9 +72,7 @@ final class SessionTest extends UnitTestCase self::assertFalse($session->hasIdentifier('67890', $object::class), 'Session claims it does have unregistered object.'); } - /** - * @test - */ + #[Test] public function getIdentifierByObjectReturnsRegisteredUUIDForObject(): void { $object = new class () extends AbstractDomainObject {}; @@ -91,9 +82,7 @@ final class SessionTest extends UnitTestCase self::assertEquals('12345', $session->getIdentifierByObject($object), 'Did not get UUID registered for object.'); } - /** - * @test - */ + #[Test] public function getObjectByIdentifierReturnsRegisteredObjectForUUID(): void { $object = new class () extends AbstractDomainObject {}; @@ -103,9 +92,7 @@ final class SessionTest extends UnitTestCase self::assertSame($session->getObjectByIdentifier('12345', $object::class), $object, 'Did not get object registered for UUID.'); } - /** - * @test - */ + #[Test] public function unregisterObjectRemovesRegisteredObject(): void { $object1 = new class () extends AbstractDomainObject {}; @@ -127,9 +114,7 @@ final class SessionTest extends UnitTestCase self::assertTrue($session->hasIdentifier('67890', $object2::class), 'Session claims it does not have registered object.'); } - /** - * @test - */ + #[Test] public function newSessionIsEmpty(): void { $persistenceSession = new Session(); @@ -137,9 +122,7 @@ final class SessionTest extends UnitTestCase self::assertCount(0, $reconstitutedObjects, 'The reconstituted objects storage was not empty.'); } - /** - * @test - */ + #[Test] public function objectCanBeRegisteredAsReconstituted(): void { $persistenceSession = new Session(); @@ -149,9 +132,7 @@ final class SessionTest extends UnitTestCase self::assertTrue($reconstitutedObjects->contains($entity), 'The object was not registered as reconstituted.'); } - /** - * @test - */ + #[Test] public function objectCanBeUnregisteredAsReconstituted(): void { $persistenceSession = new Session(); diff --git a/typo3/sysext/extbase/Tests/Unit/Persistence/Generic/Typo3QuerySettingsTest.php b/typo3/sysext/extbase/Tests/Unit/Persistence/Generic/Typo3QuerySettingsTest.php index 453d86326b58e7a627c07620bb8579182fd6f50e..0d5a3833348b9a4fbbdfccb8cd683e049b3a0f3c 100644 --- a/typo3/sysext/extbase/Tests/Unit/Persistence/Generic/Typo3QuerySettingsTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Persistence/Generic/Typo3QuerySettingsTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Persistence\Generic; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Context\Context; use TYPO3\CMS\Core\Context\LanguageAspect; use TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface; @@ -68,99 +70,77 @@ final class Typo3QuerySettingsTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider booleanValueProvider - */ + #[DataProvider('booleanValueProvider')] + #[Test] public function setRespectStoragePageSetsRespectStoragePageCorrectly(bool $input): void { $this->subject->setRespectStoragePage($input); self::assertEquals($input, $this->subject->getRespectStoragePage()); } - /** - * @test - */ + #[Test] public function setRespectStoragePageAllowsChaining(): void { self::assertInstanceOf(QuerySettingsInterface::class, $this->subject->setRespectStoragePage(true)); } - /** - * @test - * @dataProvider arrayValueProvider - */ + #[DataProvider('arrayValueProvider')] + #[Test] public function setStoragePageIdsSetsStoragePageIdsCorrectly(array $input): void { $this->subject->setStoragePageIds($input); self::assertEquals($input, $this->subject->getStoragePageIds()); } - /** - * @test - */ + #[Test] public function setStoragePageIdsAllowsChaining(): void { self::assertInstanceOf(QuerySettingsInterface::class, $this->subject->setStoragePageIds([1, 2, 3])); } - /** - * @test - * @dataProvider booleanValueProvider - */ + #[DataProvider('booleanValueProvider')] + #[Test] public function setRespectSysLanguageSetsRespectSysLanguageCorrectly(bool $input): void { $this->subject->setRespectSysLanguage($input); self::assertEquals($input, $this->subject->getRespectSysLanguage()); } - /** - * @test - */ + #[Test] public function setRespectSysLanguageAllowsChaining(): void { self::assertInstanceOf(QuerySettingsInterface::class, $this->subject->setRespectSysLanguage(true)); } - /** - * @test - */ + #[Test] public function setLanguageAspectHasFluentInterface(): void { self::assertSame($this->subject, $this->subject->setLanguageAspect(new LanguageAspect(1))); } - /** - * @test - * @dataProvider booleanValueProvider - */ + #[DataProvider('booleanValueProvider')] + #[Test] public function setIgnoreEnableFieldsSetsIgnoreEnableFieldsCorrectly(bool $input): void { $this->subject->setIgnoreEnableFields($input); self::assertEquals($input, $this->subject->getIgnoreEnableFields()); } - /** - * @test - */ + #[Test] public function setIgnoreEnableFieldsAllowsChaining(): void { self::assertInstanceOf(QuerySettingsInterface::class, $this->subject->setIgnoreEnableFields(true)); } - /** - * @test - * @dataProvider arrayValueProvider - */ + #[DataProvider('arrayValueProvider')] + #[Test] public function setEnableFieldsToBeIgnoredSetsEnableFieldsToBeIgnoredCorrectly(array $input): void { $this->subject->setEnableFieldsToBeIgnored($input); self::assertEquals($input, $this->subject->getEnableFieldsToBeIgnored()); } - /** - * @test - */ + #[Test] public function setEnableFieldsToBeIgnoredAllowsChaining(): void { self::assertInstanceOf( @@ -169,19 +149,15 @@ final class Typo3QuerySettingsTest extends UnitTestCase ); } - /** - * @test - * @dataProvider booleanValueProvider - */ + #[DataProvider('booleanValueProvider')] + #[Test] public function setIncludeDeletedSetsIncludeDeletedCorrectly(bool $input): void { $this->subject->setIncludeDeleted($input); self::assertEquals($input, $this->subject->getIncludeDeleted()); } - /** - * @test - */ + #[Test] public function setIncludeDeletedAllowsChaining(): void { self::assertInstanceOf(QuerySettingsInterface::class, $this->subject->setIncludeDeleted(true)); diff --git a/typo3/sysext/extbase/Tests/Unit/Persistence/ObjectStorageTest.php b/typo3/sysext/extbase/Tests/Unit/Persistence/ObjectStorageTest.php index 707f4a54e47e116e389fae44d31b87747adb8693..8a4add108c38f9a3374e0dff84677e3225104bbb 100644 --- a/typo3/sysext/extbase/Tests/Unit/Persistence/ObjectStorageTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Persistence/ObjectStorageTest.php @@ -17,15 +17,15 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Persistence; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extbase\Persistence\ObjectStorage; use TYPO3\CMS\Extbase\Tests\Unit\Persistence\Fixture\Domain\Model\Entity; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ObjectStorageTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function currentForEmptyStorageReturnsNull(): void { /** @var ObjectStorage<Entity> $objectStorage */ @@ -36,9 +36,7 @@ final class ObjectStorageTest extends UnitTestCase self::assertNull($result); } - /** - * @test - */ + #[Test] public function countForEmptyStorageIsZero(): void { /** @var ObjectStorage<Entity> $objectStorage */ @@ -47,9 +45,7 @@ final class ObjectStorageTest extends UnitTestCase self::assertCount(0, $objectStorage); } - /** - * @test - */ + #[Test] public function getInfoForEmptyStorageReturnsNull(): void { /** @var ObjectStorage<Entity> $objectStorage */ @@ -60,9 +56,7 @@ final class ObjectStorageTest extends UnitTestCase self::assertNull($result); } - /** - * @test - */ + #[Test] public function attachWithInformationMakesAttachedInformationAvailableUsingTheObjectAsKey(): void { /** @var ObjectStorage<Entity> $objectStorage */ @@ -75,9 +69,7 @@ final class ObjectStorageTest extends UnitTestCase self::assertSame($information, $objectStorage[$object]); } - /** - * @test - */ + #[Test] public function attachForEmptyStorageIncreasesCountByOne(): void { /** @var ObjectStorage<Entity> $objectStorage */ @@ -89,9 +81,7 @@ final class ObjectStorageTest extends UnitTestCase self::assertCount(1, $objectStorage); } - /** - * @test - */ + #[Test] public function attachForNonEmptyStorageIncreasesCountByOne(): void { /** @var ObjectStorage<Entity> $objectStorage */ @@ -104,9 +94,7 @@ final class ObjectStorageTest extends UnitTestCase self::assertCount(2, $objectStorage); } - /** - * @test - */ + #[Test] public function attachingAnObjectUsingArrayAssignmentWithInformationIncreasesCountByOne(): void { /** @var ObjectStorage<Entity> $objectStorage */ @@ -119,9 +107,7 @@ final class ObjectStorageTest extends UnitTestCase self::assertCount(2, $objectStorage); } - /** - * @test - */ + #[Test] public function detachForAttachedObjectReducesCountByOne(): void { /** @var ObjectStorage<Entity> $objectStorage */ @@ -137,9 +123,7 @@ final class ObjectStorageTest extends UnitTestCase self::assertCount(1, $objectStorage); } - /** - * @test - */ + #[Test] public function offsetSetIncreasesCountByOne(): void { /** @var ObjectStorage<Entity> $objectStorage */ @@ -152,9 +136,7 @@ final class ObjectStorageTest extends UnitTestCase self::assertCount(2, $objectStorage); } - /** - * @test - */ + #[Test] public function offsetUnsetWithObjectReducesCountByOne(): void { /** @var ObjectStorage<Entity> $objectStorage */ @@ -169,9 +151,7 @@ final class ObjectStorageTest extends UnitTestCase self::assertCount(1, $objectStorage); } - /** - * @test - */ + #[Test] public function offsetUnsetWithIntegerKeyReducesCountByOne(): void { /** @var ObjectStorage<Entity> $objectStorage */ @@ -186,9 +166,7 @@ final class ObjectStorageTest extends UnitTestCase self::assertCount(1, $objectStorage); } - /** - * @test - */ + #[Test] public function offsetGetForNoneExistingIntegerEntryReturnsNull(): void { /** @var ObjectStorage<Entity> $objectStorage */ @@ -197,9 +175,7 @@ final class ObjectStorageTest extends UnitTestCase self::assertNull($objectStorage->offsetGet(1)); } - /** - * @test - */ + #[Test] public function offsetGetForNoneExistingObjectEntryReturnsNull(): void { /** @var ObjectStorage<Entity> $objectStorage */ @@ -209,9 +185,7 @@ final class ObjectStorageTest extends UnitTestCase self::assertNull($objectStorage->offsetGet($object)); } - /** - * @test - */ + #[Test] public function offsetGetForObjectAttachedWithoutWithoutInformationReturnsNull(): void { /** @var ObjectStorage<Entity> $objectStorage */ @@ -222,9 +196,7 @@ final class ObjectStorageTest extends UnitTestCase self::assertNull($objectStorage->offsetGet($object)); } - /** - * @test - */ + #[Test] public function offsetGetForObjectWithInformationAttachedUsingArrayAssignmentReturnsTheAssociatedInformation(): void { /** @var ObjectStorage<Entity> $objectStorage */ @@ -236,9 +208,7 @@ final class ObjectStorageTest extends UnitTestCase self::assertSame($information, $objectStorage->offsetGet($object1)); } - /** - * @test - */ + #[Test] public function offsetGetForObjectWithInformationAttachedUsingAttachReturnsTheAssociatedInformation(): void { /** @var ObjectStorage<Entity> $objectStorage */ @@ -250,9 +220,7 @@ final class ObjectStorageTest extends UnitTestCase self::assertSame($information, $objectStorage->offsetGet($object1)); } - /** - * @test - */ + #[Test] public function offsetGetWithIntegerKeyReturnsTheAssociatedObject(): void { /** @var ObjectStorage<Entity> $objectStorage */ @@ -263,9 +231,7 @@ final class ObjectStorageTest extends UnitTestCase self::assertSame($object, $objectStorage->offsetGet(0)); } - /** - * @test - */ + #[Test] public function offsetExistsWithObjectAddedToStorageReturnsTrue(): void { /** @var ObjectStorage<Entity> $objectStorage */ @@ -276,9 +242,7 @@ final class ObjectStorageTest extends UnitTestCase self::assertTrue($objectStorage->offsetExists($object)); } - /** - * @test - */ + #[Test] public function offsetExistsWithObjectNotAddedToStorageReturnsFalse(): void { /** @var ObjectStorage<Entity> $objectStorage */ @@ -287,9 +251,7 @@ final class ObjectStorageTest extends UnitTestCase self::assertFalse($objectStorage->offsetExists(new Entity())); } - /** - * @test - */ + #[Test] public function offsetExistsWithIntegerKeyInStorageReturnsTrue(): void { /** @var ObjectStorage<Entity> $objectStorage */ @@ -300,9 +262,7 @@ final class ObjectStorageTest extends UnitTestCase self::assertTrue($objectStorage->offsetExists(0)); } - /** - * @test - */ + #[Test] public function offsetExistsWithIntegerKeyNotInStorageReturnsFalse(): void { /** @var ObjectStorage<Entity> $objectStorage */ @@ -311,9 +271,7 @@ final class ObjectStorageTest extends UnitTestCase self::assertFalse($objectStorage->offsetExists(0)); } - /** - * @test - */ + #[Test] public function offsetExistsWithNumericStringKeyNotInStorageReturnsFalse(): void { /** @var ObjectStorage<Entity> $objectStorage */ @@ -334,10 +292,8 @@ final class ObjectStorageTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider informationDataProvider - */ + #[DataProvider('informationDataProvider')] + #[Test] public function getInfoReturnsTheInformationAssociatedWithTheCurrentIteratorEntry(mixed $information): void { /** @var ObjectStorage<Entity> $objectStorage */ @@ -349,10 +305,8 @@ final class ObjectStorageTest extends UnitTestCase self::assertSame($information, $objectStorage->getInfo()); } - /** - * @test - * @dataProvider informationDataProvider - */ + #[DataProvider('informationDataProvider')] + #[Test] public function setInfoSetsTheInformationAssociatedWithTheCurrentIteratorEntry(mixed $information): void { /** @var ObjectStorage<Entity> $objectStorage */ @@ -365,10 +319,8 @@ final class ObjectStorageTest extends UnitTestCase self::assertSame($information, $objectStorage[$object]); } - /** - * @test - * @dataProvider informationDataProvider - */ + #[DataProvider('informationDataProvider')] + #[Test] public function setInfoOverwritesTheInformationAssociatedWithTheCurrentIteratorEntry(mixed $information): void { /** @var ObjectStorage<Entity> $objectStorage */ @@ -381,9 +333,7 @@ final class ObjectStorageTest extends UnitTestCase self::assertSame($information, $objectStorage[$object]); } - /** - * @test - */ + #[Test] public function removeAllRemovesObjectsContainedInAnotherStorageFromTheCurrentStorage(): void { $object1 = new Entity(); @@ -400,9 +350,7 @@ final class ObjectStorageTest extends UnitTestCase self::assertCount(0, $objectStorageToRemoveFrom); } - /** - * @test - */ + #[Test] public function removeAllRemovesRemovesObjectWithDifferentInformationFromTheCurrentStorage(): void { $object1 = new Entity(); @@ -419,9 +367,7 @@ final class ObjectStorageTest extends UnitTestCase self::assertCount(0, $objectStorageToRemoveFrom); } - /** - * @test - */ + #[Test] public function removeAllKeepsObjectsNotContainedInTheOtherStorage(): void { $object1 = new Entity(); @@ -439,9 +385,7 @@ final class ObjectStorageTest extends UnitTestCase self::assertCount(1, $objectStorageToRemoveFrom); } - /** - * @test - */ + #[Test] public function removeAlIgnoresAdditionsObjectsContainedInOtherStorage(): void { $object1 = new Entity(); @@ -459,9 +403,7 @@ final class ObjectStorageTest extends UnitTestCase self::assertCount(1, $objectStorageToRemoveFrom); } - /** - * @test - */ + #[Test] public function addAllAddsAllObjectsFromAnotherStorage(): void { $object = new Entity(); @@ -477,9 +419,7 @@ final class ObjectStorageTest extends UnitTestCase self::assertTrue($storageToAddTo->contains($object)); } - /** - * @test - */ + #[Test] public function addAllAlsoAddsInformationOfTheAddedObjects(): void { $object = new Entity(); @@ -496,9 +436,7 @@ final class ObjectStorageTest extends UnitTestCase self::assertSame($information, $storageToAddTo[$object]); } - /** - * @test - */ + #[Test] public function toArrayReturnsObjectsInStorageUsingIntegerKeys(): void { /** @var ObjectStorage<Entity> $objectStorage */ @@ -511,9 +449,7 @@ final class ObjectStorageTest extends UnitTestCase self::assertSame([0 => $object1, 1 => $object2], $objectStorage->toArray()); } - /** - * @test - */ + #[Test] public function getArrayReturnsObjectsInStorageUsingIntegerKeys(): void { /** @var ObjectStorage<Entity> $objectStorage */ @@ -526,9 +462,7 @@ final class ObjectStorageTest extends UnitTestCase self::assertSame([0 => $object1, 1 => $object2], $objectStorage->getArray()); } - /** - * @test - */ + #[Test] public function relationsAreNotDirtyOnAttaching(): void { /** @var ObjectStorage<Entity> $objectStorage */ @@ -540,9 +474,7 @@ final class ObjectStorageTest extends UnitTestCase self::assertFalse($objectStorage->isRelationDirty($object)); } - /** - * @test - */ + #[Test] public function relationsAreNotDirtyOnAttachingAndRemoving(): void { /** @var ObjectStorage<Entity> $objectStorage */ @@ -555,9 +487,7 @@ final class ObjectStorageTest extends UnitTestCase self::assertFalse($objectStorage->isRelationDirty($object1)); } - /** - * @test - */ + #[Test] public function relationsAreNotDirtyOnReAddingAtSamePosition(): void { /** @var ObjectStorage<Entity> $objectStorage */ @@ -576,9 +506,7 @@ final class ObjectStorageTest extends UnitTestCase self::assertFalse($objectStorage->isRelationDirty($object2)); } - /** - * @test - */ + #[Test] public function relationsAreDirtyOnReAddingAtOtherPosition(): void { /** @var ObjectStorage<Entity> $objectStorage */ diff --git a/typo3/sysext/extbase/Tests/Unit/Persistence/RepositoryTest.php b/typo3/sysext/extbase/Tests/Unit/Persistence/RepositoryTest.php index 9cd391f7e896a0ee4f878c1877d4e96bb33c34b5..fe91d66aa2f80bb618d222ed315c3a0ce942ed90 100644 --- a/typo3/sysext/extbase/Tests/Unit/Persistence/RepositoryTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Persistence/RepositoryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Persistence; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Extbase\Configuration\ConfigurationManager; use TYPO3\CMS\Extbase\Persistence\Exception\IllegalObjectTypeException; @@ -104,17 +105,13 @@ final class RepositoryTest extends UnitTestCase $this->repository->injectPersistenceManager($this->mockPersistenceManager); } - /** - * @test - */ + #[Test] public function abstractRepositoryImplementsRepositoryInterface(): void { self::assertInstanceOf(RepositoryInterface::class, $this->repository); } - /** - * @test - */ + #[Test] public function createQueryCallsPersistenceManagerWithExpectedClassName(): void { $mockPersistenceManager = $this->createMock(PersistenceManager::class); @@ -126,9 +123,7 @@ final class RepositoryTest extends UnitTestCase $this->repository->createQuery(); } - /** - * @test - */ + #[Test] public function createQuerySetsDefaultOrderingIfDefined(): void { $orderings = ['foo' => QueryInterface::ORDER_ASCENDING]; @@ -146,9 +141,7 @@ final class RepositoryTest extends UnitTestCase $this->repository->createQuery(); } - /** - * @test - */ + #[Test] public function findAllCreatesQueryAndReturnsResultOfExecuteCall(): void { $expectedResult = $this->createMock(QueryResultInterface::class); @@ -164,9 +157,7 @@ final class RepositoryTest extends UnitTestCase self::assertSame($expectedResult, $repository->findAll()); } - /** - * @test - */ + #[Test] public function findByIdentifierReturnsResultOfGetObjectByIdentifierCallFromBackend(): void { $identifier = '42'; @@ -184,9 +175,7 @@ final class RepositoryTest extends UnitTestCase self::assertSame($object, $this->repository->findByIdentifier($identifier)); } - /** - * @test - */ + #[Test] public function addDelegatesToPersistenceManager(): void { $object = new \stdClass(); @@ -197,9 +186,7 @@ final class RepositoryTest extends UnitTestCase $this->repository->add($object); } - /** - * @test - */ + #[Test] public function removeDelegatesToPersistenceManager(): void { $object = new \stdClass(); @@ -210,9 +197,7 @@ final class RepositoryTest extends UnitTestCase $this->repository->remove($object); } - /** - * @test - */ + #[Test] public function updateDelegatesToPersistenceManager(): void { $object = new \stdClass(); @@ -223,9 +208,7 @@ final class RepositoryTest extends UnitTestCase $this->repository->update($object); } - /** - * @test - */ + #[Test] public function magicCallMethodTriggersAnErrorIfUnknownMethodsAreCalled(): void { $this->expectException(UnsupportedMethodException::class); @@ -236,9 +219,7 @@ final class RepositoryTest extends UnitTestCase $repository->__call('foo', []); } - /** - * @test - */ + #[Test] public function addChecksObjectType(): void { $this->expectException(IllegalObjectTypeException::class); @@ -247,9 +228,7 @@ final class RepositoryTest extends UnitTestCase $this->repository->add(new \stdClass()); } - /** - * @test - */ + #[Test] public function removeChecksObjectType(): void { $this->expectException(IllegalObjectTypeException::class); @@ -258,9 +237,7 @@ final class RepositoryTest extends UnitTestCase $this->repository->remove(new \stdClass()); } - /** - * @test - */ + #[Test] public function updateChecksObjectType(): void { $this->expectException(IllegalObjectTypeException::class); @@ -271,9 +248,7 @@ final class RepositoryTest extends UnitTestCase $repository->update(new \stdClass()); } - /** - * @test - */ + #[Test] public function constructSetsObjectTypeFromClassName(): void { $repository = new EntityRepository(); @@ -284,9 +259,7 @@ final class RepositoryTest extends UnitTestCase self::assertEquals(Entity::class, $objectType); } - /** - * @test - */ + #[Test] public function createQueryReturnsQueryWithUnmodifiedDefaultQuerySettings(): void { $this->mockQuery = $this->createMock(Query::class); @@ -298,9 +271,7 @@ final class RepositoryTest extends UnitTestCase self::assertNotSame($mockDefaultQuerySettings, $instanceQuerySettings); } - /** - * @test - */ + #[Test] public function findByUidReturnsResultOfGetObjectByIdentifierCall(): void { $fakeUid = '123'; @@ -314,9 +285,7 @@ final class RepositoryTest extends UnitTestCase self::assertSame($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function updateRejectsObjectsOfWrongType(): void { $this->expectException(IllegalObjectTypeException::class); diff --git a/typo3/sysext/extbase/Tests/Unit/Property/PropertyMappingConfigurationBuilderTest.php b/typo3/sysext/extbase/Tests/Unit/Property/PropertyMappingConfigurationBuilderTest.php index 1bdd2ea02ebc6c0f4c068ef25cc616514be681e1..bf003a6afa540ef439f73a922c1a1ea67efb1ef1 100644 --- a/typo3/sysext/extbase/Tests/Unit/Property/PropertyMappingConfigurationBuilderTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Property/PropertyMappingConfigurationBuilderTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Property; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extbase\Property\PropertyMappingConfigurationBuilder; use TYPO3\CMS\Extbase\Property\TypeConverter\PersistentObjectConverter; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -31,9 +32,7 @@ final class PropertyMappingConfigurationBuilderTest extends UnitTestCase $this->propertyMappingConfigurationBuilder = new PropertyMappingConfigurationBuilder(); } - /** - * @test - */ + #[Test] public function getTargetPropertyNameShouldReturnTheUnmodifiedPropertyNameWithoutConfiguration(): void { $defaultConfiguration = $this->propertyMappingConfigurationBuilder->build(); diff --git a/typo3/sysext/extbase/Tests/Unit/Property/PropertyMappingConfigurationTest.php b/typo3/sysext/extbase/Tests/Unit/Property/PropertyMappingConfigurationTest.php index 7f644e2dd144261a37a9698f6d5bb2a401dcc943..3cfd24f156147feb5110fa639620f69b63f7c4fd 100644 --- a/typo3/sysext/extbase/Tests/Unit/Property/PropertyMappingConfigurationTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Property/PropertyMappingConfigurationTest.php @@ -17,15 +17,15 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Property; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extbase\Property\PropertyMappingConfiguration; use TYPO3\CMS\Extbase\Property\TypeConverterInterface; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class PropertyMappingConfigurationTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getTargetPropertyNameShouldReturnTheUnmodifiedPropertyNameWithoutConfiguration(): void { $subject = new PropertyMappingConfiguration(); @@ -33,9 +33,7 @@ final class PropertyMappingConfigurationTest extends UnitTestCase self::assertEquals('someOtherSourceProperty', $subject->getTargetPropertyName('someOtherSourceProperty')); } - /** - * @test - */ + #[Test] public function shouldMapReturnsFalseByDefault(): void { $subject = new PropertyMappingConfiguration(); @@ -43,9 +41,7 @@ final class PropertyMappingConfigurationTest extends UnitTestCase self::assertFalse($subject->shouldMap('someOtherSourceProperty')); } - /** - * @test - */ + #[Test] public function shouldMapReturnsTrueIfConfigured(): void { $subject = new PropertyMappingConfiguration(); @@ -54,9 +50,7 @@ final class PropertyMappingConfigurationTest extends UnitTestCase self::assertTrue($subject->shouldMap('someOtherSourceProperty')); } - /** - * @test - */ + #[Test] public function shouldMapReturnsTrueForAllowedProperties(): void { $subject = new PropertyMappingConfiguration(); @@ -65,9 +59,7 @@ final class PropertyMappingConfigurationTest extends UnitTestCase self::assertTrue($subject->shouldMap('someOtherProperty')); } - /** - * @test - */ + #[Test] public function shouldMapReturnsFalseForBlacklistedProperties(): void { $subject = new PropertyMappingConfiguration(); @@ -77,9 +69,7 @@ final class PropertyMappingConfigurationTest extends UnitTestCase self::assertTrue($subject->shouldMap('someOtherPropertyWhichHasNotBeenConfigured')); } - /** - * @test - */ + #[Test] public function shouldSkipReturnsFalseByDefault(): void { $subject = new PropertyMappingConfiguration(); @@ -87,9 +77,7 @@ final class PropertyMappingConfigurationTest extends UnitTestCase self::assertFalse($subject->shouldSkip('someOtherSourceProperty')); } - /** - * @test - */ + #[Test] public function shouldSkipReturnsTrueIfConfigured(): void { $subject = new PropertyMappingConfiguration(); @@ -98,9 +86,7 @@ final class PropertyMappingConfigurationTest extends UnitTestCase self::assertTrue($subject->shouldSkip('someOtherSourceProperty')); } - /** - * @test - */ + #[Test] public function setTypeConverterOptionsCanBeRetrievedAgain(): void { $mockTypeConverterClass = get_class($this->createMock(TypeConverterInterface::class)); @@ -110,17 +96,13 @@ final class PropertyMappingConfigurationTest extends UnitTestCase self::assertEquals('v2', $subject->getConfigurationValue($mockTypeConverterClass, 'k2')); } - /** - * @test - */ + #[Test] public function nonexistentTypeConverterOptionsReturnNull(): void { self::assertNull((new PropertyMappingConfiguration())->getConfigurationValue('foo', 'bar')); } - /** - * @test - */ + #[Test] public function setTypeConverterOptionsShouldOverrideAlreadySetOptions(): void { $mockTypeConverterClass = get_class($this->createMock(TypeConverterInterface::class)); @@ -131,9 +113,7 @@ final class PropertyMappingConfigurationTest extends UnitTestCase self::assertNull($subject->getConfigurationValue($mockTypeConverterClass, 'k2')); } - /** - * @test - */ + #[Test] public function setTypeConverterOptionShouldOverrideAlreadySetOptions(): void { $mockTypeConverterClass = get_class($this->createMock(TypeConverterInterface::class)); @@ -144,17 +124,13 @@ final class PropertyMappingConfigurationTest extends UnitTestCase self::assertEquals('v2', $subject->getConfigurationValue($mockTypeConverterClass, 'k2')); } - /** - * @test - */ + #[Test] public function getTypeConverterReturnsNullIfNoTypeConverterSet(): void { self::assertNull((new PropertyMappingConfiguration())->getTypeConverter()); } - /** - * @test - */ + #[Test] public function getTypeConverterReturnsTypeConverterIfItHasBeenSet(): void { $mockTypeConverter = $this->createMock(TypeConverterInterface::class); @@ -163,9 +139,7 @@ final class PropertyMappingConfigurationTest extends UnitTestCase self::assertSame($mockTypeConverter, $subject->getTypeConverter()); } - /** - * @test - */ + #[Test] public function getTargetPropertyNameShouldRespectMapping(): void { $subject = new PropertyMappingConfiguration(); @@ -184,19 +158,15 @@ final class PropertyMappingConfigurationTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider fluentInterfaceMethodsDataProvider - */ + #[DataProvider('fluentInterfaceMethodsDataProvider')] + #[Test] public function respectiveMethodsProvideFluentInterface($methodToTestForFluentInterface, array $argumentsForMethod = []): void { $subject = new PropertyMappingConfiguration(); self::assertSame($subject, $subject->$methodToTestForFluentInterface(...$argumentsForMethod)); } - /** - * @test - */ + #[Test] public function setTypeConverterOptionReturnsThis(): void { $mockTypeConverter = $this->createMock(TypeConverterInterface::class); @@ -205,9 +175,7 @@ final class PropertyMappingConfigurationTest extends UnitTestCase self::assertSame($subject, $subject->setTypeConverterOption($mockTypeConverterClass, 'key', 'value')); } - /** - * @test - */ + #[Test] public function setTypeConverterOptionsReturnsThis(): void { $mockTypeConverter = $this->createMock(TypeConverterInterface::class); @@ -216,9 +184,7 @@ final class PropertyMappingConfigurationTest extends UnitTestCase self::assertSame($subject, $subject->setTypeConverterOptions($mockTypeConverterClass, [])); } - /** - * @test - */ + #[Test] public function setTypeConverterReturnsThis(): void { $mockTypeConverter = $this->createMock(TypeConverterInterface::class); @@ -226,9 +192,7 @@ final class PropertyMappingConfigurationTest extends UnitTestCase self::assertSame($subject, $subject->setTypeConverter($mockTypeConverter)); } - /** - * @test - */ + #[Test] public function forPropertyWithAsteriskAllowsArbitraryPropertyNamesWithGetConfigurationFor(): void { $subject = new PropertyMappingConfiguration(); @@ -238,9 +202,7 @@ final class PropertyMappingConfigurationTest extends UnitTestCase self::assertSame('v1', $configuration->getConfigurationValue(\stdClass::class, 'k1')); } - /** - * @test - */ + #[Test] public function forPropertyWithAsteriskAllowsArbitraryPropertyNamesWithForProperty(): void { $subject = new PropertyMappingConfiguration(); @@ -250,9 +212,7 @@ final class PropertyMappingConfigurationTest extends UnitTestCase self::assertSame('v1', $configuration->getConfigurationValue(\stdClass::class, 'k1')); } - /** - * @test - */ + #[Test] public function forPropertyWithAsteriskAllowsArbitraryPropertyNamesWithShouldMap(): void { $subject = new PropertyMappingConfiguration(); diff --git a/typo3/sysext/extbase/Tests/Unit/Property/TypeConverter/ArrayConverterTest.php b/typo3/sysext/extbase/Tests/Unit/Property/TypeConverter/ArrayConverterTest.php index 2cd53266d3141bd69e6d5b5ad3d82a51d4070638..cc5988b4326523e95ad7154e7b2bd4d0091e4c08 100644 --- a/typo3/sysext/extbase/Tests/Unit/Property/TypeConverter/ArrayConverterTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Property/TypeConverter/ArrayConverterTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Property\TypeConverter; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extbase\Property\Exception\TypeConverterException; use TYPO3\CMS\Extbase\Property\PropertyMappingConfiguration; use TYPO3\CMS\Extbase\Property\PropertyMappingConfigurationInterface; @@ -25,18 +27,14 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ArrayConverterTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function convertFromDoesNotModifyTheSourceArray(): void { $sourceArray = ['Foo' => 'Bar', 'Baz']; self::assertEquals($sourceArray, (new ArrayConverter())->convertFrom($sourceArray, 'array')); } - /** - * @test - */ + #[Test] public function canConvertFromEmptyStringToArray(): void { self::assertEquals([], (new ArrayConverter())->convertFrom('', 'array')); @@ -93,18 +91,14 @@ final class ArrayConverterTest extends UnitTestCase return $configuration; } - /** - * @test - * @dataProvider stringToArrayWithConfigurationDataProvider - */ + #[DataProvider('stringToArrayWithConfigurationDataProvider')] + #[Test] public function canConvertWithConfigurationFromString(string $source, PropertyMappingConfigurationInterface $configuration, array $expectedResult): void { self::assertEquals($expectedResult, (new ArrayConverter())->convertFrom($source, 'array', [], $configuration)); } - /** - * @test - */ + #[Test] public function throwsTypeConverterExceptionIfDelimiterIsNotGiven(): void { $this->expectException(TypeConverterException::class); @@ -112,9 +106,7 @@ final class ArrayConverterTest extends UnitTestCase (new ArrayConverter())->convertFrom('foo', 'array', [], new PropertyMappingConfiguration()); } - /** - * @test - */ + #[Test] public function returnsSourceUnchangedIfNonEmptyValueWithNoConfigurationIsGiven(): void { self::assertSame('foo', (new ArrayConverter())->convertFrom('foo', 'array', [])); diff --git a/typo3/sysext/extbase/Tests/Unit/Property/TypeConverter/BooleanConverterTest.php b/typo3/sysext/extbase/Tests/Unit/Property/TypeConverter/BooleanConverterTest.php index be9fb210542f480226c25adbf9476bcb0da9e4da..1a9e70bbf3028d920cced1c708757ad10aa4dde8 100644 --- a/typo3/sysext/extbase/Tests/Unit/Property/TypeConverter/BooleanConverterTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Property/TypeConverter/BooleanConverterTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Property\TypeConverter; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extbase\Property\TypeConverter\BooleanConverter; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -30,27 +31,21 @@ final class BooleanConverterTest extends UnitTestCase $this->converter = new BooleanConverter(); } - /** - * @test - */ + #[Test] public function convertFromDoesNotModifyTheBooleanSource(): void { $source = true; self::assertEquals($source, $this->converter->convertFrom($source, 'boolean')); } - /** - * @test - */ + #[Test] public function convertFromCastsSourceStringToBoolean(): void { $source = 'true'; self::assertTrue($this->converter->convertFrom($source, 'boolean')); } - /** - * @test - */ + #[Test] public function convertFromCastsNumericSourceStringToBoolean(): void { $source = '1'; diff --git a/typo3/sysext/extbase/Tests/Unit/Property/TypeConverter/DateTimeConverterTest.php b/typo3/sysext/extbase/Tests/Unit/Property/TypeConverter/DateTimeConverterTest.php index 99469c2ab24c09411fa7a749f317063faf6bc708..600262c9c82d6936ec9624d1997410fe99cf0027 100644 --- a/typo3/sysext/extbase/Tests/Unit/Property/TypeConverter/DateTimeConverterTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Property/TypeConverter/DateTimeConverterTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Property\TypeConverter; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extbase\Error\Error; use TYPO3\CMS\Extbase\Property\Exception\TypeConverterException; use TYPO3\CMS\Extbase\Property\PropertyMappingConfiguration; @@ -35,20 +37,14 @@ final class DateTimeConverterTest extends UnitTestCase $this->converter = new DateTimeConverter(); } - /** String to DateTime testcases **/ - - /** - * @test - */ + #[Test] public function convertFromReturnsErrorIfGivenStringCantBeConverted(): void { $error = $this->converter->convertFrom('1980-12-13', 'DateTime'); self::assertInstanceOf(Error::class, $error); } - /** - * @test - */ + #[Test] public function convertFromProperlyConvertsStringWithDefaultDateFormat(): void { $expectedResult = '1980-12-13T20:15:07+01:23'; @@ -57,9 +53,7 @@ final class DateTimeConverterTest extends UnitTestCase self::assertSame($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function convertFromUsesDefaultDateFormatIfItIsNotConfigured(): void { $expectedResult = '1980-12-13T20:15:07+01:23'; @@ -75,9 +69,7 @@ final class DateTimeConverterTest extends UnitTestCase self::assertSame($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function convertFromEmptyStringReturnsNull(): void { $date = $this->converter->convertFrom('', 'DateTime', [], null); @@ -105,9 +97,9 @@ final class DateTimeConverterTest extends UnitTestCase * @param string $source the string to be converted * @param string|null $dateFormat the expected date format * @param bool $isValid TRUE if the conversion is expected to be successful, otherwise FALSE - * @test - * @dataProvider convertFromStringDataProvider */ + #[DataProvider('convertFromStringDataProvider')] + #[Test] public function convertFromStringTests(string $source, ?string $dateFormat, bool $isValid): void { if ($dateFormat !== null) { @@ -145,10 +137,8 @@ final class DateTimeConverterTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider convertFromIntegerOrDigitStringsWithoutConfigurationDataProvider - */ + #[DataProvider('convertFromIntegerOrDigitStringsWithoutConfigurationDataProvider')] + #[Test] public function convertFromIntegerOrDigitStringWithoutConfigurationTests(string|int $source): void { $date = $this->converter->convertFrom($source, 'DateTime', [], null); @@ -156,12 +146,8 @@ final class DateTimeConverterTest extends UnitTestCase self::assertSame((string)$source, $date->format('U')); } - /** Array to DateTime testcases **/ - - /** - * @test - * @dataProvider convertFromIntegerOrDigitStringsWithoutConfigurationDataProvider - */ + #[DataProvider('convertFromIntegerOrDigitStringsWithoutConfigurationDataProvider')] + #[Test] public function convertFromIntegerOrDigitStringInArrayWithoutConfigurationTests(string|int $source): void { $date = $this->converter->convertFrom(['date' => $source], 'DateTime', [], null); @@ -169,18 +155,14 @@ final class DateTimeConverterTest extends UnitTestCase self::assertSame((string)$source, $date->format('U')); } - /** - * @test - */ + #[Test] public function convertFromReturnsErrorIfGivenArrayCantBeConverted(): void { $error = $this->converter->convertFrom(['date' => '1980-12-13'], 'DateTime'); self::assertInstanceOf(Error::class, $error); } - /** - * @test - */ + #[Test] public function convertFromThrowsExceptionIfGivenArrayDoesNotSpecifyTheDate(): void { $this->expectException(TypeConverterException::class); @@ -188,9 +170,7 @@ final class DateTimeConverterTest extends UnitTestCase $this->converter->convertFrom(['hour' => '12', 'minute' => '30'], 'DateTime'); } - /** - * @test - */ + #[Test] public function convertFromProperlyConvertsArrayWithDefaultDateFormat(): void { $expectedResult = '1980-12-13T20:15:07+01:23'; @@ -214,10 +194,8 @@ final class DateTimeConverterTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider invalidDatePartKeyValuesDataProvider - */ + #[DataProvider('invalidDatePartKeyValuesDataProvider')] + #[Test] public function convertFromThrowsExceptionIfDatePartKeysHaveInvalidValuesSpecified($source): void { $this->expectException(TypeConverterException::class); @@ -225,9 +203,7 @@ final class DateTimeConverterTest extends UnitTestCase $this->converter->convertFrom($source, 'DateTime'); } - /** - * @test - */ + #[Test] public function convertFromProperlyConvertsArrayWithDateAsArray(): void { $source = ['day' => '13', 'month' => '10', 'year' => '2010']; @@ -243,9 +219,7 @@ final class DateTimeConverterTest extends UnitTestCase self::assertSame('2010-10-13', $actualResult); } - /** - * @test - */ + #[Test] public function convertFromAllowsToOverrideTheTime(): void { $source = [ @@ -262,9 +236,7 @@ final class DateTimeConverterTest extends UnitTestCase self::assertSame('59', $date->format('s')); } - /** - * @test - */ + #[Test] public function convertFromAllowsToOverrideTheTimezone(): void { $source = [ @@ -280,9 +252,7 @@ final class DateTimeConverterTest extends UnitTestCase self::assertSame('Atlantic/Reykjavik', $date->getTimezone()->getName()); } - /** - * @test - */ + #[Test] public function convertFromThrowsExceptionIfSpecifiedTimezoneIsInvalid(): void { $this->expectException(TypeConverterException::class); @@ -295,9 +265,7 @@ final class DateTimeConverterTest extends UnitTestCase $this->converter->convertFrom($source, 'DateTime'); } - /** - * @test - */ + #[Test] public function convertFromArrayThrowsExceptionForEmptyArray(): void { $this->expectException(TypeConverterException::class); @@ -305,9 +273,7 @@ final class DateTimeConverterTest extends UnitTestCase $this->converter->convertFrom([], 'DateTime', [], null); } - /** - * @test - */ + #[Test] public function convertFromArrayReturnsNullForEmptyDate(): void { self::assertNull($this->converter->convertFrom(['date' => ''], 'DateTime', [], null)); @@ -336,9 +302,9 @@ final class DateTimeConverterTest extends UnitTestCase /** * @param array $source the array to be converted * @param bool $isValid TRUE if the conversion is expected to be successful, otherwise FALSE - * @test - * @dataProvider convertFromArrayDataProvider */ + #[DataProvider('convertFromArrayDataProvider')] + #[Test] public function convertFromArrayTests(array $source, $isValid, ?string $expectedResult): void { $dateFormat = isset($source['dateFormat']) && $source['dateFormat'] !== '' ? $source['dateFormat'] : null; @@ -370,9 +336,7 @@ final class DateTimeConverterTest extends UnitTestCase } } - /** - * @test - */ + #[Test] public function convertFromSupportsDateTimeSubClasses(): void { $className = DateTimeSubFixture::class; diff --git a/typo3/sysext/extbase/Tests/Unit/Property/TypeConverter/FloatConverterTest.php b/typo3/sysext/extbase/Tests/Unit/Property/TypeConverter/FloatConverterTest.php index b075208e6a06548e9d02ea35474cf600c8f5059b..b8334562dabda6ee97c97beda4130b2052341e5b 100644 --- a/typo3/sysext/extbase/Tests/Unit/Property/TypeConverter/FloatConverterTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Property/TypeConverter/FloatConverterTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Property\TypeConverter; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extbase\Error\Error; use TYPO3\CMS\Extbase\Property\PropertyMappingConfigurationInterface; use TYPO3\CMS\Extbase\Property\TypeConverter\FloatConverter; @@ -24,33 +25,25 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class FloatConverterTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function convertFromShouldCastTheStringToFloat(): void { self::assertSame(1.5, (new FloatConverter())->convertFrom('1.5', 'float')); } - /** - * @test - */ + #[Test] public function convertFromReturnsNullIfEmptyStringSpecified(): void { self::assertNull((new FloatConverter())->convertFrom('', 'float')); } - /** - * @test - */ + #[Test] public function convertFromShouldAcceptIntegers(): void { self::assertSame((float)123, (new FloatConverter())->convertFrom(123, 'float')); } - /** - * @test - */ + #[Test] public function convertFromShouldRespectConfiguration(): void { $mockMappingConfiguration = $this->createMock(PropertyMappingConfigurationInterface::class); @@ -70,17 +63,13 @@ final class FloatConverterTest extends UnitTestCase self::assertSame(1024.42, (new FloatConverter())->convertFrom('1.024,42', 'float', [], $mockMappingConfiguration)); } - /** - * @test - */ + #[Test] public function convertFromReturnsAnErrorIfSpecifiedStringIsNotNumeric(): void { self::assertInstanceOf(Error::class, (new FloatConverter())->convertFrom('not numeric', 'float')); } - /** - * @test - */ + #[Test] public function getSourceChildPropertiesToBeConvertedShouldReturnEmptyArray(): void { self::assertEquals([], (new FloatConverter())->getSourceChildPropertiesToBeConverted('myString')); diff --git a/typo3/sysext/extbase/Tests/Unit/Property/TypeConverter/IntegerConverterTest.php b/typo3/sysext/extbase/Tests/Unit/Property/TypeConverter/IntegerConverterTest.php index 3465aa2c4fb0dc2fd3e79edf4273f93669d46cbe..f9c3f5dada74525def76f1131980f8e487052502 100644 --- a/typo3/sysext/extbase/Tests/Unit/Property/TypeConverter/IntegerConverterTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Property/TypeConverter/IntegerConverterTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Property\TypeConverter; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extbase\Error\Error; use TYPO3\CMS\Extbase\Property\TypeConverter\IntegerConverter; use TYPO3\CMS\Extbase\Property\TypeConverterInterface; @@ -35,42 +36,32 @@ final class IntegerConverterTest extends UnitTestCase $this->converter = new IntegerConverter(); } - /** - * @test - */ + #[Test] public function convertFromShouldCastTheStringToInteger(): void { self::assertSame(15, $this->converter->convertFrom('15', 'integer')); } - /** - * @test - */ + #[Test] public function convertFromDoesNotModifyIntegers(): void { $source = 123; self::assertSame($source, $this->converter->convertFrom($source, 'integer')); } - /** - * @test - */ + #[Test] public function convertFromReturnsNullIfEmptyStringSpecified(): void { self::assertNull($this->converter->convertFrom('', 'integer')); } - /** - * @test - */ + #[Test] public function convertFromReturnsAnErrorIfSpecifiedStringIsNotNumeric(): void { self::assertInstanceOf(Error::class, $this->converter->convertFrom('not numeric', 'integer')); } - /** - * @test - */ + #[Test] public function getSourceChildPropertiesToBeConvertedShouldReturnEmptyArray(): void { self::assertEquals([], $this->converter->getSourceChildPropertiesToBeConverted('myString')); diff --git a/typo3/sysext/extbase/Tests/Unit/Property/TypeConverter/StringConverterTest.php b/typo3/sysext/extbase/Tests/Unit/Property/TypeConverter/StringConverterTest.php index ebdea36e5994aa469375aed095502854044f8eb8..80babdc2d3e67697d924de9440f7417bf4276ac2 100644 --- a/typo3/sysext/extbase/Tests/Unit/Property/TypeConverter/StringConverterTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Property/TypeConverter/StringConverterTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Property\TypeConverter; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extbase\Property\TypeConverter\StringConverter; use TYPO3\CMS\Extbase\Property\TypeConverterInterface; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -34,17 +35,13 @@ final class StringConverterTest extends UnitTestCase $this->converter = new StringConverter(); } - /** - * @test - */ + #[Test] public function convertFromShouldReturnSourceString(): void { self::assertEquals('myString', $this->converter->convertFrom('myString', 'string')); } - /** - * @test - */ + #[Test] public function getSourceChildPropertiesToBeConvertedShouldReturnEmptyArray(): void { self::assertEquals([], $this->converter->getSourceChildPropertiesToBeConverted('myString')); diff --git a/typo3/sysext/extbase/Tests/Unit/Property/TypeConverterRegistryTest.php b/typo3/sysext/extbase/Tests/Unit/Property/TypeConverterRegistryTest.php index eb21922c8a12743e36f82a041b44104ae2920756..68f5f2902954aefa199c2a0162db87629cc3b862 100644 --- a/typo3/sysext/extbase/Tests/Unit/Property/TypeConverterRegistryTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Property/TypeConverterRegistryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Property; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Authentication\LoginType; use TYPO3\CMS\Core\Type\TypeInterface; use TYPO3\CMS\Extbase\Domain\Model\FileReference; @@ -45,9 +46,7 @@ final class TypeConverterRegistryTest extends UnitTestCase $this->subject->add(new BooleanConverter(), 10, ['boolean', 'integer'], 'boolean'); } - /** - * @test - */ + #[Test] public function addThrowsDuplicateTypeConverterException(): void { $extendedBooleanConverter = new class () extends BooleanConverter {}; @@ -66,18 +65,14 @@ final class TypeConverterRegistryTest extends UnitTestCase $this->subject->add($extendedBooleanConverter, 10, ['boolean', 'integer'], 'boolean'); } - /** - * @test - */ + #[Test] public function findConverterFindsConverterForSimpleTypes(): void { $converter = $this->subject->findTypeConverter('boolean', 'boolean'); self::assertInstanceOf(BooleanConverter::class, $converter); } - /** - * @test - */ + #[Test] public function findConverterFindsConverterForSimpleTargetTypesWithHighestPriority(): void { $extendedBooleanConverter = new class () extends BooleanConverter {}; @@ -88,9 +83,7 @@ final class TypeConverterRegistryTest extends UnitTestCase self::assertInstanceOf($extendedBooleanConverterClassName, $converter); } - /** - * @test - */ + #[Test] public function findConverterThrowsTypeConverterExceptionWhenConverterForSimpleTypeTargetCannotBeFound(): void { $this->expectException(TypeConverterException::class); @@ -100,9 +93,7 @@ final class TypeConverterRegistryTest extends UnitTestCase $this->subject->findTypeConverter('array', 'boolean'); } - /** - * @test - */ + #[Test] public function findConverterThrowsInvalidTargetException(): void { $this->expectException(InvalidTargetException::class); @@ -112,9 +103,7 @@ final class TypeConverterRegistryTest extends UnitTestCase $this->subject->findTypeConverter('integer', 'NonExistingClass'); } - /** - * @test - */ + #[Test] public function findConverterThrowsTypeConverterExceptionWhenThereIsNoConverterRegisteredForGivenSourceTypeAndObjectTargetType(): void { $this->expectException(TypeConverterException::class); @@ -124,9 +113,7 @@ final class TypeConverterRegistryTest extends UnitTestCase $this->subject->findTypeConverter('array', \stdClass::class); } - /** - * @test - */ + #[Test] public function findConverterFindsTypeConverterForClassOrInterfaceTargetTypes(): void { $this->subject->add(new FileReferenceConverter(), 10, ['integer'], FileReference::class); @@ -135,9 +122,7 @@ final class TypeConverterRegistryTest extends UnitTestCase self::assertInstanceOf(FileReferenceConverter::class, $converter); } - /** - * @test - */ + #[Test] public function findConverterFindsTypeConverterForClassOrInterfaceParentClassOfTargetType(): void { $this->subject->add(new FileReferenceConverter(), 10, ['integer'], FileReference::class); @@ -149,9 +134,7 @@ final class TypeConverterRegistryTest extends UnitTestCase self::assertInstanceOf(FileReferenceConverter::class, $converter); } - /** - * @test - */ + #[Test] public function findConverterFindsTypeConverterForClassInterfaceOfTargetType(): void { $this->subject->add(new CoreTypeConverter(), 10, ['integer'], TypeInterface::class); @@ -160,9 +143,7 @@ final class TypeConverterRegistryTest extends UnitTestCase self::assertInstanceOf(CoreTypeConverter::class, $converter); } - /** - * @test - */ + #[Test] public function findConverterFindsLeastSpecificTypeConverterForClassOrInterfaceWithoutSpecificTypeConverterSet(): void { /* @@ -190,10 +171,9 @@ final class TypeConverterRegistryTest extends UnitTestCase } /** - * @test - * * @see testFindConverterThrowsTypeConverterExceptionWhenThereIsNoConverterRegisteredForGivenSourceTypeAndObjectTargetType */ + #[Test] public function findConverterThrowsExceptionIfNoConverterCanBeFoundToConvertSourceToAnObject(): void { /* @@ -212,9 +192,7 @@ final class TypeConverterRegistryTest extends UnitTestCase $this->subject->findTypeConverter('array', LoginType::class); } - /** - * @test - */ + #[Test] public function findConverterThrowsDuplicateTypeConverterException(): void { /* diff --git a/typo3/sysext/extbase/Tests/Unit/Reflection/ClassSchema/MethodParameterTest.php b/typo3/sysext/extbase/Tests/Unit/Reflection/ClassSchema/MethodParameterTest.php index 42a39daf61edb29372a44bd0db0f1f47ac53bf55..53ec0b01a2df96e3a8170db97823a0a6842fd1d9 100644 --- a/typo3/sysext/extbase/Tests/Unit/Reflection/ClassSchema/MethodParameterTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Reflection/ClassSchema/MethodParameterTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Reflection\ClassSchema; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extbase\Reflection\ClassSchema; use TYPO3\CMS\Extbase\Reflection\ClassSchema\Exception\NoSuchMethodParameterException; use TYPO3\CMS\Extbase\Tests\Unit\Reflection\Fixture\DummyClassWithAllTypesOfMethods; @@ -35,9 +36,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; */ final class MethodParameterTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function classSchemaDetectsMandatoryParams(): void { self::assertFalse( @@ -48,9 +47,7 @@ final class MethodParameterTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function classSchemaDetectsDefaultValueParams(): void { self::assertSame( @@ -62,9 +59,7 @@ final class MethodParameterTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function classSchemaDetectsParamTypeFromTypeHint(): void { self::assertSame( @@ -76,9 +71,7 @@ final class MethodParameterTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function classSchemaDetectsIgnoreValidationAnnotation(): void { $classSchemaMethod = (new ClassSchema(DummyControllerWithIgnoreValidationDoctrineAnnotation::class)) @@ -89,9 +82,7 @@ final class MethodParameterTest extends UnitTestCase $this->expectException(NoSuchMethodParameterException::class); $classSchemaMethod->getParameter('baz')->ignoreValidation(); } - /** - * @test - */ + #[Test] public function classSchemaDetectsIgnoreValidationAttribute(): void { $classSchemaMethod = (new ClassSchema(DummyControllerWithIgnoreValidationDoctrineAttribute::class)) @@ -103,9 +94,7 @@ final class MethodParameterTest extends UnitTestCase $classSchemaMethod->getParameter('baz')->ignoreValidation(); } - /** - * @test - */ + #[Test] public function classSchemaDetectsConstructorArgumentsWithDependencies(): void { $classSchema = new ClassSchema(DummyClassWithConstructorAndConstructorArgumentsWithDependencies::class); @@ -115,9 +104,7 @@ final class MethodParameterTest extends UnitTestCase self::assertSame(DummyClassWithGettersAndSetters::class, $method->getParameter('foo')->getDependency()); } - /** - * @test - */ + #[Test] public function classSchemaDetectsValidateAnnotationsOfControllerActions(): void { $this->resetSingletonInstances = true; @@ -162,9 +149,7 @@ final class MethodParameterTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function classSchemaDetectsValidateAttributesOfControllerActions(): void { $this->resetSingletonInstances = true; diff --git a/typo3/sysext/extbase/Tests/Unit/Reflection/ClassSchema/MethodTest.php b/typo3/sysext/extbase/Tests/Unit/Reflection/ClassSchema/MethodTest.php index c744a68e4f89de517a7c9d98cfbf1ebdf766e319..04565842f23cc02515a1d9e48b3c490688d8046b 100644 --- a/typo3/sysext/extbase/Tests/Unit/Reflection/ClassSchema/MethodTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Reflection/ClassSchema/MethodTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Reflection\ClassSchema; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extbase\Reflection\ClassSchema; use TYPO3\CMS\Extbase\Tests\Unit\Reflection\Fixture\DummyClassWithAllTypesOfMethods; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -26,9 +27,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; */ final class MethodTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function classSchemaDetectsMethodVisibility(): void { $classSchema = new ClassSchema(DummyClassWithAllTypesOfMethods::class); @@ -49,9 +48,7 @@ final class MethodTest extends UnitTestCase self::assertTrue($methodDefinition->isPrivate()); } - /** - * @test - */ + #[Test] public function classSchemaDetectsInjectMethods(): void { $classSchema = new ClassSchema(DummyClassWithAllTypesOfMethods::class); @@ -73,9 +70,7 @@ final class MethodTest extends UnitTestCase self::assertArrayHasKey('injectFoo', $injectMethods); } - /** - * @test - */ + #[Test] public function classSchemaDetectsStaticMethods(): void { self::assertTrue( diff --git a/typo3/sysext/extbase/Tests/Unit/Reflection/ClassSchema/Property/PropertyWithTypeDeclarationsTest.php b/typo3/sysext/extbase/Tests/Unit/Reflection/ClassSchema/Property/PropertyWithTypeDeclarationsTest.php index c6d021c10279de11e8822d5752f956e2a99f5153..ab0f92b054ec65ccccf9e4304c054033fede9e54 100644 --- a/typo3/sysext/extbase/Tests/Unit/Reflection/ClassSchema/Property/PropertyWithTypeDeclarationsTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Reflection/ClassSchema/Property/PropertyWithTypeDeclarationsTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Reflection\ClassSchema\Property; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extbase\Persistence\Generic\LazyLoadingProxy; use TYPO3\CMS\Extbase\Persistence\Generic\LazyObjectStorage; use TYPO3\CMS\Extbase\Persistence\ObjectStorage; @@ -26,9 +27,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class PropertyWithTypeDeclarationsTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function intProperty(): void { $propertyTypes = (new ClassSchema(DummyEntityWithTypeDeclarations::class)) @@ -38,9 +37,7 @@ final class PropertyWithTypeDeclarationsTest extends UnitTestCase self::assertSame('int', $propertyTypes[0]->getBuiltinType()); } - /** - * @test - */ + #[Test] public function floatProperty(): void { $propertyTypes = (new ClassSchema(DummyEntityWithTypeDeclarations::class)) @@ -50,9 +47,7 @@ final class PropertyWithTypeDeclarationsTest extends UnitTestCase self::assertSame('float', $propertyTypes[0]->getBuiltinType()); } - /** - * @test - */ + #[Test] public function boolProperty(): void { $propertyTypes = (new ClassSchema(DummyEntityWithTypeDeclarations::class)) @@ -62,9 +57,7 @@ final class PropertyWithTypeDeclarationsTest extends UnitTestCase self::assertSame('bool', $propertyTypes[0]->getBuiltinType()); } - /** - * @test - */ + #[Test] public function objectProperty(): void { $propertyTypes = (new ClassSchema(DummyEntityWithTypeDeclarations::class)) @@ -74,9 +67,7 @@ final class PropertyWithTypeDeclarationsTest extends UnitTestCase self::assertSame('object', $propertyTypes[0]->getBuiltinType()); } - /** - * @test - */ + #[Test] public function arrayProperty(): void { $propertyTypes = (new ClassSchema(DummyEntityWithTypeDeclarations::class)) @@ -86,9 +77,7 @@ final class PropertyWithTypeDeclarationsTest extends UnitTestCase self::assertSame('array', $propertyTypes[0]->getBuiltinType()); } - /** - * @test - */ + #[Test] public function mixedProperty(): void { $propertyTypes = (new ClassSchema(DummyEntityWithTypeDeclarations::class)) @@ -97,9 +86,7 @@ final class PropertyWithTypeDeclarationsTest extends UnitTestCase self::assertCount(0, $propertyTypes); } - /** - * @test - */ + #[Test] public function nullableIntProperty(): void { $propertyTypes = (new ClassSchema(DummyEntityWithTypeDeclarations::class)) @@ -111,10 +98,7 @@ final class PropertyWithTypeDeclarationsTest extends UnitTestCase } // Collection Type Properties - - /** - * @test - */ + #[Test] public function listWithSquareBracketsSyntaxProperty(): void { $propertyTypes = (new ClassSchema(DummyEntityWithTypeDeclarations::class)) @@ -130,9 +114,7 @@ final class PropertyWithTypeDeclarationsTest extends UnitTestCase self::assertSame('string', $propertyTypes[0]->getCollectionValueTypes()[0]->getBuiltinType()); } - /** - * @test - */ + #[Test] public function listWithArraySyntaxWithoutKeyValueTypeProperty(): void { $propertyTypes = (new ClassSchema(DummyEntityWithTypeDeclarations::class)) @@ -149,9 +131,7 @@ final class PropertyWithTypeDeclarationsTest extends UnitTestCase self::assertSame('string', $propertyTypes[0]->getCollectionValueTypes()[0]->getBuiltinType()); } - /** - * @test - */ + #[Test] public function listWithArraySyntaxWithKeyValueTypeProperty(): void { $propertyTypes = (new ClassSchema(DummyEntityWithTypeDeclarations::class)) @@ -168,9 +148,7 @@ final class PropertyWithTypeDeclarationsTest extends UnitTestCase self::assertSame('string', $propertyTypes[0]->getCollectionValueTypes()[0]->getBuiltinType()); } - /** - * @test - */ + #[Test] public function objectStorageWithArraySyntaxWithoutKeyValueTypeProperty(): void { $propertyTypes = (new ClassSchema(DummyEntityWithTypeDeclarations::class)) @@ -191,10 +169,7 @@ final class PropertyWithTypeDeclarationsTest extends UnitTestCase } // Union Type Properties (as of PHP 8.0) - - /** - * @test - */ + #[Test] public function intOrStringProperty(): void { $property = (new ClassSchema(DummyEntityWithTypeDeclarations::class)) @@ -210,9 +185,7 @@ final class PropertyWithTypeDeclarationsTest extends UnitTestCase self::assertSame('string', $property->getPrimaryType()?->getBuiltinType()); } - /** - * @test - */ + #[Test] public function nullableIntOrStringProperty(): void { $propertyTypes = (new ClassSchema(DummyEntityWithTypeDeclarations::class)) @@ -225,9 +198,7 @@ final class PropertyWithTypeDeclarationsTest extends UnitTestCase self::assertTrue($propertyTypes[1]->isNullable()); } - /** - * @test - */ + #[Test] public function concreteEntityOrLazyLoadingProxyProperty(): void { $property = (new ClassSchema(DummyEntityWithTypeDeclarations::class)) @@ -240,9 +211,7 @@ final class PropertyWithTypeDeclarationsTest extends UnitTestCase self::assertSame(DummyEntityWithTypeDeclarations::class, $property->getPrimaryType()?->getClassName()); } - /** - * @test - */ + #[Test] public function objectStorageProperty(): void { $propertyTypes = (new ClassSchema(DummyEntityWithTypeDeclarations::class)) @@ -253,9 +222,7 @@ final class PropertyWithTypeDeclarationsTest extends UnitTestCase self::assertSame(DummyEntityWithTypeDeclarations::class, $propertyTypes[0]->getCollectionValueTypes()[0]->getClassName()); } - /** - * @test - */ + #[Test] public function lazyObjectStorage(): void { $property = (new ClassSchema(DummyEntityWithTypeDeclarations::class)) @@ -269,10 +236,7 @@ final class PropertyWithTypeDeclarationsTest extends UnitTestCase } // Intersection Type Properties (as of PHP 8.1) - - /** - * @test - */ + #[Test] public function arrayAccessAndTraversableProperty(): void { $propertyTypes = (new ClassSchema(DummyEntityWithTypeDeclarations::class)) diff --git a/typo3/sysext/extbase/Tests/Unit/Reflection/ClassSchema/Property/PropertyWithoutTypeDeclarationsTest.php b/typo3/sysext/extbase/Tests/Unit/Reflection/ClassSchema/Property/PropertyWithoutTypeDeclarationsTest.php index 4f92e9a19fa7a80c20e8b4b9e4a0e96bed15bbdf..83aeb22cbbd3dd21f42282f3bb42fe67e0bcfe20 100644 --- a/typo3/sysext/extbase/Tests/Unit/Reflection/ClassSchema/Property/PropertyWithoutTypeDeclarationsTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Reflection/ClassSchema/Property/PropertyWithoutTypeDeclarationsTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Reflection\ClassSchema\Property; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extbase\Persistence\Generic\LazyLoadingProxy; use TYPO3\CMS\Extbase\Persistence\Generic\LazyObjectStorage; use TYPO3\CMS\Extbase\Persistence\ObjectStorage; @@ -26,9 +27,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class PropertyWithoutTypeDeclarationsTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function nullableMixedProperty(): void { $property = (new ClassSchema(DummyEntityWithoutTypeDeclarations::class)) @@ -38,9 +37,7 @@ final class PropertyWithoutTypeDeclarationsTest extends UnitTestCase self::assertTrue($property->isNullable()); } - /** - * @test - */ + #[Test] public function intProperty(): void { $propertyTypes = (new ClassSchema(DummyEntityWithoutTypeDeclarations::class)) @@ -50,9 +47,7 @@ final class PropertyWithoutTypeDeclarationsTest extends UnitTestCase self::assertSame('int', $propertyTypes[0]->getBuiltinType()); } - /** - * @test - */ + #[Test] public function floatProperty(): void { $propertyTypes = (new ClassSchema(DummyEntityWithoutTypeDeclarations::class)) @@ -62,9 +57,7 @@ final class PropertyWithoutTypeDeclarationsTest extends UnitTestCase self::assertSame('float', $propertyTypes[0]->getBuiltinType()); } - /** - * @test - */ + #[Test] public function boolProperty(): void { $propertyTypes = (new ClassSchema(DummyEntityWithoutTypeDeclarations::class)) @@ -74,9 +67,7 @@ final class PropertyWithoutTypeDeclarationsTest extends UnitTestCase self::assertSame('bool', $propertyTypes[0]->getBuiltinType()); } - /** - * @test - */ + #[Test] public function objectProperty(): void { $propertyTypes = (new ClassSchema(DummyEntityWithoutTypeDeclarations::class)) @@ -86,9 +77,7 @@ final class PropertyWithoutTypeDeclarationsTest extends UnitTestCase self::assertSame('object', $propertyTypes[0]->getBuiltinType()); } - /** - * @test - */ + #[Test] public function arrayProperty(): void { $propertyTypes = (new ClassSchema(DummyEntityWithoutTypeDeclarations::class)) @@ -98,9 +87,7 @@ final class PropertyWithoutTypeDeclarationsTest extends UnitTestCase self::assertSame('array', $propertyTypes[0]->getBuiltinType()); } - /** - * @test - */ + #[Test] public function mixedProperty(): void { $propertyTypes = (new ClassSchema(DummyEntityWithoutTypeDeclarations::class)) @@ -109,9 +96,7 @@ final class PropertyWithoutTypeDeclarationsTest extends UnitTestCase self::assertSame([], $propertyTypes); } - /** - * @test - */ + #[Test] public function nullableIntProperty(): void { $propertyTypes = (new ClassSchema(DummyEntityWithoutTypeDeclarations::class)) @@ -123,10 +108,7 @@ final class PropertyWithoutTypeDeclarationsTest extends UnitTestCase } // Collection Type Properties - - /** - * @test - */ + #[Test] public function listWithSquareBracketsSyntaxProperty(): void { $propertyTypes = (new ClassSchema(DummyEntityWithoutTypeDeclarations::class)) @@ -143,9 +125,7 @@ final class PropertyWithoutTypeDeclarationsTest extends UnitTestCase self::assertSame('string', $propertyTypes[0]->getCollectionValueTypes()[0]->getBuiltinType()); } - /** - * @test - */ + #[Test] public function listWithArraySyntaxWithoutKeyValueTypeProperty(): void { $propertyTypes = (new ClassSchema(DummyEntityWithoutTypeDeclarations::class)) @@ -162,9 +142,7 @@ final class PropertyWithoutTypeDeclarationsTest extends UnitTestCase self::assertSame('string', $propertyTypes[0]->getCollectionValueTypes()[0]->getBuiltinType()); } - /** - * @test - */ + #[Test] public function listWithArraySyntaxWithKeyValueTypeProperty(): void { $propertyTypes = (new ClassSchema(DummyEntityWithoutTypeDeclarations::class)) @@ -181,9 +159,7 @@ final class PropertyWithoutTypeDeclarationsTest extends UnitTestCase self::assertSame('string', $propertyTypes[0]->getCollectionValueTypes()[0]->getBuiltinType()); } - /** - * @test - */ + #[Test] public function objectStorageWithArraySyntaxWithoutKeyValueTypeProperty(): void { $propertyTypes = (new ClassSchema(DummyEntityWithoutTypeDeclarations::class)) @@ -203,10 +179,7 @@ final class PropertyWithoutTypeDeclarationsTest extends UnitTestCase } // Union Type Properties (as of PHP 8.0) - - /** - * @test - */ + #[Test] public function intOrStringProperty(): void { $propertyTypes = (new ClassSchema(DummyEntityWithoutTypeDeclarations::class)) @@ -219,9 +192,7 @@ final class PropertyWithoutTypeDeclarationsTest extends UnitTestCase self::assertFalse($propertyTypes[1]->isNullable()); } - /** - * @test - */ + #[Test] public function nullableIntOrStringProperty(): void { $propertyTypes = (new ClassSchema(DummyEntityWithoutTypeDeclarations::class)) @@ -234,9 +205,7 @@ final class PropertyWithoutTypeDeclarationsTest extends UnitTestCase self::assertTrue($propertyTypes[1]->isNullable()); } - /** - * @test - */ + #[Test] public function concreteEntityOrLazyLoadingProxyProperty(): void { $property = (new ClassSchema(DummyEntityWithoutTypeDeclarations::class)) @@ -249,9 +218,7 @@ final class PropertyWithoutTypeDeclarationsTest extends UnitTestCase self::assertSame(DummyEntityWithoutTypeDeclarations::class, $property->getPrimaryType()?->getClassName()); } - /** - * @test - */ + #[Test] public function objectStorageProperty(): void { $propertyTypes = (new ClassSchema(DummyEntityWithoutTypeDeclarations::class)) @@ -262,9 +229,7 @@ final class PropertyWithoutTypeDeclarationsTest extends UnitTestCase self::assertSame(DummyEntityWithoutTypeDeclarations::class, $propertyTypes[0]->getCollectionValueTypes()[0]->getClassName()); } - /** - * @test - */ + #[Test] public function lazyObjectStorage(): void { $property = (new ClassSchema(DummyEntityWithoutTypeDeclarations::class)) @@ -278,10 +243,7 @@ final class PropertyWithoutTypeDeclarationsTest extends UnitTestCase } // Intersection Type Properties (as of PHP 8.1) - - /** - * @test - */ + #[Test] public function arrayAccessAndTraversableProperty(): void { self::markTestSkipped('Current version of phpdoc reflection cannot detect intersection types'); diff --git a/typo3/sysext/extbase/Tests/Unit/Reflection/ClassSchema/PropertyTest.php b/typo3/sysext/extbase/Tests/Unit/Reflection/ClassSchema/PropertyTest.php index af0b4424313e7cdb9153395274bc34a273caccda..685bb7593b31b0cbcfe9d02da2c6697a6159f36d 100644 --- a/typo3/sysext/extbase/Tests/Unit/Reflection/ClassSchema/PropertyTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Reflection/ClassSchema/PropertyTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Reflection\ClassSchema; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extbase\Persistence\ObjectStorage; use TYPO3\CMS\Extbase\Reflection\ClassSchema; use TYPO3\CMS\Extbase\Tests\Unit\Reflection\Fixture\DummyClassWithAllTypesOfProperties; @@ -32,27 +33,21 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; */ final class PropertyTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function classSchemaDetectsPropertiesWithLazyAnnotation(): void { $classSchema = new ClassSchema(DummyClassWithLazyDoctrineAnnotation::class); self::assertTrue($classSchema->getProperty('propertyWithLazyAnnotation')->isLazy()); } - /** - * @test - */ + #[Test] public function classSchemaDetectsPropertiesWithLazyAttribute(): void { $classSchema = new ClassSchema(DummyClassWithLazyDoctrineAnnotation::class); self::assertTrue($classSchema->getProperty('propertyWithLazyAttribute')->isLazy()); } - /** - * @test - */ + #[Test] public function classSchemaDetectsPropertyVisibility(): void { $classSchema = new ClassSchema(DummyClassWithAllTypesOfProperties::class); @@ -73,9 +68,7 @@ final class PropertyTest extends UnitTestCase self::assertTrue($property->isPrivate()); } - /** - * @test - */ + #[Test] public function classSchemaDetectsTransientProperty(): void { $property = (new ClassSchema(DummyClassWithAllTypesOfProperties::class)) @@ -84,9 +77,7 @@ final class PropertyTest extends UnitTestCase self::assertTrue($property->isTransient()); } - /** - * @test - */ + #[Test] public function classSchemaDetectsTransientPropertyFromAttribute(): void { $property = (new ClassSchema(DummyClassWithAllTypesOfProperties::class)) @@ -95,9 +86,7 @@ final class PropertyTest extends UnitTestCase self::assertTrue($property->isTransient()); } - /** - * @test - */ + #[Test] public function classSchemaDetectsCascadeProperty(): void { $property = (new ClassSchema(DummyClassWithAllTypesOfProperties::class)) @@ -106,9 +95,7 @@ final class PropertyTest extends UnitTestCase self::assertSame('remove', $property->getCascadeValue()); } - /** - * @test - */ + #[Test] public function classSchemaDetectsCascadePropertyFromAttribute(): void { $property = (new ClassSchema(DummyClassWithAllTypesOfProperties::class)) @@ -117,9 +104,7 @@ final class PropertyTest extends UnitTestCase self::assertSame('remove', $property->getCascadeValue()); } - /** - * @test - */ + #[Test] public function classSchemaDetectsCascadePropertyOnlyWithVarAnnotation(): void { $property = (new ClassSchema(DummyClassWithAllTypesOfProperties::class)) @@ -128,9 +113,7 @@ final class PropertyTest extends UnitTestCase self::assertNull($property->getCascadeValue()); } - /** - * @test - */ + #[Test] public function classSchemaDetectsTypeAndElementType(): void { $property = (new ClassSchema(DummyClassWithAllTypesOfProperties::class)) @@ -152,9 +135,7 @@ final class PropertyTest extends UnitTestCase self::assertSame(DummyClassWithAllTypesOfProperties::class, $propertyType->getCollectionValueTypes()[0]->getClassName()); } - /** - * @test - */ + #[Test] public function classSchemaDetectsTypeAndElementTypeWithoutFQCN(): void { $property = (new ClassSchema(DummyClassWithAllTypesOfProperties::class)) @@ -166,9 +147,7 @@ final class PropertyTest extends UnitTestCase self::assertSame(DummyClassWithAllTypesOfProperties::class, $property->getTypes()[0]->getCollectionValueTypes()[0]->getClassName()); } - /** - * @test - */ + #[Test] public function classSchemaDetectsValidateAnnotationsModelProperties(): void { $this->resetSingletonInstances = true; @@ -214,9 +193,7 @@ final class PropertyTest extends UnitTestCase $property->getValidators() ); } - /** - * @test - */ + #[Test] public function classSchemaDetectsValidateAttributeModelProperties(): void { $this->resetSingletonInstances = true; @@ -263,9 +240,7 @@ final class PropertyTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function classSchemaDetectsValidateAttributeOnPromotedModelProperties(): void { $this->resetSingletonInstances = true; @@ -312,9 +287,7 @@ final class PropertyTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function classSchemaDetectsTypeFromPropertyWithStringTypeHint(): void { $property = (new ClassSchema(DummyClassWithAllTypesOfProperties::class)) @@ -324,9 +297,7 @@ final class PropertyTest extends UnitTestCase self::assertSame('string', $property->getTypes()[0]->getBuiltinType()); } - /** - * @test - */ + #[Test] public function classSchemaDetectsTypeFromPropertyWithNullableStringTypeHint(): void { $property = (new ClassSchema(DummyClassWithAllTypesOfProperties::class)) @@ -336,9 +307,7 @@ final class PropertyTest extends UnitTestCase self::assertSame('string', $property->getTypes()[0]->getBuiltinType()); } - /** - * @test - */ + #[Test] public function isObjectStorageTypeDetectsObjectStorage(): void { $property = (new ClassSchema(DummyClassWithAllTypesOfProperties::class)) @@ -347,9 +316,7 @@ final class PropertyTest extends UnitTestCase self::assertTrue($property->isObjectStorageType()); } - /** - * @test - */ + #[Test] public function isObjectStorageTypeDetectsLazyObjectStorage(): void { $property = (new ClassSchema(DummyClassWithAllTypesOfProperties::class)) @@ -358,9 +325,7 @@ final class PropertyTest extends UnitTestCase self::assertTrue($property->isObjectStorageType()); } - /** - * @test - */ + #[Test] public function filterLazyLoadingProxyAndLazyObjectStorageFiltersLazyLoadingProxy(): void { $property = (new ClassSchema(DummyClassWithAllTypesOfProperties::class)) @@ -372,9 +337,7 @@ final class PropertyTest extends UnitTestCase self::assertSame(DummyClassWithAllTypesOfProperties::class, $types[0]->getClassName()); } - /** - * @test - */ + #[Test] public function filterLazyLoadingProxyAndLazyObjectStorageFiltersLazyObjectStorage(): void { $property = (new ClassSchema(DummyClassWithAllTypesOfProperties::class)) diff --git a/typo3/sysext/extbase/Tests/Unit/Reflection/ClassSchemaTest.php b/typo3/sysext/extbase/Tests/Unit/Reflection/ClassSchemaTest.php index d183730aa1bdd54a8c6a14d9660afd443d72fc5e..a3cd9a345c9732955dc0020b4c090e364be137c1 100644 --- a/typo3/sysext/extbase/Tests/Unit/Reflection/ClassSchemaTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Reflection/ClassSchemaTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Reflection; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Cache\Frontend\NullFrontend; use TYPO3\CMS\Extbase\DomainObject\AbstractDomainObject; use TYPO3\CMS\Extbase\Reflection\ClassSchema; @@ -38,9 +39,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ClassSchemaTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function classSchemaForModelIsSetAggregateRootIfRepositoryClassIsFoundForNamespacedClasses(): void { $this->resetSingletonInstances = true; @@ -49,18 +48,14 @@ final class ClassSchemaTest extends UnitTestCase self::assertTrue($classSchema->isAggregateRoot()); } - /** - * @test - */ + #[Test] public function classSchemaHasConstructor(): void { $classSchema = new ClassSchema(DummyClassWithConstructorAndConstructorArguments::class); self::assertTrue($classSchema->hasConstructor()); } - /** - * @test - */ + #[Test] public function classSchemaGetProperties(): void { self::assertSame( @@ -96,9 +91,7 @@ final class ClassSchemaTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function classSchemaHasMethod(): void { $classSchema = new ClassSchema(DummyClassWithAllTypesOfMethods::class); @@ -106,9 +99,7 @@ final class ClassSchemaTest extends UnitTestCase self::assertFalse($classSchema->hasMethod('nonExistentMethod')); } - /** - * @test - */ + #[Test] public function classSchemaGetMethods(): void { self::assertSame( @@ -132,9 +123,7 @@ final class ClassSchemaTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function classSchemaDetectsPropertyDefaultValue(): void { $classSchema = new ClassSchema(DummyClassWithAllTypesOfProperties::class); @@ -143,9 +132,7 @@ final class ClassSchemaTest extends UnitTestCase self::assertSame('foo', $propertyDefinition->getDefaultValue()); } - /** - * @test - */ + #[Test] public function classSchemaSkipsDetectionOfDefaultValuesOfStaticClassProperties(): void { $classSchema = new ClassSchema(DummyClassWithAllTypesOfProperties::class); @@ -154,51 +141,39 @@ final class ClassSchemaTest extends UnitTestCase self::assertNull($propertyDefinition->getDefaultValue()); } - /** - * @test - */ + #[Test] public function classSchemaDetectsSingletons(): void { self::assertTrue((new ClassSchema(DummySingleton::class))->isSingleton()); } - /** - * @test - */ + #[Test] public function classSchemaDetectsModels(): void { self::assertTrue((new ClassSchema(DummyEntity::class))->isModel()); self::assertTrue((new ClassSchema(DummyValueObject::class))->isModel()); } - /** - * @test - */ + #[Test] public function classSchemaDetectsEntities(): void { self::assertTrue((new ClassSchema(DummyEntity::class))->isEntity()); } - /** - * @test - */ + #[Test] public function classSchemaDetectsValueObjects(): void { self::assertTrue((new ClassSchema(DummyValueObject::class))->isValueObject()); } - /** - * @test - */ + #[Test] public function classSchemaDetectsClassName(): void { $this->resetSingletonInstances = true; self::assertSame(DummyModel::class, (new ClassSchema(DummyModel::class))->getClassName()); } - /** - * @test - */ + #[Test] public function classSchemaDetectsNonStaticProperties(): void { self::assertTrue((new ClassSchema(DummyClassWithAllTypesOfProperties::class))->hasProperty('publicProperty')); @@ -206,9 +181,7 @@ final class ClassSchemaTest extends UnitTestCase self::assertTrue((new ClassSchema(DummyClassWithAllTypesOfProperties::class))->hasProperty('privateProperty')); } - /** - * @test - */ + #[Test] public function classSchemaDetectsStaticProperties(): void { self::assertTrue((new ClassSchema(DummyClassWithAllTypesOfProperties::class))->hasProperty('publicStaticProperty')); @@ -216,9 +189,7 @@ final class ClassSchemaTest extends UnitTestCase self::assertTrue((new ClassSchema(DummyClassWithAllTypesOfProperties::class))->hasProperty('privateStaticProperty')); } - /** - * @test - */ + #[Test] public function classSchemaGenerationThrowsExceptionWithValidateDoctrineAnnotationsForParamWithoutTypeHint(): void { $this->resetSingletonInstances = true; @@ -229,9 +200,7 @@ final class ClassSchemaTest extends UnitTestCase new ClassSchema(DummyControllerWithValidateAnnotationWithoutParamTypeHint::class); } - /** - * @test - */ + #[Test] public function classSchemaGenerationThrowsExceptionWithValidateDoctrineAnnotationsForMissingParam(): void { $this->resetSingletonInstances = true; @@ -241,9 +210,7 @@ final class ClassSchemaTest extends UnitTestCase new ClassSchema(DummyControllerWithValidateAnnotationWithoutParam::class); } - /** - * @test - */ + #[Test] public function classSchemaGenerationThrowsExceptionWithValidateDoctrineAttributesForParamWithoutTypeHint(): void { $this->resetSingletonInstances = true; @@ -254,9 +221,7 @@ final class ClassSchemaTest extends UnitTestCase new ClassSchema(DummyControllerWithValidateAttributeWithoutParamTypeHint::class); } - /** - * @test - */ + #[Test] public function classSchemaGenerationThrowsExceptionWithValidateDoctrineAttributesForMissingParam(): void { $this->resetSingletonInstances = true; @@ -267,9 +232,7 @@ final class ClassSchemaTest extends UnitTestCase new ClassSchema(DummyControllerWithValidateAttributeWithoutParam::class); } - /** - * @test - */ + #[Test] public function classSchemaDetectsMethodParameterTypeViaReflection(): void { $class = new class () { @@ -283,9 +246,7 @@ final class ClassSchemaTest extends UnitTestCase self::assertSame(ClassSchema::class, $classSchema->getMethod('bar')->getParameter('foo')->getType()); } - /** - * @test - */ + #[Test] public function classSchemaPrefersMethodParameterTypeDetectionViaReflection(): void { $class = new class () { @@ -299,9 +260,7 @@ final class ClassSchemaTest extends UnitTestCase self::assertSame('string', $classSchema->getMethod('foo')->getParameter('foo')->getType()); } - /** - * @test - */ + #[Test] public function classSchemaCanHandleSelfMethodReturnTypes(): void { $class = new class () { @@ -319,9 +278,7 @@ final class ClassSchemaTest extends UnitTestCase self::assertSame(get_class($class), $classSchema->getMethod('bar')->getParameter('copy')->getType()); } - /** - * @test - */ + #[Test] public function classSchemaDetectsMethodParameterTypeDetectionViaDocBlocksIfNoTypeHintIsGiven(): void { $classSchema = new ClassSchema(DummyClassWithAllTypesOfMethods::class); diff --git a/typo3/sysext/extbase/Tests/Unit/Reflection/ObjectAccessTest.php b/typo3/sysext/extbase/Tests/Unit/Reflection/ObjectAccessTest.php index 0af67903fee3223b3fe1a9a7e469e843e324f066..ffc4cfd33ac0b871c5b9c81b875b9dc69bc87f0e 100644 --- a/typo3/sysext/extbase/Tests/Unit/Reflection/ObjectAccessTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Reflection/ObjectAccessTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Reflection; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Cache\Frontend\NullFrontend; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Extbase\Persistence\ObjectStorage; @@ -41,27 +43,21 @@ final class ObjectAccessTest extends UnitTestCase $this->dummyObject->setAnotherProperty(42); } - /** - * @test - */ + #[Test] public function getPropertyReturnsExpectedValueForGetterProperty(): void { $property = ObjectAccess::getProperty($this->dummyObject, 'property'); self::assertEquals('string1', $property); } - /** - * @test - */ + #[Test] public function getPropertyReturnsExpectedValueForPublicProperty(): void { $property = ObjectAccess::getProperty($this->dummyObject, 'publicProperty2'); self::assertEquals(42, $property, 'A property of a given object was not returned correctly.'); } - /** - * @test - */ + #[Test] public function getPropertyThrowsExceptionIfPropertyDoesNotExist(): void { $this->expectException(PropertyNotAccessibleException::class); @@ -69,53 +65,41 @@ final class ObjectAccessTest extends UnitTestCase ObjectAccess::getProperty($this->dummyObject, 'notExistingProperty'); } - /** - * @test - */ + #[Test] public function getPropertyReturnsNullIfArrayKeyDoesNotExist(): void { $result = ObjectAccess::getProperty([], 'notExistingProperty'); self::assertNull($result); } - /** - * @test - */ + #[Test] public function getPropertyTriesToCallABooleanGetterMethodIfItExists(): void { $property = ObjectAccess::getProperty($this->dummyObject, 'booleanProperty'); self::assertTrue($property); } - /** - * @test - */ + #[Test] public function setPropertyReturnsFalseIfPropertyIsNotAccessible(): void { self::assertFalse(ObjectAccess::setProperty($this->dummyObject, 'protectedProperty', 42)); } - /** - * @test - */ + #[Test] public function setPropertyCallsASetterMethodToSetThePropertyValueIfOneIsAvailable(): void { ObjectAccess::setProperty($this->dummyObject, 'property', 4242); self::assertEquals(4242, $this->dummyObject->getProperty(), 'setProperty does not work with setter.'); } - /** - * @test - */ + #[Test] public function setPropertyWorksWithPublicProperty(): void { ObjectAccess::setProperty($this->dummyObject, 'publicProperty', 4242); self::assertEquals(4242, $this->dummyObject->publicProperty, 'setProperty does not work with public property.'); } - /** - * @test - */ + #[Test] public function setPropertyCanDirectlySetValuesInAnArrayObjectOrArray(): void { $arrayObject = new \ArrayObject(); @@ -126,9 +110,7 @@ final class ObjectAccessTest extends UnitTestCase self::assertEquals('value', $array['key']); } - /** - * @test - */ + #[Test] public function getPropertyCanAccessPropertiesOfAnArrayObject(): void { $arrayObject = new \ArrayObject(['key' => 'value']); @@ -136,9 +118,7 @@ final class ObjectAccessTest extends UnitTestCase self::assertEquals('value', $actual, 'getProperty does not work with ArrayObject property.'); } - /** - * @test - */ + #[Test] public function getPropertyCanAccessPropertiesOfAnObjectStorageObject(): void { $objectStorage = new ObjectStorage(); @@ -148,9 +128,7 @@ final class ObjectAccessTest extends UnitTestCase self::assertSame($object, $actual, 'getProperty does not work with ObjectStorage property.'); } - /** - * @test - */ + #[Test] public function getPropertyCanAccessPropertiesOfAnObjectImplementingArrayAccess(): void { $arrayAccessInstance = new ArrayAccessClass(['key' => 'value']); @@ -158,9 +136,7 @@ final class ObjectAccessTest extends UnitTestCase self::assertEquals('value', $actual, 'getProperty does not work with Array Access property.'); } - /** - * @test - */ + #[Test] public function getPropertyCanAccessPropertiesOfArrayAccessWithGetterMethodWhenOffsetNotExists(): void { $arrayAccessInstance = new ArrayAccessClass([]); @@ -168,9 +144,7 @@ final class ObjectAccessTest extends UnitTestCase self::assertEquals('default-value', $actual, 'getProperty does not work with Array Access property.'); } - /** - * @test - */ + #[Test] public function getPropertyCanAccessPropertiesOfArrayAccessWithPriorityForOffsetIfOffsetExists(): void { $arrayAccessInstance = new ArrayAccessClass(['virtual' => 'overridden-value']); @@ -178,9 +152,7 @@ final class ObjectAccessTest extends UnitTestCase self::assertEquals('overridden-value', $actual, 'getProperty does not work with Array Access property.'); } - /** - * @test - */ + #[Test] public function getPropertyCanAccessPropertiesOfAnArray(): void { $array = ['key' => 'value']; @@ -188,9 +160,7 @@ final class ObjectAccessTest extends UnitTestCase self::assertEquals('value', $expected, 'getProperty does not work with Array property.'); } - /** - * @test - */ + #[Test] public function getPropertyPathCanAccessPropertiesOfAnArray(): void { $array = ['parent' => ['key' => 'value']]; @@ -198,9 +168,7 @@ final class ObjectAccessTest extends UnitTestCase self::assertEquals('value', $actual, 'getPropertyPath does not work with Array property.'); } - /** - * @test - */ + #[Test] public function getPropertyPathCanAccessPropertiesOfAnObjectImplementingArrayAccess(): void { $array = ['parent' => new \ArrayObject(['key' => 'value'])]; @@ -208,9 +176,7 @@ final class ObjectAccessTest extends UnitTestCase self::assertEquals('value', $actual, 'getPropertyPath does not work with Array Access property.'); } - /** - * @test - */ + #[Test] public function getPropertyPathCanAccessPropertiesOfAnExtbaseObjectStorageObject(): void { $objectStorage = $this->setUpObjectStorageWithTwoItems(); @@ -221,9 +187,7 @@ final class ObjectAccessTest extends UnitTestCase self::assertSame('value2', ObjectAccess::getPropertyPath($array, 'parent.1.key')); } - /** - * @test - */ + #[Test] public function getPropertyPathOnObjectStorageDoesNotAffectOngoingLoop(): void { $objectStorage = $this->setUpObjectStorageWithTwoItems(); @@ -247,9 +211,7 @@ final class ObjectAccessTest extends UnitTestCase return $objectStorage; } - /** - * @test - */ + #[Test] public function getPropertyPathCanAccessPropertiesOfAnSplObjectStorageObject(): void { $objectStorage = $this->setUpSplObjectStorageWithTwoItems(); @@ -260,9 +222,7 @@ final class ObjectAccessTest extends UnitTestCase self::assertSame('value2', ObjectAccess::getPropertyPath($array, 'parent.1.key')); } - /** - * @test - */ + #[Test] public function getPropertyPathOnSplObjectStorageDoesNotAffectOngoingLoop(): void { $objectStorage = $this->setUpSplObjectStorageWithTwoItems(); @@ -286,9 +246,7 @@ final class ObjectAccessTest extends UnitTestCase return $objectStorage; } - /** - * @test - */ + #[Test] public function getGettablePropertyNamesReturnsAllPropertiesWhichAreAvailable(): void { GeneralUtility::setSingletonInstance(ReflectionService::class, new ReflectionService(new NullFrontend('extbase'), 'ClassSchemata')); @@ -297,9 +255,7 @@ final class ObjectAccessTest extends UnitTestCase self::assertEquals($gettablePropertyNames, $expectedPropertyNames, 'getGettablePropertyNames returns not all gettable properties.'); } - /** - * @test - */ + #[Test] public function getGettablePropertyNamesRespectsMethodArguments(): void { $dateTimeZone = new \DateTimeZone('+2'); @@ -311,9 +267,7 @@ final class ObjectAccessTest extends UnitTestCase } } - /** - * @test - */ + #[Test] public function getSettablePropertyNamesReturnsAllPropertiesWhichAreAvailable(): void { GeneralUtility::setSingletonInstance(ReflectionService::class, new ReflectionService(new NullFrontend('extbase'), 'ClassSchemata')); @@ -322,9 +276,7 @@ final class ObjectAccessTest extends UnitTestCase self::assertEquals($settablePropertyNames, $expectedPropertyNames, 'getSettablePropertyNames returns not all settable properties.'); } - /** - * @test - */ + #[Test] public function getSettablePropertyNamesReturnsPropertyNamesOfStdClass(): void { $stdClassObject = new \stdClass(); @@ -335,9 +287,7 @@ final class ObjectAccessTest extends UnitTestCase self::assertEquals($expectedPropertyNames, $settablePropertyNames, 'getSettablePropertyNames returns not all settable properties.'); } - /** - * @test - */ + #[Test] public function getGettablePropertiesReturnsTheCorrectValuesForAllProperties(): void { GeneralUtility::setSingletonInstance(ReflectionService::class, new ReflectionService(new NullFrontend('extbase'), 'ClassSchemata')); @@ -355,9 +305,7 @@ final class ObjectAccessTest extends UnitTestCase self::assertEquals($allProperties, $expectedProperties, 'expectedProperties did not return the right values for the properties.'); } - /** - * @test - */ + #[Test] public function getGettablePropertiesReturnsPropertiesOfStdClass(): void { $stdClassObject = new \stdClass(); @@ -373,9 +321,7 @@ final class ObjectAccessTest extends UnitTestCase self::assertEquals($expectedProperties, $allProperties, 'expectedProperties did not return the right values for the properties.'); } - /** - * @test - */ + #[Test] public function isPropertySettableTellsIfAPropertyCanBeSet(): void { self::assertTrue(ObjectAccess::isPropertySettable($this->dummyObject, 'writeOnlyMagicProperty')); @@ -384,9 +330,7 @@ final class ObjectAccessTest extends UnitTestCase self::assertFalse(ObjectAccess::isPropertySettable($this->dummyObject, 'privateProperty')); } - /** - * @test - */ + #[Test] public function isPropertySettableWorksOnStdClass(): void { $stdClassObject = new \stdClass(); @@ -396,12 +340,11 @@ final class ObjectAccessTest extends UnitTestCase } /** - * @dataProvider propertyGettableTestValues - * @test - * * @param string $property * @param bool $expected */ + #[DataProvider('propertyGettableTestValues')] + #[Test] public function isPropertyGettableTellsIfAPropertyCanBeRetrieved($property, $expected): void { self::assertEquals($expected, ObjectAccess::isPropertyGettable($this->dummyObject, $property)); @@ -419,9 +362,7 @@ final class ObjectAccessTest extends UnitTestCase ]; } - /** - * @test - */ + #[Test] public function isPropertyGettableWorksOnArrayAccessObjects(): void { $arrayObject = new \ArrayObject(); @@ -430,9 +371,7 @@ final class ObjectAccessTest extends UnitTestCase self::assertFalse(ObjectAccess::isPropertyGettable($arrayObject, 'undefinedKey')); } - /** - * @test - */ + #[Test] public function isPropertyGettableWorksOnObjectsMixingRegularPropertiesAndArrayAccess(): void { /** @var \ArrayAccess $object */ @@ -453,9 +392,7 @@ final class ObjectAccessTest extends UnitTestCase self::assertSame('v', ObjectAccess::getProperty($object, 'key')); } - /** - * @test - */ + #[Test] public function isPropertyGettableWorksOnStdClass(): void { $stdClassObject = new \stdClass(); @@ -464,9 +401,7 @@ final class ObjectAccessTest extends UnitTestCase self::assertFalse(ObjectAccess::isPropertyGettable($stdClassObject, 'undefinedProperty')); } - /** - * @test - */ + #[Test] public function getPropertyPathCanRecursivelyGetPropertiesOfAnObject(): void { $alternativeObject = new DummyClassWithGettersAndSetters(); @@ -477,9 +412,7 @@ final class ObjectAccessTest extends UnitTestCase self::assertEquals($expected, $actual); } - /** - * @test - */ + #[Test] public function getPropertyPathReturnsNullForNonExistingPropertyPath(): void { $alternativeObject = new DummyClassWithGettersAndSetters(); @@ -488,18 +421,14 @@ final class ObjectAccessTest extends UnitTestCase self::assertNull(ObjectAccess::getPropertyPath($this->dummyObject, 'property2.property.not.existing')); } - /** - * @test - */ + #[Test] public function getPropertyPathReturnsNullIfSubjectIsNoObject(): void { $string = 'Hello world'; self::assertNull(ObjectAccess::getPropertyPath($string, 'property2')); } - /** - * @test - */ + #[Test] public function getPropertyPathReturnsNullIfSubjectOnPathIsNoObject(): void { $object = new \stdClass(); diff --git a/typo3/sysext/extbase/Tests/Unit/Reflection/ReflectionServiceTest.php b/typo3/sysext/extbase/Tests/Unit/Reflection/ReflectionServiceTest.php index 4d04bb3253cec7422a60eaffa8f0486f02401d87..a30e38b7b3091fd21699b864734b8b561290464a 100644 --- a/typo3/sysext/extbase/Tests/Unit/Reflection/ReflectionServiceTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Reflection/ReflectionServiceTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Reflection; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Cache\Frontend\NullFrontend; use TYPO3\CMS\Extbase\Reflection\ClassSchema; use TYPO3\CMS\Extbase\Reflection\Exception\UnknownClassException; @@ -31,9 +32,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; */ final class ReflectionServiceTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getClassSchemaThrowsExceptionIfClassIsNotFound(): void { $this->expectException(UnknownClassException::class); @@ -43,9 +42,7 @@ final class ReflectionServiceTest extends UnitTestCase $reflectionService->getClassSchema('Foo\Bar\Not\Existing'); } - /** - * @test - */ + #[Test] public function getClassSchemaThrowsExceptionIfTypeHintedClassWasNotFound(): void { $this->expectException(UnknownClassException::class); @@ -55,9 +52,7 @@ final class ReflectionServiceTest extends UnitTestCase $reflectionService->getClassSchema(DummyClassWithInvalidTypeHint::class); } - /** - * @test - */ + #[Test] public function reflectionServiceCanBeSerializedAndUnserialized(): void { $class = new class () {}; @@ -72,9 +67,7 @@ final class ReflectionServiceTest extends UnitTestCase self::assertInstanceOf(ClassSchema::class, $reflectionService->getClassSchema($class)); } - /** - * @test - */ + #[Test] public function reflectionServiceCanBeSerializedAndUnserializedWithCacheManager(): void { $class = new class () {}; diff --git a/typo3/sysext/extbase/Tests/Unit/Routing/Aspect/StaticRangeMapperTest.php b/typo3/sysext/extbase/Tests/Unit/Routing/Aspect/StaticRangeMapperTest.php index 48ded58d030d24e71c3877fd4c356e213ecae4ce..d614c1501fd7cd76404d83dc4a904ed1deca0274 100644 --- a/typo3/sysext/extbase/Tests/Unit/Routing/Aspect/StaticRangeMapperTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Routing/Aspect/StaticRangeMapperTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Routing\Aspect; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\TestCase; use TYPO3\CMS\Core\Routing\Aspect\StaticRangeMapper; @@ -177,10 +179,8 @@ final class StaticRangeMapperTest extends TestCase ]; } - /** - * @test - * @dataProvider valueSettingsDataProvider - */ + #[DataProvider('valueSettingsDataProvider')] + #[Test] public function resolveDeterminesValues(string $start, string $end, array $expectations): void { $subject = new StaticRangeMapper([ diff --git a/typo3/sysext/extbase/Tests/Unit/Security/Cryptography/HashServiceTest.php b/typo3/sysext/extbase/Tests/Unit/Security/Cryptography/HashServiceTest.php index e98bae5c0312257cb605048944bb57f2bf397d78..6a46a43890cdba77096c23b0b7e339ce83709969 100644 --- a/typo3/sysext/extbase/Tests/Unit/Security/Cryptography/HashServiceTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Security/Cryptography/HashServiceTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Security\Cryptography; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extbase\Security\Cryptography\HashService; use TYPO3\CMS\Extbase\Security\Exception\InvalidArgumentForHashGenerationException; use TYPO3\CMS\Extbase\Security\Exception\InvalidHashException; @@ -33,27 +34,21 @@ final class HashServiceTest extends UnitTestCase $GLOBALS['TYPO3_CONF_VARS']['SYS']['encryptionKey'] = 'Testing'; } - /** - * @test - */ + #[Test] public function generateHmacReturnsHashStringIfStringIsGiven(): void { $hash = $this->hashService->generateHmac('asdf'); self::assertIsString($hash); } - /** - * @test - */ + #[Test] public function generateHmacReturnsHashStringWhichContainsSomeSalt(): void { $hash = $this->hashService->generateHmac('asdf'); self::assertNotEquals(sha1('asdf'), $hash); } - /** - * @test - */ + #[Test] public function generateHmacReturnsDifferentHashStringsForDifferentInputStrings(): void { $hash1 = $this->hashService->generateHmac('asdf'); @@ -61,9 +56,7 @@ final class HashServiceTest extends UnitTestCase self::assertNotEquals($hash1, $hash2); } - /** - * @test - */ + #[Test] public function generatedHmacCanBeValidatedAgain(): void { $string = 'asdf'; @@ -71,9 +64,7 @@ final class HashServiceTest extends UnitTestCase self::assertTrue($this->hashService->validateHmac($string, $hash)); } - /** - * @test - */ + #[Test] public function generatedHmacWillNotBeValidatedIfHashHasBeenChanged(): void { $string = 'asdf'; @@ -81,9 +72,7 @@ final class HashServiceTest extends UnitTestCase self::assertFalse($this->hashService->validateHmac($string, $hash)); } - /** - * @test - */ + #[Test] public function appendHmacAppendsHmacToGivenString(): void { $string = 'This is some arbitrary string '; @@ -91,9 +80,7 @@ final class HashServiceTest extends UnitTestCase self::assertSame($string, substr($hashedString, 0, -40)); } - /** - * @test - */ + #[Test] public function validateAndStripHmacThrowsExceptionIfGivenStringIsTooShort(): void { $this->expectException(InvalidArgumentForHashGenerationException::class); @@ -101,9 +88,7 @@ final class HashServiceTest extends UnitTestCase $this->hashService->validateAndStripHmac('string with less than 40 characters'); } - /** - * @test - */ + #[Test] public function validateAndStripHmacThrowsExceptionIfGivenStringHasNoHashAppended(): void { $this->expectException(InvalidHashException::class); @@ -111,9 +96,7 @@ final class HashServiceTest extends UnitTestCase $this->hashService->validateAndStripHmac('string with exactly a length 40 of chars'); } - /** - * @test - */ + #[Test] public function validateAndStripHmacThrowsExceptionIfTheAppendedHashIsInvalid(): void { $this->expectException(InvalidHashException::class); @@ -121,9 +104,7 @@ final class HashServiceTest extends UnitTestCase $this->hashService->validateAndStripHmac('some Stringac43682075d36592d4cb320e69ff0aa515886eab'); } - /** - * @test - */ + #[Test] public function validateAndStripHmacReturnsTheStringWithoutHmac(): void { $string = ' Some arbitrary string with special characters: öäüß!"§$ '; diff --git a/typo3/sysext/extbase/Tests/Unit/Service/CacheServiceTest.php b/typo3/sysext/extbase/Tests/Unit/Service/CacheServiceTest.php index 5d9e8e3c9cf53cbd26b037574069447a629cd96b..c28cb88fc4a271891f09cdea901f5b3a383d39f0 100644 --- a/typo3/sysext/extbase/Tests/Unit/Service/CacheServiceTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Service/CacheServiceTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Service; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Core\Cache\CacheManager; use TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface; @@ -37,45 +38,35 @@ final class CacheServiceTest extends UnitTestCase $this->cacheService = new CacheService($configurationManager, $this->cacheManagerMock); } - /** - * @test - */ + #[Test] public function clearPageCacheConvertsPageIdsToArray(): void { $this->cacheManagerMock->expects(self::once())->method('flushCachesInGroupByTags')->with('pages', ['pageId_123']); $this->cacheService->clearPageCache(123); } - /** - * @test - */ + #[Test] public function clearPageCacheConvertsPageIdsToNumericArray(): void { $this->cacheManagerMock->expects(self::once())->method('flushCachesInGroupByTags')->with('pages', ['pageId_0']); $this->cacheService->clearPageCache('Foo'); } - /** - * @test - */ + #[Test] public function clearPageCacheDoesNotConvertPageIdsIfNoneAreSpecified(): void { $this->cacheManagerMock->expects(self::once())->method('flushCachesInGroup')->with('pages'); $this->cacheService->clearPageCache(); } - /** - * @test - */ + #[Test] public function clearPageCacheUsesCacheManagerToFlushCacheOfSpecifiedPages(): void { $this->cacheManagerMock->expects(self::once())->method('flushCachesInGroupByTags')->with('pages', ['pageId_1', 'pageId_2', 'pageId_3']); $this->cacheService->clearPageCache([1, 2, 3]); } - /** - * @test - */ + #[Test] public function clearsCachesOfRegisteredPageIds(): void { $this->cacheManagerMock->expects(self::once())->method('flushCachesInGroupByTags')->with('pages', ['pageId_2', 'pageId_15', 'pageId_8']); @@ -87,9 +78,7 @@ final class CacheServiceTest extends UnitTestCase $this->cacheService->clearCachesOfRegisteredPageIds(); } - /** - * @test - */ + #[Test] public function clearsCachesOfDuplicateRegisteredPageIdsOnlyOnce(): void { $this->cacheManagerMock->expects(self::once())->method('flushCachesInGroupByTags')->with('pages', ['pageId_2', 'pageId_15', 'pageId_8']); diff --git a/typo3/sysext/extbase/Tests/Unit/Service/ExtensionServiceTest.php b/typo3/sysext/extbase/Tests/Unit/Service/ExtensionServiceTest.php index a9e3ee12d5ea173acc2ef63a7296e84182fa68ca..ae71fb65f8e22a7298742ecf4d223d329fe2cf77 100644 --- a/typo3/sysext/extbase/Tests/Unit/Service/ExtensionServiceTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Service/ExtensionServiceTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Service; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Core\Database\Connection; use TYPO3\CMS\Core\Database\ConnectionPool; @@ -127,12 +129,12 @@ final class ExtensionServiceTest extends UnitTestCase } /** - * @test - * @dataProvider getPluginNamespaceDataProvider * @param string $extensionName * @param string $pluginName * @param mixed $expectedResult */ + #[DataProvider('getPluginNamespaceDataProvider')] + #[Test] public function getPluginNamespaceTests($extensionName, $pluginName, $expectedResult): void { $this->mockConfigurationManager->expects(self::once())->method('getConfiguration')->willReturn([]); @@ -140,9 +142,7 @@ final class ExtensionServiceTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult, 'Failing for extension: "' . $extensionName . '", plugin: "' . $pluginName . '"'); } - /** - * @test - */ + #[Test] public function pluginNamespaceCanBeOverridden(): void { $this->mockConfigurationManager->expects(self::once())->method('getConfiguration')->with(ConfigurationManagerInterface::CONFIGURATION_TYPE_FRAMEWORK, 'SomeExtension', 'SomePlugin')->willReturn(['view' => ['pluginNamespace' => 'overridden_plugin_namespace']]); @@ -167,10 +167,10 @@ final class ExtensionServiceTest extends UnitTestCase } /** - * @test - * @dataProvider getPluginNameByActionDataProvider * @param mixed $expectedResult */ + #[DataProvider('getPluginNameByActionDataProvider')] + #[Test] public function getPluginNameByActionTests(string $extensionName, string $controllerName, string $actionName, $expectedResult): void { $this->mockConfigurationManager->expects(self::once())->method('getConfiguration')->with(ConfigurationManagerInterface::CONFIGURATION_TYPE_FRAMEWORK)->willReturn(['view' => ['pluginNamespace' => 'overridden_plugin_namespace']]); @@ -178,9 +178,7 @@ final class ExtensionServiceTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult, 'Failing for $extensionName: "' . $extensionName . '", $controllerName: "' . $controllerName . '", $actionName: "' . $actionName . '" - '); } - /** - * @test - */ + #[Test] public function getPluginNameByActionThrowsExceptionIfMoreThanOnePluginMatches(): void { $this->expectException(Exception::class); @@ -189,9 +187,7 @@ final class ExtensionServiceTest extends UnitTestCase $this->extensionService->getPluginNameByAction('ExtensionName', 'ControllerName', 'otherAction'); } - /** - * @test - */ + #[Test] public function getPluginNameByActionReturnsCurrentIfItCanHandleTheActionEvenIfMoreThanOnePluginMatches(): void { $frameworkConfiguration = [ @@ -216,27 +212,21 @@ final class ExtensionServiceTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function getTargetPidByPluginSignatureReturnsNullIfConfigurationManagerIsNotInitialized(): void { $this->mockConfigurationManager->expects(self::once())->method('getConfiguration')->willReturn([]); self::assertNull($this->extensionService->getTargetPidByPlugin('ExtensionName', 'PluginName')); } - /** - * @test - */ + #[Test] public function getTargetPidByPluginSignatureReturnsNullIfDefaultPidIsZero(): void { $this->mockConfigurationManager->expects(self::once())->method('getConfiguration')->willReturn(['view' => ['defaultPid' => 0]]); self::assertNull($this->extensionService->getTargetPidByPlugin('ExtensionName', 'PluginName')); } - /** - * @test - */ + #[Test] public function getTargetPidByPluginSignatureReturnsTheConfiguredDefaultPid(): void { $this->mockConfigurationManager->expects(self::once())->method('getConfiguration')->willReturn(['view' => ['defaultPid' => 123]]); @@ -245,25 +235,19 @@ final class ExtensionServiceTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function getDefaultControllerNameByPluginReturnsNullIfGivenExtensionCantBeFound(): void { self::assertNull($this->extensionService->getDefaultControllerNameByPlugin('NonExistingExtensionName', 'SomePlugin')); } - /** - * @test - */ + #[Test] public function getDefaultControllerNameByPluginReturnsNullIfGivenPluginCantBeFound(): void { self::assertNull($this->extensionService->getDefaultControllerNameByPlugin('ExtensionName', 'NonExistingPlugin')); } - /** - * @test - */ + #[Test] public function getDefaultControllerNameByPluginReturnsFirstControllerNameOfGivenPlugin(): void { $expectedResult = 'ControllerName'; @@ -271,33 +255,25 @@ final class ExtensionServiceTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function getDefaultActionNameByPluginAndControllerReturnsNullIfGivenExtensionCantBeFound(): void { self::assertNull($this->extensionService->getDefaultActionNameByPluginAndController('NonExistingExtensionName', 'SomePlugin', 'ControllerName')); } - /** - * @test - */ + #[Test] public function getDefaultActionNameByPluginAndControllerReturnsNullIfGivenPluginCantBeFound(): void { self::assertNull($this->extensionService->getDefaultActionNameByPluginAndController('ExtensionName', 'NonExistingPlugin', 'ControllerName')); } - /** - * @test - */ + #[Test] public function getDefaultActionNameByPluginAndControllerReturnsNullIfGivenControllerCantBeFound(): void { self::assertNull($this->extensionService->getDefaultActionNameByPluginAndController('ExtensionName', 'SomePlugin', 'NonExistingControllerName')); } - /** - * @test - */ + #[Test] public function getDefaultActionNameByPluginAndControllerReturnsFirstActionNameOfGivenController(): void { $expectedResult = 'someAction'; @@ -305,9 +281,7 @@ final class ExtensionServiceTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function getTargetPageTypeByFormatReturnsZeroIfNoMappingIsSet(): void { $configurationManagerMock = $this->createMock(ConfigurationManager::class); @@ -322,9 +296,7 @@ final class ExtensionServiceTest extends UnitTestCase self::assertSame(0, $result); } - /** - * @test - */ + #[Test] public function getTargetPageTypeByFormatReturnsMappedPageTypeFromConfiguration(): void { $configurationManagerMock = $this->createMock(ConfigurationManager::class); diff --git a/typo3/sysext/extbase/Tests/Unit/Service/ImageScriptServiceTest.php b/typo3/sysext/extbase/Tests/Unit/Service/ImageScriptServiceTest.php index 9ce7a49080066a49d60c723da019a45763282643..cfbc9129dc49cb7f8fdca154d4f20a2a37788214 100644 --- a/typo3/sysext/extbase/Tests/Unit/Service/ImageScriptServiceTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Service/ImageScriptServiceTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Service; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Core\SystemEnvironmentBuilder; use TYPO3\CMS\Core\Http\ServerRequest; use TYPO3\CMS\Core\Resource\File; @@ -43,9 +45,7 @@ final class ImageScriptServiceTest extends UnitTestCase $_SERVER['HTTP_HOST'] = 'foo.bar'; } - /** - * @test - */ + #[Test] public function fileIsUnwrappedFromReferenceForProcessing(): void { $reference = $this->getMockBuilder(FileReference::class)->disableOriginalConstructor()->getMock(); @@ -68,10 +68,8 @@ final class ImageScriptServiceTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider prefixIsCorrectlyAppliedToGetImageUriDataProvider - */ + #[DataProvider('prefixIsCorrectlyAppliedToGetImageUriDataProvider')] + #[Test] public function prefixIsCorrectlyAppliedToGetImageUri($imageUri, $expected): void { $GLOBALS['TYPO3_REQUEST'] = (new ServerRequest()) @@ -94,10 +92,8 @@ final class ImageScriptServiceTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider prefixIsCorrectlyAppliedToGetImageUriWithAbsolutePathDataProvider - */ + #[DataProvider('prefixIsCorrectlyAppliedToGetImageUriWithAbsolutePathDataProvider')] + #[Test] public function prefixIsCorrectlyAppliedToGetImageUriWithForcedAbsoluteUrl($imageUri, $expected): void { $GLOBALS['TYPO3_REQUEST'] = (new ServerRequest()) diff --git a/typo3/sysext/extbase/Tests/Unit/Utility/DebuggerUtilityTest.php b/typo3/sysext/extbase/Tests/Unit/Utility/DebuggerUtilityTest.php index a5300f0ee11052487fc1238969876f6e931b12d2..5b47a4b94c9ab67f3f52c3384c78d4e4310c0057 100644 --- a/typo3/sysext/extbase/Tests/Unit/Utility/DebuggerUtilityTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Utility/DebuggerUtilityTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Utility; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extbase\Persistence\ObjectStorage; use TYPO3\CMS\Extbase\Tests\Unit\Utility\Fixtures\DebuggerUtilityAccessibleProxy; use TYPO3\CMS\Extbase\Tests\Unit\Utility\Fixtures\DummyClass; @@ -25,9 +26,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class DebuggerUtilityTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function debuggerRewindsInstancesOfIterator(): void { $objectStorage = $this->getMockBuilder(ObjectStorage::class) @@ -42,9 +41,7 @@ final class DebuggerUtilityTest extends UnitTestCase self::assertTrue($objectStorage->valid()); } - /** - * @test - */ + #[Test] public function debuggerDoesNotRewindInstancesOfGenerator(): void { $generator = (static function () { @@ -56,9 +53,7 @@ final class DebuggerUtilityTest extends UnitTestCase self::assertStringContainsString('Generator', $result); } - /** - * @test - */ + #[Test] public function varDumpShowsPropertiesOfStdClassObjects(): void { $testObject = new \stdClass(); @@ -67,18 +62,14 @@ final class DebuggerUtilityTest extends UnitTestCase self::assertMatchesRegularExpression('/foo.*bar/', $result); } - /** - * @test - */ + #[Test] public function varDumpHandlesVariadicArguments(): void { $result = DebuggerUtility::var_dump(static function (...$args) {}, null, 8, true, false, true); self::assertStringContainsString('function (...$args)', $result); } - /** - * @test - */ + #[Test] public function varDumpRespectsBlacklistedProperties(): void { $testClass = new \stdClass(); @@ -89,9 +80,7 @@ final class DebuggerUtilityTest extends UnitTestCase self::assertStringNotContainsString($testClass->secretData, $result); } - /** - * @test - */ + #[Test] public function varDumpRespectsBlacklistedClasses(): void { $testClass = new \stdClass(); @@ -101,9 +90,7 @@ final class DebuggerUtilityTest extends UnitTestCase self::assertStringNotContainsString($testClass->data, $result); } - /** - * @test - */ + #[Test] public function varDumpShowsDumpOfDateTime(): void { $date = \DateTime::createFromFormat('Y-m-d H:i:s', '2018-11-26 09:27:28', new \DateTimeZone('UTC')); @@ -112,9 +99,7 @@ final class DebuggerUtilityTest extends UnitTestCase self::assertStringContainsString('2018-11-26T09:27:28', $result); } - /** - * @test - */ + #[Test] public function varDumpShowsDumpOfDateTimeImmutable(): void { $date = \DateTimeImmutable::createFromFormat('Y-m-d H:i:s', '2018-11-26 09:27:28', new \DateTimeZone('UTC')); @@ -123,9 +108,7 @@ final class DebuggerUtilityTest extends UnitTestCase self::assertStringContainsString('2018-11-26T09:27:28', $result); } - /** - * @test - */ + #[Test] public function varDumpShowsDumpOfClosureWithArrayParameterType(): void { $closure = (static function (array $array) {}); @@ -134,9 +117,7 @@ final class DebuggerUtilityTest extends UnitTestCase self::assertStringContainsString('function (array $array)', $result); } - /** - * @test - */ + #[Test] public function varDumpShowsDumpOfClosureWithNullableArrayParameterTypeShowingOnlyArray(): void { $closure = (static function (?array $array) {}); @@ -145,9 +126,7 @@ final class DebuggerUtilityTest extends UnitTestCase self::assertStringContainsString('function (array $array)', $result); } - /** - * @test - */ + #[Test] public function varDumpShowsDumpOfClosureWithDummyClassParameterType(): void { $closure = (static function (DummyClass $class) {}); @@ -156,9 +135,7 @@ final class DebuggerUtilityTest extends UnitTestCase self::assertStringContainsString('function (TYPO3\CMS\Extbase\Tests\Unit\Utility\Fixtures\DummyClass $class)', $result); } - /** - * @test - */ + #[Test] public function varDumpShowsDumpOfClosureWithIntClassParameterType(): void { $closure = (static function (int $int) {}); @@ -167,9 +144,7 @@ final class DebuggerUtilityTest extends UnitTestCase self::assertStringContainsString('function ($int)', $result); } - /** - * @test - */ + #[Test] public function varDumpShowsDumpOfClosureWithStringClassParameterType(): void { $closure = (static function (string $string) {}); @@ -178,9 +153,7 @@ final class DebuggerUtilityTest extends UnitTestCase self::assertStringContainsString('function ($string)', $result); } - /** - * @test - */ + #[Test] public function varDumpShowsDumpOfClosureWithoutClassParameterType(): void { $closure = (static function ($typeless) {}); @@ -189,9 +162,7 @@ final class DebuggerUtilityTest extends UnitTestCase self::assertStringContainsString('function ($typeless)', $result); } - /** - * @test - */ + #[Test] public function varDumpShowsUninitializedVariable(): void { $class = new class () { @@ -202,9 +173,7 @@ final class DebuggerUtilityTest extends UnitTestCase self::assertStringContainsString('test => protected uninitialized', $result); } - /** - * @test - */ + #[Test] public function varDumpUsesNonceValue(): void { DebuggerUtilityAccessibleProxy::setStylesheetEchoed(false); diff --git a/typo3/sysext/extbase/Tests/Unit/Utility/ExtensionUtilityTest.php b/typo3/sysext/extbase/Tests/Unit/Utility/ExtensionUtilityTest.php index 0eda20b5b74f56aa472002bb813afa548473c57e..94a895fee66b43054d51faf4d1ab2df9dfa26ab3 100644 --- a/typo3/sysext/extbase/Tests/Unit/Utility/ExtensionUtilityTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Utility/ExtensionUtilityTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Utility; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extbase\Tests\Unit\Utility\Fixtures\ExtensionUtilityAccessibleProxy; use TYPO3\CMS\Extbase\Tests\Unit\Utility\Fixtures\MyExtension\Controller\FirstController; use TYPO3\CMS\Extbase\Tests\Unit\Utility\Fixtures\MyExtension\Controller\SecondController; @@ -26,9 +28,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ExtensionUtilityTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function configurePluginWorksForMinimalisticSetup(): void { $GLOBALS['TYPO3_CONF_VARS']['FE']['defaultTypoScript_setup.'] = []; @@ -41,9 +41,7 @@ final class ExtensionUtilityTest extends UnitTestCase self::assertStringNotContainsString('USER_INT', $staticTypoScript); } - /** - * @test - */ + #[Test] public function configurePluginCreatesCorrectDefaultTypoScriptSetup(): void { $GLOBALS['TYPO3_CONF_VARS']['FE']['defaultTypoScript_setup.'] = []; @@ -52,9 +50,7 @@ final class ExtensionUtilityTest extends UnitTestCase self::assertStringContainsString('tt_content.list.20.myextension_pi1 = EXTBASEPLUGIN', $staticTypoScript); } - /** - * @test - */ + #[Test] public function configurePluginWorksForASingleControllerAction(): void { $GLOBALS['TYPO3_CONF_VARS']['FE']['defaultTypoScript_setup.'] = []; @@ -79,9 +75,7 @@ final class ExtensionUtilityTest extends UnitTestCase self::assertEquals($expectedResult, $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['extbase']['extensions']['MyExtension']['plugins']['Pi1']); } - /** - * @test - */ + #[Test] public function configurePluginThrowsExceptionIfExtensionNameIsEmpty(): void { $this->expectException(\InvalidArgumentException::class); @@ -91,9 +85,7 @@ final class ExtensionUtilityTest extends UnitTestCase ]); } - /** - * @test - */ + #[Test] public function configurePluginThrowsExceptionIfPluginNameIsEmpty(): void { $this->expectException(\InvalidArgumentException::class); @@ -103,9 +95,7 @@ final class ExtensionUtilityTest extends UnitTestCase ]); } - /** - * @test - */ + #[Test] public function configurePluginRespectsDefaultActionAsANonCacheableAction(): void { $GLOBALS['TYPO3_CONF_VARS']['FE']['defaultTypoScript_setup.'] = []; @@ -133,9 +123,7 @@ final class ExtensionUtilityTest extends UnitTestCase self::assertEquals($expectedResult, $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['extbase']['extensions']['MyExtension']['plugins']['Pi1']); } - /** - * @test - */ + #[Test] public function configurePluginRespectsNonDefaultActionAsANonCacheableAction(): void { $GLOBALS['TYPO3_CONF_VARS']['FE']['defaultTypoScript_setup.'] = []; @@ -163,9 +151,7 @@ final class ExtensionUtilityTest extends UnitTestCase self::assertEquals($expectedResult, $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['extbase']['extensions']['MyExtension']['plugins']['Pi1']); } - /** - * @test - */ + #[Test] public function configurePluginWorksForMultipleControllerActionsWithCacheableActionAsDefault(): void { $GLOBALS['TYPO3_CONF_VARS']['FE']['defaultTypoScript_setup.'] = []; @@ -202,9 +188,7 @@ final class ExtensionUtilityTest extends UnitTestCase self::assertEquals($expectedResult, $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['extbase']['extensions']['MyExtension']['plugins']['Pi1']); } - /** - * @test - */ + #[Test] public function configurePluginWorksForMultipleControllerActionsAsArrayWithCacheableActionAsDefault(): void { $GLOBALS['TYPO3_CONF_VARS']['FE']['defaultTypoScript_setup.'] = []; @@ -241,9 +225,7 @@ final class ExtensionUtilityTest extends UnitTestCase self::assertEquals($expectedResult, $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['extbase']['extensions']['MyExtension']['plugins']['Pi1']); } - /** - * @test - */ + #[Test] public function configurePluginWorksForMultipleControllerActionsWithNonCacheableActionAsDefault(): void { $GLOBALS['TYPO3_CONF_VARS']['FE']['defaultTypoScript_setup.'] = []; @@ -285,9 +267,8 @@ final class ExtensionUtilityTest extends UnitTestCase /** * Tests method combination of registerPlugin() and its dependency addPlugin() to * verify plugin icon path resolving works. - * - * @test */ + #[Test] public function registerPluginTriggersAddPluginWhichSetsPluginIconPathIfUsingUnderscoredExtensionNameAndIconPathNotGiven(): void { $GLOBALS['TCA']['tt_content']['columns']['list_type']['config']['items'] = []; @@ -306,9 +287,7 @@ final class ExtensionUtilityTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function registerPluginMethodReturnsPluginSignature(): void { $GLOBALS['TCA']['tt_content']['columns']['list_type']['config']['items'] = []; @@ -323,9 +302,8 @@ final class ExtensionUtilityTest extends UnitTestCase /** * Tests method combination of registerPlugin() and its dependency addPlugin() to * verify plugin icon path resolving works. - * - * @test */ + #[Test] public function registerPluginTriggersAddPluginWhichSetsPluginIconPathIfUsingUpperCameCasedExtensionNameAndIconPathNotGiven(): void { $GLOBALS['TCA']['tt_content']['columns']['list_type']['config']['items'] = []; @@ -347,9 +325,8 @@ final class ExtensionUtilityTest extends UnitTestCase /** * Tests method combination of registerPlugin() and its dependency addPlugin() to * verify plugin icon path resolving works. - * - * @test */ + #[Test] public function registerPluginTriggersAddPluginWhichSetsPluginIconPathIfIconPathIsGiven(): void { $GLOBALS['TCA']['tt_content']['columns']['list_type']['config']['items'] = []; @@ -403,10 +380,8 @@ final class ExtensionUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider checkResolveControllerAliasFromControllerClassNameDataProvider - */ + #[DataProvider('checkResolveControllerAliasFromControllerClassNameDataProvider')] + #[Test] public function checkResolveControllerAliasFromControllerClassName(string $expectedControllerAlias, string $controllerClassName): void { self::assertEquals( diff --git a/typo3/sysext/extbase/Tests/Unit/Validation/Validator/AbstractCompositeValidatorTest.php b/typo3/sysext/extbase/Tests/Unit/Validation/Validator/AbstractCompositeValidatorTest.php index 8855417815099505930ee2ca2dd602b0cbd46960..63ab750467cc75014b706c714e41335383ff68b5 100644 --- a/typo3/sysext/extbase/Tests/Unit/Validation/Validator/AbstractCompositeValidatorTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Validation/Validator/AbstractCompositeValidatorTest.php @@ -17,15 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Validation\Validator; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extbase\Tests\Unit\Validation\Validator\Fixture\AbstractCompositeValidatorClass; use TYPO3\CMS\Extbase\Validation\Exception\InvalidValidationOptionsException; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class AbstractCompositeValidatorTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function validatorAcceptsSupportedOptions(): void { $inputOptions = [ @@ -38,9 +37,7 @@ final class AbstractCompositeValidatorTest extends UnitTestCase self::assertSame($expectedOptions, $validator->getOptions()); } - /** - * @test - */ + #[Test] public function validatorHasDefaultOptions(): void { $inputOptions = ['requiredOption' => 666]; @@ -53,9 +50,7 @@ final class AbstractCompositeValidatorTest extends UnitTestCase self::assertSame($expectedOptions, $validator->getOptions()); } - /** - * @test - */ + #[Test] public function validatorThrowsExceptionOnNotSupportedOptions(): void { $inputOptions = ['invalidoption' => 42]; @@ -65,9 +60,7 @@ final class AbstractCompositeValidatorTest extends UnitTestCase $validator->setOptions($inputOptions); } - /** - * @test - */ + #[Test] public function validatorThrowsExceptionOnMissingRequiredOptions(): void { $inputOptions = []; diff --git a/typo3/sysext/extbase/Tests/Unit/Validation/Validator/AbstractValidatorTest.php b/typo3/sysext/extbase/Tests/Unit/Validation/Validator/AbstractValidatorTest.php index fe168bf1f2e6df56280bd115d58864e1cfdfac8a..5291cbc5bc78eceb3f7edfe810c3bea83e4ba632 100644 --- a/typo3/sysext/extbase/Tests/Unit/Validation/Validator/AbstractValidatorTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Validation/Validator/AbstractValidatorTest.php @@ -17,15 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Validation\Validator; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extbase\Tests\Unit\Validation\Validator\Fixture\AbstractValidatorClass; use TYPO3\CMS\Extbase\Validation\Exception\InvalidValidationOptionsException; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class AbstractValidatorTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function validatorAcceptsSupportedOptions(): void { $inputOptions = [ @@ -38,9 +37,7 @@ final class AbstractValidatorTest extends UnitTestCase self::assertSame($expectedOptions, $validator->getOptions()); } - /** - * @test - */ + #[Test] public function validatorHasDefaultOptions(): void { $inputOptions = ['requiredOption' => 666]; @@ -53,9 +50,7 @@ final class AbstractValidatorTest extends UnitTestCase self::assertSame($expectedOptions, $validator->getOptions()); } - /** - * @test - */ + #[Test] public function validatorThrowsExceptionOnNotSupportedOptions(): void { $inputOptions = ['invalidoption' => 42]; @@ -65,9 +60,7 @@ final class AbstractValidatorTest extends UnitTestCase $validator->setOptions($inputOptions); } - /** - * @test - */ + #[Test] public function validatorThrowsExceptionOnMissingRequiredOptions(): void { $inputOptions = []; diff --git a/typo3/sysext/extbase/Tests/Unit/Validation/Validator/DisjunctionValidatorTest.php b/typo3/sysext/extbase/Tests/Unit/Validation/Validator/DisjunctionValidatorTest.php index b7ba998a3d6c5c6e6631686c4706019530e838cc..b9180166db76d04e49b5c0c6a15854a484fe3828 100644 --- a/typo3/sysext/extbase/Tests/Unit/Validation/Validator/DisjunctionValidatorTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Validation/Validator/DisjunctionValidatorTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Validation\Validator; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extbase\Error\Error; use TYPO3\CMS\Extbase\Error\Result; use TYPO3\CMS\Extbase\Validation\Validator\DisjunctionValidator; @@ -25,9 +26,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class DisjunctionValidatorTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function validateReturnsNoErrorsIfOneValidatorReturnsNoError(): void { $validatorDisjunction = new DisjunctionValidator(); @@ -47,9 +46,7 @@ final class DisjunctionValidatorTest extends UnitTestCase self::assertFalse($validatorDisjunction->validate('some subject')->hasErrors()); } - /** - * @test - */ + #[Test] public function validateReturnsAllErrorsIfAllValidatorsReturnErrors(): void { $validatorDisjunction = new DisjunctionValidator(); diff --git a/typo3/sysext/extbase/Tests/Unit/Validation/Validator/GenericObjectValidatorTest.php b/typo3/sysext/extbase/Tests/Unit/Validation/Validator/GenericObjectValidatorTest.php index 8067d58f100ad4057ed4daed1ea23406218633a1..24bc389add452ceb277f69d6b26bdc8f7c1cc945 100644 --- a/typo3/sysext/extbase/Tests/Unit/Validation/Validator/GenericObjectValidatorTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Validation/Validator/GenericObjectValidatorTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Validation\Validator; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extbase\Error\Error; use TYPO3\CMS\Extbase\Error\Result; use TYPO3\CMS\Extbase\Validation\Validator\GenericObjectValidator; @@ -25,17 +27,13 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class GenericObjectValidatorTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function validatorShouldReturnErrorsIfTheValueIsNoObjectAndNotNull(): void { self::assertTrue((new GenericObjectValidator())->validate('foo')->hasErrors()); } - /** - * @test - */ + #[Test] public function validatorShouldReturnNoErrorsIfTheValueIsNull(): void { self::assertFalse((new GenericObjectValidator())->validate(null)->hasErrors()); @@ -75,14 +73,13 @@ final class GenericObjectValidatorTest extends UnitTestCase } /** - * @test - * @dataProvider dataProviderForValidator - * * @param mixed $objectToBeValidated * @param mixed $validationResultForFoo * @param mixed $validationResultForBar * @param mixed $errors */ + #[DataProvider('dataProviderForValidator')] + #[Test] public function validateChecksAllPropertiesForWhichAPropertyValidatorExists($objectToBeValidated, $validationResultForFoo, $validationResultForBar, $errors): void { $validator = new GenericObjectValidator(); @@ -103,9 +100,7 @@ final class GenericObjectValidatorTest extends UnitTestCase self::assertEquals($errors, $validator->validate($objectToBeValidated)->getFlattenedErrors()); } - /** - * @test - */ + #[Test] public function validateCanHandleRecursiveTargetsWithoutEndlessLooping(): void { $A = new class () { @@ -128,9 +123,7 @@ final class GenericObjectValidatorTest extends UnitTestCase self::assertFalse($aValidator->validate($A)->hasErrors()); } - /** - * @test - */ + #[Test] public function validateDetectsFailuresInRecursiveTargetsI(): void { $A = new class () { @@ -162,9 +155,7 @@ final class GenericObjectValidatorTest extends UnitTestCase self::assertSame(['b.uuid' => [$error]], $aValidator->validate($A)->getFlattenedErrors()); } - /** - * @test - */ + #[Test] public function validateDetectsFailuresInRecursiveTargetsII(): void { $A = new class () { @@ -198,9 +189,7 @@ final class GenericObjectValidatorTest extends UnitTestCase self::assertSame(['b.uuid' => [$error1], 'uuid' => [$error1]], $aValidator->validate($A)->getFlattenedErrors()); } - /** - * @test - */ + #[Test] public function validateDetectsFailuresInRecursiveTargetsIII(): void { // Create to test-entities. Use the same uuid to make the same validator trigger on both objects diff --git a/typo3/sysext/extbase/Tests/Unit/Validation/ValidatorClassNameResolverTest.php b/typo3/sysext/extbase/Tests/Unit/Validation/ValidatorClassNameResolverTest.php index 161d5221a0f3b6dab1d8df067f6e540651895ee8..179ac09aefef32f2936a43e0fe42d08c23e4db3d 100644 --- a/typo3/sysext/extbase/Tests/Unit/Validation/ValidatorClassNameResolverTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Validation/ValidatorClassNameResolverTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\Unit\Validation; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extbase\Tests\Unit\Validation\Fixtures\Validation\Validator\CustomValidator; use TYPO3\CMS\Extbase\Tests\Unit\Validation\Fixtures\Validation\Validator\CustomValidatorThatDoesNotImplementValidatorInterfaceValidator; use TYPO3\CMS\Extbase\Validation\Exception\NoSuchValidatorException; @@ -34,18 +36,14 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; */ final class ValidatorClassNameResolverTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function resolveResolvesFullyQualifiedClassNames(): void { $validatorIdentifier = IntegerValidator::class; self::assertSame($validatorIdentifier, ValidatorClassNameResolver::resolve($validatorIdentifier)); } - /** - * @test - */ + #[Test] public function resolveResolvesCoreShorthandIdentifiers(): void { self::assertSame(IntegerValidator::class, ValidatorClassNameResolver::resolve('int')); @@ -55,17 +53,13 @@ final class ValidatorClassNameResolverTest extends UnitTestCase self::assertSame(FloatValidator::class, ValidatorClassNameResolver::resolve('float')); } - /** - * @test - */ + #[Test] public function resolveResolvesExtensionShorthandIdentifiers(): void { self::assertSame(IntegerValidator::class, ValidatorClassNameResolver::resolve('TYPO3.CMS.Extbase:Integer')); } - /** - * @test - */ + #[Test] public function resolveThrowsNoSuchValidatorExceptionDueToMissingClass(): void { $this->expectExceptionCode(1365799920); @@ -88,10 +82,8 @@ final class ValidatorClassNameResolverTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider namespacedShorthandValidatorNamesDataProvider - */ + #[DataProvider('namespacedShorthandValidatorNamesDataProvider')] + #[Test] public function resolveWithShortHandNotationReturnsValidatorNameIfClassExists(string $validatorName, string $expectedClassName): void { self::assertSame( @@ -100,9 +92,7 @@ final class ValidatorClassNameResolverTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function resolveWithShortHandNotationThrowsExceptionIfClassDoesNotExist(): void { $this->expectException(NoSuchValidatorException::class); @@ -112,9 +102,7 @@ final class ValidatorClassNameResolverTest extends UnitTestCase ValidatorClassNameResolver::resolve($validatorName); } - /** - * @test - */ + #[Test] public function resolveThrowsNoSuchValidatorExceptionDueToClassInheritance(): void { $this->expectExceptionCode(1365776838); @@ -130,9 +118,7 @@ final class ValidatorClassNameResolverTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function resolveThrowsExceptionWithValidatorThatDoesNotImplementValidatorInterface(): void { $this->expectException(NoSuchValidatorException::class); @@ -142,9 +128,7 @@ final class ValidatorClassNameResolverTest extends UnitTestCase ValidatorClassNameResolver::resolve($validatorName); } - /** - * @test - */ + #[Test] public function resolveReturnsValidatorNameForFullQualifiedValidatorName(): void { $validatorName = CustomValidator::class; @@ -156,9 +140,7 @@ final class ValidatorClassNameResolverTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function resolveReturnsValidatorNameForFullQualifiedValidatorNameWithLeadingBackslash(): void { $validatorName = '\\' . CustomValidator::class; diff --git a/typo3/sysext/extbase/Tests/UnitDeprecated/Mvc/Web/Routing/UriBuilderTest.php b/typo3/sysext/extbase/Tests/UnitDeprecated/Mvc/Web/Routing/UriBuilderTest.php index efaea1884cbabe4670877d1323b402e23f157ea7..0a0789f49741cf22dad79db51287aee632eec390 100644 --- a/typo3/sysext/extbase/Tests/UnitDeprecated/Mvc/Web/Routing/UriBuilderTest.php +++ b/typo3/sysext/extbase/Tests/UnitDeprecated/Mvc/Web/Routing/UriBuilderTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\UnitDeprecated\Mvc\Web\Routing; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface; use TYPO3\CMS\Extbase\Mvc\Request; @@ -51,9 +52,7 @@ final class UriBuilderTest extends UnitTestCase parent::tearDown(); } - /** - * @test - */ + #[Test] public function removeDefaultControllerAndActionDoesNotModifyArgumentsIfSpecifiedControllerAndActionIsNotEqualToDefaults(): void { $this->mockExtensionService->expects(self::atLeastOnce())->method('getDefaultControllerNameByPlugin')->with('ExtensionName', 'PluginName')->willReturn('DefaultController'); @@ -66,9 +65,7 @@ final class UriBuilderTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function removeDefaultControllerAndActionRemovesControllerIfItIsEqualToTheDefault(): void { $this->mockExtensionService->expects(self::atLeastOnce())->method('getDefaultControllerNameByPlugin')->with('ExtensionName', 'PluginName')->willReturn('DefaultController'); @@ -81,9 +78,7 @@ final class UriBuilderTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function removeDefaultControllerAndActionRemovesActionIfItIsEqualToTheDefault(): void { $this->mockExtensionService->expects(self::atLeastOnce())->method('getDefaultControllerNameByPlugin')->with('ExtensionName', 'PluginName')->willReturn('DefaultController'); @@ -96,9 +91,7 @@ final class UriBuilderTest extends UnitTestCase self::assertEquals($expectedResult, $actualResult); } - /** - * @test - */ + #[Test] public function removeDefaultControllerAndActionRemovesControllerAndActionIfBothAreEqualToTheDefault(): void { $this->mockExtensionService->expects(self::atLeastOnce())->method('getDefaultControllerNameByPlugin')->with('ExtensionName', 'PluginName')->willReturn('DefaultController'); diff --git a/typo3/sysext/extbase/Tests/UnitDeprecated/Persistence/RepositoryTest.php b/typo3/sysext/extbase/Tests/UnitDeprecated/Persistence/RepositoryTest.php index c1ae789399c376686ed3f9590ba6937598f67adf..7e9ca5e1281ae688f7d4114d605fd26b420cb2bb 100644 --- a/typo3/sysext/extbase/Tests/UnitDeprecated/Persistence/RepositoryTest.php +++ b/typo3/sysext/extbase/Tests/UnitDeprecated/Persistence/RepositoryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\UnitDeprecated\Persistence; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Extbase\Configuration\ConfigurationManager; use TYPO3\CMS\Extbase\Persistence\Generic\Backend; @@ -98,9 +99,7 @@ final class RepositoryTest extends UnitTestCase $this->repository->injectPersistenceManager($this->mockPersistenceManager); } - /** - * @test - */ + #[Test] public function magicCallMethodAcceptsFindBySomethingCallsAndExecutesAQueryWithThatCriteria(): void { $mockQueryResult = $this->createMock(QueryResultInterface::class); @@ -117,9 +116,7 @@ final class RepositoryTest extends UnitTestCase self::assertSame($mockQueryResult, $repository->findByFoo('bar')); } - /** - * @test - */ + #[Test] public function magicCallMethodAcceptsFindOneBySomethingCallsAndExecutesAQueryWithThatCriteria(): void { $object = new \stdClass(); @@ -139,9 +136,7 @@ final class RepositoryTest extends UnitTestCase self::assertSame($object, $repository->findOneByFoo('bar')); } - /** - * @test - */ + #[Test] public function magicCallMethodAcceptsCountBySomethingCallsAndExecutesAQueryWithThatCriteria(): void { $mockQuery = $this->createMock(QueryInterface::class); @@ -159,9 +154,7 @@ final class RepositoryTest extends UnitTestCase self::assertSame(2, $repository->countByFoo('bar')); } - /** - * @test - */ + #[Test] public function magicCallMethodReturnsFirstArrayKeyInFindOneBySomethingIfQueryReturnsRawResult(): void { $queryResultArray = [ @@ -176,9 +169,7 @@ final class RepositoryTest extends UnitTestCase self::assertSame(['foo' => 'bar'], $this->repository->findOneByFoo('bar')); } - /** - * @test - */ + #[Test] public function magicCallMethodReturnsNullInFindOneBySomethingIfQueryReturnsEmptyRawResult(): void { $queryResultArray = []; diff --git a/typo3/sysext/extbase/Tests/UnitDeprecated/Reflection/ReflectionServiceTest.php b/typo3/sysext/extbase/Tests/UnitDeprecated/Reflection/ReflectionServiceTest.php index 121e4ccf7f65f4e4e073a11a257611a4702ebace..e1a732eebd613592e38393eacd8d06039a073f47 100644 --- a/typo3/sysext/extbase/Tests/UnitDeprecated/Reflection/ReflectionServiceTest.php +++ b/typo3/sysext/extbase/Tests/UnitDeprecated/Reflection/ReflectionServiceTest.php @@ -17,16 +17,12 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\Tests\UnitDeprecated\Reflection; +use PHPUnit\Framework\Attributes\Test; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ReflectionServiceTest extends UnitTestCase { - /** - * @test - * - * Note: Starting with PHP8.2 unserializing dynamic properties (undefined properties) emits a deprecation - * warning, which fails in normal tests. This moved here to avoid failing tests. - */ + #[Test] public function reflectionServiceIsResetDuringWakeUp(): void { $insecureString = file_get_contents(__DIR__ . '/Fixture/InsecureSerializedReflectionService.txt'); diff --git a/typo3/sysext/extensionmanager/Tests/Unit/Controller/ActionControllerTest.php b/typo3/sysext/extensionmanager/Tests/Unit/Controller/ActionControllerTest.php index c6ac1964a7c366dc0cf142213609c4a8bd00a0ad..25c2c262c555d3ab93788c32dae4155850cbda6f 100644 --- a/typo3/sysext/extensionmanager/Tests/Unit/Controller/ActionControllerTest.php +++ b/typo3/sysext/extensionmanager/Tests/Unit/Controller/ActionControllerTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Extensionmanager\Tests\Unit\Controller; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Core\Environment; use TYPO3\CMS\Core\Registry; use TYPO3\CMS\Core\Utility\GeneralUtility; @@ -48,9 +49,8 @@ final class ActionControllerTest extends UnitTestCase /** * Warning: This test asserts multiple things at once to keep the setup short. - * - * @test */ + #[Test] public function createZipFileFromExtensionGeneratesCorrectArchive(): void { // 42 second of first day in 1970 - used to have achieve stable file names diff --git a/typo3/sysext/extensionmanager/Tests/Unit/Controller/DownloadControllerTest.php b/typo3/sysext/extensionmanager/Tests/Unit/Controller/DownloadControllerTest.php index 4dfd3c9c88e8ca6e47b5ee130e77105786b1076d..5c34e2333a291260e6e2c4958bfb313d3b884c12 100644 --- a/typo3/sysext/extensionmanager/Tests/Unit/Controller/DownloadControllerTest.php +++ b/typo3/sysext/extensionmanager/Tests/Unit/Controller/DownloadControllerTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Extensionmanager\Tests\Unit\Controller; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Configuration\ExtensionConfiguration; use TYPO3\CMS\Extensionmanager\Controller\DownloadController; use TYPO3\CMS\Extensionmanager\Domain\Model\Extension; @@ -27,9 +28,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class DownloadControllerTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function installFromTerReturnsArrayWithBooleanResultAndErrorArrayWhenExtensionManagerExceptionIsThrown(): void { $dummyExceptionMessage = 'exception message'; diff --git a/typo3/sysext/extensionmanager/Tests/Unit/Controller/UploadExtensionFileControllerTest.php b/typo3/sysext/extensionmanager/Tests/Unit/Controller/UploadExtensionFileControllerTest.php index 2810f5520be44772be6eb00176b444984c594440..127f54521771ad68265576372f64b6e659072321 100644 --- a/typo3/sysext/extensionmanager/Tests/Unit/Controller/UploadExtensionFileControllerTest.php +++ b/typo3/sysext/extensionmanager/Tests/Unit/Controller/UploadExtensionFileControllerTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Extensionmanager\Tests\Unit\Controller; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extensionmanager\Controller\UploadExtensionFileController; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -62,10 +64,8 @@ final class UploadExtensionFileControllerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider getExtensionFromZipFileExtractsExtensionKeyDataProvider - */ + #[DataProvider('getExtensionFromZipFileExtractsExtensionKeyDataProvider')] + #[Test] public function getExtensionKeyFromFileNameExtractsExtensionKey(string $filename, string $expectedKey): void { $subject = $this->getAccessibleMock(UploadExtensionFileController::class, null, [], '', false); diff --git a/typo3/sysext/extensionmanager/Tests/Unit/Domain/Model/DependencyTest.php b/typo3/sysext/extensionmanager/Tests/Unit/Domain/Model/DependencyTest.php index 80f442828c98ed38e9f118468a163226fb3d301f..016e18874d01d5f12c61e6ecc1bedf7ed4fbdd01 100644 --- a/typo3/sysext/extensionmanager/Tests/Unit/Domain/Model/DependencyTest.php +++ b/typo3/sysext/extensionmanager/Tests/Unit/Domain/Model/DependencyTest.php @@ -17,14 +17,13 @@ declare(strict_types=1); namespace TYPO3\CMS\Extensionmanager\Tests\Unit\Domain\Model; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extensionmanager\Domain\Model\Dependency; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class DependencyTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getLowestAndHighestIntegerVersionsReturnsArrayWithVersions(): void { $subject = Dependency::createFromEmConf('ter', '1.0.0-2.0.0'); @@ -32,9 +31,7 @@ final class DependencyTest extends UnitTestCase self::assertSame(2000000, $subject->getHighestVersionAsInteger()); } - /** - * @test - */ + #[Test] public function isVersionCompatibleReturnsCorrectResult(): void { $dependency = Dependency::createFromEmConf('typo3', '9.5.0-10.4.99'); diff --git a/typo3/sysext/extensionmanager/Tests/Unit/Domain/Model/DownloadQueueTest.php b/typo3/sysext/extensionmanager/Tests/Unit/Domain/Model/DownloadQueueTest.php index eceefc725e15c209ee366c2a3c1525571a987cba..972062a82b50f415f2a2105db3b2404365f6f6c5 100644 --- a/typo3/sysext/extensionmanager/Tests/Unit/Domain/Model/DownloadQueueTest.php +++ b/typo3/sysext/extensionmanager/Tests/Unit/Domain/Model/DownloadQueueTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Extensionmanager\Tests\Unit\Domain\Model; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extensionmanager\Domain\Model\DownloadQueue; use TYPO3\CMS\Extensionmanager\Domain\Model\Extension; use TYPO3\CMS\Extensionmanager\Exception\ExtensionManagerException; @@ -28,12 +29,12 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class DownloadQueueTest extends UnitTestCase { /** - * @var \TYPO3\CMS\Extensionmanager\Domain\Model\DownloadQueue + * @var DownloadQueue */ protected $downloadQueue; /** - * @var \TYPO3\CMS\Extensionmanager\Domain\Model\Extension + * @var Extension */ protected $extension; @@ -46,9 +47,7 @@ final class DownloadQueueTest extends UnitTestCase $this->extension->setVersion('1.0.0'); } - /** - * @test - */ + #[Test] public function addExtensionToQueueAddsExtensionToDownloadStorageArray(): void { $this->downloadQueue->addExtensionToQueue($this->extension); @@ -57,9 +56,7 @@ final class DownloadQueueTest extends UnitTestCase self::assertArrayHasKey('foobar', $extensionStorage['download']); } - /** - * @test - */ + #[Test] public function addExtensionToQueueAddsExtensionToUpdateStorageArray(): void { $this->downloadQueue->addExtensionToQueue($this->extension, 'update'); @@ -68,9 +65,7 @@ final class DownloadQueueTest extends UnitTestCase self::assertArrayHasKey('foobar', $extensionStorage['update']); } - /** - * @test - */ + #[Test] public function addExtensionToQueueThrowsExceptionIfUnknownStackIsGiven(): void { $this->expectException(ExtensionManagerException::class); @@ -78,9 +73,7 @@ final class DownloadQueueTest extends UnitTestCase $this->downloadQueue->addExtensionToQueue($this->extension, 'unknownStack'); } - /** - * @test - */ + #[Test] public function addExtensionToQueueThrowsExceptionIfExtensionWithSameKeyAndDifferentValuesAlreadyExists(): void { $extension = new Extension(); @@ -93,9 +86,7 @@ final class DownloadQueueTest extends UnitTestCase $this->downloadQueue->addExtensionToQueue($this->extension); } - /** - * @test - */ + #[Test] public function removeExtensionFromQueueRemovesExtension(): void { $extension = new Extension(); diff --git a/typo3/sysext/extensionmanager/Tests/Unit/Domain/Model/ExtensionTest.php b/typo3/sysext/extensionmanager/Tests/Unit/Domain/Model/ExtensionTest.php index 285c2c83f5dff2eeb7c717814cccb5e1955a7bfd..a9b89d067f90a762db96d9a93dbd7089e336e708 100644 --- a/typo3/sysext/extensionmanager/Tests/Unit/Domain/Model/ExtensionTest.php +++ b/typo3/sysext/extensionmanager/Tests/Unit/Domain/Model/ExtensionTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Extensionmanager\Tests\Unit\Domain\Model; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extensionmanager\Domain\Model\Extension; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -79,19 +81,17 @@ final class ExtensionTest extends UnitTestCase } /** - * @test - * @dataProvider getCategoryIndexFromStringOrNumberReturnsIndexDataProvider * @param string|int $input Given input * @param int $expected Expected result */ + #[DataProvider('getCategoryIndexFromStringOrNumberReturnsIndexDataProvider')] + #[Test] public function getCategoryIndexFromStringOrNumberReturnsIndex($input, $expected): void { $extension = new Extension(); self::assertEquals($expected, $extension->getCategoryIndexFromStringOrNumber($input)); } - /** - * @test - */ + #[Test] public function convertDependenciesToObjectsCreatesObjectStorage(): void { $serializedDependencies = [ @@ -105,9 +105,7 @@ final class ExtensionTest extends UnitTestCase self::assertInstanceOf(\SplObjectStorage::class, $dependencyObjects); } - /** - * @test - */ + #[Test] public function convertDependenciesToObjectsSetsIdentifier(): void { $serializedDependencies = [ @@ -176,10 +174,8 @@ final class ExtensionTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider convertDependenciesToObjectSetsVersionDataProvider - */ + #[DataProvider('convertDependenciesToObjectSetsVersionDataProvider')] + #[Test] public function convertDependenciesToObjectSetsVersion(array $dependencies, array $returnValue): void { $serializedDependencies = serialize($dependencies); @@ -190,9 +186,7 @@ final class ExtensionTest extends UnitTestCase } } - /** - * @test - */ + #[Test] public function convertDependenciesToObjectCanDealWithEmptyStringDependencyValues(): void { $dependencies = [ @@ -203,9 +197,7 @@ final class ExtensionTest extends UnitTestCase self::assertSame(0, $dependencyObjects->count()); } - /** - * @test - */ + #[Test] public function getDistributionImageTest(): void { $imageUrl = 'https://example.org/path/to/image.png'; @@ -219,9 +211,7 @@ final class ExtensionTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function getDistributionWelcomeImageTest(): void { $imageUrl = 'https://example.org/path/to/image.png'; diff --git a/typo3/sysext/extensionmanager/Tests/Unit/Domain/Repository/ExtensionRepositoryTest.php b/typo3/sysext/extensionmanager/Tests/Unit/Domain/Repository/ExtensionRepositoryTest.php index 57ce7d776d89546a796a318d77585126815bd310..e9c52b0f77614d5717686ef89ca8ec5441d460da 100644 --- a/typo3/sysext/extensionmanager/Tests/Unit/Domain/Repository/ExtensionRepositoryTest.php +++ b/typo3/sysext/extensionmanager/Tests/Unit/Domain/Repository/ExtensionRepositoryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Extensionmanager\Tests\Unit\Domain\Repository; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extensionmanager\Domain\Model\Dependency; use TYPO3\CMS\Extensionmanager\Domain\Model\Extension; use TYPO3\CMS\Extensionmanager\Domain\Repository\ExtensionRepository; @@ -24,9 +25,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ExtensionRepositoryTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function filterYoungestVersionOfExtensionListFiltersAListToLatestVersion(): void { // foo2 should be kept @@ -53,9 +52,7 @@ final class ExtensionRepositoryTest extends UnitTestCase self::assertEquals(['foo' => $foo2, 'bar' => $bar1], $subject->_call('filterYoungestVersionOfExtensionList', $input, true)); } - /** - * @test - */ + #[Test] public function filterYoungestVersionOfExtensionListFiltersAListToLatestVersionWithOnlyCompatibleExtensions(): void { $suitableDependency = Dependency::createFromEmConf('typo3', '3.6.1'); @@ -94,9 +91,7 @@ final class ExtensionRepositoryTest extends UnitTestCase self::assertEquals(['foo' => $foo1, 'bar' => $bar2], $subject->_call('filterYoungestVersionOfExtensionList', $input, false)); } - /** - * @test - */ + #[Test] public function getExtensionsSuitableForTypo3VersionReturnsOnlySuitableOnes(): void { $suitableDependency = Dependency::createFromEmConf('typo3', '10.4.0-99.99.99'); diff --git a/typo3/sysext/extensionmanager/Tests/Unit/Parser/ExtensionXmlParserTest.php b/typo3/sysext/extensionmanager/Tests/Unit/Parser/ExtensionXmlParserTest.php index 9294d752ed8c3121a668437500ab7c677ad78a3c..d66d34ed523e62b4a01775c4848044d7df668184 100644 --- a/typo3/sysext/extensionmanager/Tests/Unit/Parser/ExtensionXmlParserTest.php +++ b/typo3/sysext/extensionmanager/Tests/Unit/Parser/ExtensionXmlParserTest.php @@ -17,15 +17,15 @@ declare(strict_types=1); namespace TYPO3\CMS\Extensionmanager\Tests\Unit\Parser; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extensionmanager\Parser\ExtensionXmlParser; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ExtensionXmlParserTest extends UnitTestCase { - /** - * @test - * @dataProvider isValidVersionNumberDataProvider - */ + #[DataProvider('isValidVersionNumberDataProvider')] + #[Test] public function isValidVersionNumber(string $versionNumber, bool $isValid): void { $subject = $this->getAccessibleMock(ExtensionXmlParser::class, null); diff --git a/typo3/sysext/extensionmanager/Tests/Unit/Report/ExtensionStatusTest.php b/typo3/sysext/extensionmanager/Tests/Unit/Report/ExtensionStatusTest.php index 8be4122b7a701d1c8da1d627ad6808d156b43a38..75eacc93a651249f4147ef1cf2c24ea36e012e0d 100644 --- a/typo3/sysext/extensionmanager/Tests/Unit/Report/ExtensionStatusTest.php +++ b/typo3/sysext/extensionmanager/Tests/Unit/Report/ExtensionStatusTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Extensionmanager\Tests\Unit\Report; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use Psr\EventDispatcher\EventDispatcherInterface; use TYPO3\CMS\Core\Localization\LanguageService; @@ -33,18 +34,14 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ExtensionStatusTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function extensionStatusImplementsStatusProviderInterface(): void { $reportMock = $this->createMock(ExtensionStatus::class); self::assertInstanceOf(StatusProviderInterface::class, $reportMock); } - /** - * @test - */ + #[Test] public function getStatusReturnsArray(): void { $report = $this->getMockBuilder(ExtensionStatus::class) @@ -54,9 +51,7 @@ final class ExtensionStatusTest extends UnitTestCase self::assertIsArray($report->getStatus()); } - /** - * @test - */ + #[Test] public function getStatusReturnArrayContainsFiveEntries(): void { $report = $this->getMockBuilder(ExtensionStatus::class) @@ -66,9 +61,7 @@ final class ExtensionStatusTest extends UnitTestCase self::assertCount(5, $report->getStatus()); } - /** - * @test - */ + #[Test] public function getStatusReturnArrayContainsInstancesOfReportsStatusStatus(): void { $statusObject = $this->getMockBuilder(Status::class) @@ -87,9 +80,7 @@ final class ExtensionStatusTest extends UnitTestCase } } - /** - * @test - */ + #[Test] public function getStatusCallsMainRepositoryForMainRepositoryStatusResult(): void { $languageServiceFactoryMock = $this->createMock(LanguageServiceFactory::class); @@ -109,9 +100,7 @@ final class ExtensionStatusTest extends UnitTestCase $subject->getStatus(); } - /** - * @test - */ + #[Test] public function getStatusReturnsErrorStatusIfRepositoryIsNotFound(): void { $languageServiceFactoryMock = $this->createMock(LanguageServiceFactory::class); @@ -132,9 +121,7 @@ final class ExtensionStatusTest extends UnitTestCase self::assertEquals(ContextualFeedbackSeverity::ERROR, $statusObject->getSeverity()); } - /** - * @test - */ + #[Test] public function getStatusReturnsNoticeIfRepositoryUpdateIsLongerThanSevenDaysAgo(): void { $languageServiceFactoryMock = $this->createMock(LanguageServiceFactory::class); @@ -169,9 +156,7 @@ final class ExtensionStatusTest extends UnitTestCase self::assertEquals(ContextualFeedbackSeverity::NOTICE, $statusObject->getSeverity()); } - /** - * @test - */ + #[Test] public function getStatusReturnsOkForLoadedExtensionIfNoInsecureExtensionIsLoaded(): void { $languageServiceFactoryMock = $this->createMock(LanguageServiceFactory::class); @@ -192,9 +177,7 @@ final class ExtensionStatusTest extends UnitTestCase self::assertEquals(ContextualFeedbackSeverity::OK, $statusObject->getSeverity()); } - /** - * @test - */ + #[Test] public function getStatusReturnsErrorForLoadedExtensionIfInsecureExtensionIsLoaded(): void { $languageServiceMock = $this->createMock(LanguageService::class); @@ -215,9 +198,7 @@ final class ExtensionStatusTest extends UnitTestCase self::assertEquals(ContextualFeedbackSeverity::ERROR, $statusObject->getSeverity()); } - /** - * @test - */ + #[Test] public function getStatusReturnsOkForExistingExtensionIfNoInsecureExtensionExists(): void { $languageServiceMock = $this->createMock(LanguageService::class); @@ -239,9 +220,7 @@ final class ExtensionStatusTest extends UnitTestCase } } - /** - * @test - */ + #[Test] public function getStatusReturnsWarningForExistingExtensionIfInsecureExtensionExistsButIsNotLoaded(): void { $languageServiceMock = $this->createMock(LanguageService::class); @@ -262,9 +241,7 @@ final class ExtensionStatusTest extends UnitTestCase self::assertEquals(ContextualFeedbackSeverity::WARNING, $statusObject->getSeverity()); } - /** - * @test - */ + #[Test] public function getStatusReturnsWarningForLoadedExtensionIfOutdatedExtensionIsLoaded(): void { $languageServiceMock = $this->createMock(LanguageService::class); @@ -285,9 +262,7 @@ final class ExtensionStatusTest extends UnitTestCase self::assertEquals(ContextualFeedbackSeverity::WARNING, $statusObject->getSeverity()); } - /** - * @test - */ + #[Test] public function getStatusReturnsErrorForExistingExtensionIfOutdatedExtensionExists(): void { $languageServiceMock = $this->createMock(LanguageService::class); diff --git a/typo3/sysext/extensionmanager/Tests/Unit/Service/ExtensionManagementServiceTest.php b/typo3/sysext/extensionmanager/Tests/Unit/Service/ExtensionManagementServiceTest.php index ad2fc708cbeb66be0d288bb55dd73b3ae07c6529..86134a22362af4b813bbcd8ffc8a6f0d552cf89b 100644 --- a/typo3/sysext/extensionmanager/Tests/Unit/Service/ExtensionManagementServiceTest.php +++ b/typo3/sysext/extensionmanager/Tests/Unit/Service/ExtensionManagementServiceTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Extensionmanager\Tests\Unit\Service; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Core\EventDispatcher\NoopEventDispatcher; use TYPO3\CMS\Extensionmanager\Domain\Model\DownloadQueue; @@ -65,9 +66,7 @@ final class ExtensionManagementServiceTest extends UnitTestCase $this->managementService->injectDownloadQueue($this->downloadQueue); } - /** - * @test - */ + #[Test] public function installDownloadsExtensionIfNecessary(): void { $extension = new Extension(); @@ -87,9 +86,7 @@ final class ExtensionManagementServiceTest extends UnitTestCase $this->managementService->installExtension($extension); } - /** - * @test - */ + #[Test] public function installExtensionReturnsFalseIfDependenciesCannotBeResolved(): void { $extension = new Extension(); @@ -101,9 +98,7 @@ final class ExtensionManagementServiceTest extends UnitTestCase self::assertFalse($result); } - /** - * @test - */ + #[Test] public function installExtensionWillReturnInstalledExtensions(): void { $extension = new Extension(); @@ -113,9 +108,7 @@ final class ExtensionManagementServiceTest extends UnitTestCase self::assertSame(['installed' => ['foo' => 'foo']], $result); } - /** - * @test - */ + #[Test] public function installExtensionWillReturnDownloadedExtensions(): void { $downloadQueue = new DownloadQueue(); @@ -135,9 +128,7 @@ final class ExtensionManagementServiceTest extends UnitTestCase self::assertSame(['downloaded' => ['foo' => $extension], 'installed' => ['foo' => 'foo']], $result); } - /** - * @test - */ + #[Test] public function installExtensionWillReturnUpdatedExtensions(): void { $downloadQueue = new DownloadQueue(); @@ -161,9 +152,7 @@ final class ExtensionManagementServiceTest extends UnitTestCase self::assertSame(['updated' => ['foo' => $extension], 'installed' => ['foo' => 'foo']], $result); } - /** - * @test - */ + #[Test] public function markExtensionForDownloadAddsExtensionToDownloadQueueAndChecksDependencies(): void { $extension = new Extension(); @@ -176,9 +165,7 @@ final class ExtensionManagementServiceTest extends UnitTestCase self::assertSame(['download' => ['foo' => $extension]], $this->downloadQueue->getExtensionQueue()); } - /** - * @test - */ + #[Test] public function markExtensionForUpdateAddsExtensionToUpdateQueueAndChecksDependencies(): void { $extension = new Extension(); diff --git a/typo3/sysext/extensionmanager/Tests/Unit/Utility/DependencyUtilityTest.php b/typo3/sysext/extensionmanager/Tests/Unit/Utility/DependencyUtilityTest.php index de7d3e4b84a721af7a93a2d4fcc33538147bfc47..5c90173d64406ae4b8df146b0cd5759f09ecadef 100644 --- a/typo3/sysext/extensionmanager/Tests/Unit/Utility/DependencyUtilityTest.php +++ b/typo3/sysext/extensionmanager/Tests/Unit/Utility/DependencyUtilityTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Extensionmanager\Tests\Unit\Utility; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\EventDispatcher\NoopEventDispatcher; use TYPO3\CMS\Extensionmanager\Domain\Model\Dependency; use TYPO3\CMS\Extensionmanager\Domain\Model\Extension; @@ -29,9 +30,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class DependencyUtilityTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function checkTypo3DependencyErrorsIfVersionNumberIsTooLow(): void { $dependency = Dependency::createFromEmConf('typo3', '15.0.0-0'); @@ -49,9 +48,7 @@ final class DependencyUtilityTest extends UnitTestCase self::assertSame(1399144499, $errors['foo'][0]['code']); } - /** - * @test - */ + #[Test] public function checkTypo3DependencyErrorsIfVersionNumberIsTooHigh(): void { $dependency = Dependency::createFromEmConf('typo3', '1.0.0-3.0.0'); @@ -69,9 +66,7 @@ final class DependencyUtilityTest extends UnitTestCase self::assertSame(1399144521, $errors['foo'][0]['code']); } - /** - * @test - */ + #[Test] public function checkTypo3DependencyReturnsTrueIfVersionNumberIsInRange(): void { $dependency = Dependency::createFromEmConf('typo3', '1.0.0-25.0.0'); @@ -88,9 +83,7 @@ final class DependencyUtilityTest extends UnitTestCase self::assertCount(0, $errors); } - /** - * @test - */ + #[Test] public function checkTypo3DependencyCanHandleEmptyVersionHighestVersion(): void { $dependency = Dependency::createFromEmConf('typo3', '1.0.0'); @@ -107,9 +100,7 @@ final class DependencyUtilityTest extends UnitTestCase self::assertCount(0, $errors); } - /** - * @test - */ + #[Test] public function checkTypo3DependencyCanHandleEmptyVersionLowestVersion(): void { $dependency = Dependency::createFromEmConf('typo3', '-15.0.0'); @@ -126,9 +117,7 @@ final class DependencyUtilityTest extends UnitTestCase self::assertCount(0, $errors); } - /** - * @test - */ + #[Test] public function checkPhpDependencyErrorsIfVersionNumberIsTooLow(): void { $dependency = Dependency::createFromEmConf('php', '15.0.0'); @@ -146,9 +135,7 @@ final class DependencyUtilityTest extends UnitTestCase self::assertSame(1377977857, $errors['foo'][0]['code']); } - /** - * @test - */ + #[Test] public function checkPhpDependencyThrowsExceptionIfVersionNumberIsTooHigh(): void { $dependency = Dependency::createFromEmConf('php', '1.0.0-3.0.0'); @@ -166,9 +153,7 @@ final class DependencyUtilityTest extends UnitTestCase self::assertSame(1377977856, $errors['foo'][0]['code']); } - /** - * @test - */ + #[Test] public function checkPhpDependencyReturnsTrueIfVersionNumberIsInRange(): void { $dependency = Dependency::createFromEmConf('php', '1.0.0-15.0.0'); @@ -186,9 +171,7 @@ final class DependencyUtilityTest extends UnitTestCase self::assertCount(0, $errors); } - /** - * @test - */ + #[Test] public function checkPhpDependencyCanHandleEmptyVersionHighestVersion(): void { $dependency = Dependency::createFromEmConf('php', '1.0.0'); @@ -206,9 +189,7 @@ final class DependencyUtilityTest extends UnitTestCase self::assertCount(0, $errors); } - /** - * @test - */ + #[Test] public function checkPhpDependencyCanHandleEmptyVersionLowestVersion(): void { $dependency = Dependency::createFromEmConf('typo3', '-25.0.0'); @@ -225,9 +206,7 @@ final class DependencyUtilityTest extends UnitTestCase self::assertCount(0, $errors); } - /** - * @test - */ + #[Test] public function isDependentExtensionAvailableReturnsTrueIfExtensionIsAvailable(): void { $availableExtensions = [ @@ -247,9 +226,7 @@ final class DependencyUtilityTest extends UnitTestCase self::assertTrue($dependencyUtility->_call('isDependentExtensionAvailable', 'dummy')); } - /** - * @test - */ + #[Test] public function isDependentExtensionAvailableReturnsFalseIfExtensionIsNotAvailable(): void { $availableExtensions = [ @@ -269,9 +246,7 @@ final class DependencyUtilityTest extends UnitTestCase self::assertFalse($dependencyUtility->_call('isDependentExtensionAvailable', '42')); } - /** - * @test - */ + #[Test] public function isAvailableVersionCompatibleCallsIsVersionCompatibleWithExtensionVersion(): void { $emConfUtility = $this->getMockBuilder(EmConfUtility::class) @@ -293,9 +268,7 @@ final class DependencyUtilityTest extends UnitTestCase $dependencyUtility->_call('isAvailableVersionCompatible', $dependency); } - /** - * @test - */ + #[Test] public function isExtensionDownloadableFromRemoteReturnsTrueIfOneVersionExists(): void { $extensionRepositoryMock = $this->getMockBuilder(ExtensionRepository::class) @@ -309,9 +282,7 @@ final class DependencyUtilityTest extends UnitTestCase self::assertTrue($count); } - /** - * @test - */ + #[Test] public function isExtensionDownloadableFromRemoteReturnsFalseIfNoVersionExists(): void { $extensionRepositoryMock = $this->getMockBuilder(ExtensionRepository::class) @@ -325,9 +296,7 @@ final class DependencyUtilityTest extends UnitTestCase self::assertFalse($count); } - /** - * @test - */ + #[Test] public function isDownloadableVersionCompatibleReturnsTrueIfCompatibleVersionExists(): void { $dependency = Dependency::createFromEmConf('dummy', '1.0.0-10.0.0'); @@ -342,9 +311,7 @@ final class DependencyUtilityTest extends UnitTestCase self::assertTrue($count); } - /** - * @test - */ + #[Test] public function isDownloadableVersionCompatibleReturnsFalseIfIncompatibleVersionExists(): void { $dependency = Dependency::createFromEmConf('dummy', '1.0.0-2.0.0'); @@ -359,9 +326,7 @@ final class DependencyUtilityTest extends UnitTestCase self::assertFalse($count); } - /** - * @test - */ + #[Test] public function getLatestCompatibleExtensionByDependencyWillReturnExtensionModelOfLatestExtension(): void { $suitableDependency = Dependency::createFromEmConf('typo3', '3.6.1'); diff --git a/typo3/sysext/extensionmanager/Tests/Unit/Utility/EmConfUtilityTest.php b/typo3/sysext/extensionmanager/Tests/Unit/Utility/EmConfUtilityTest.php index 9abdf498363b5befa00ed3effff7a699671e500c..ff8a4da0b5ec9790ba4173c4c009783e6700e6ed 100644 --- a/typo3/sysext/extensionmanager/Tests/Unit/Utility/EmConfUtilityTest.php +++ b/typo3/sysext/extensionmanager/Tests/Unit/Utility/EmConfUtilityTest.php @@ -17,14 +17,13 @@ declare(strict_types=1); namespace TYPO3\CMS\Extensionmanager\Tests\Unit\Utility; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extensionmanager\Utility\EmConfUtility; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class EmConfUtilityTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function constructEmConfAddsCommentBlock(): void { $subject = new EmConfUtility(); @@ -32,9 +31,7 @@ final class EmConfUtilityTest extends UnitTestCase self::assertStringContainsString('Extension Manager/Repository config file for ext', $emConf); } - /** - * @test - */ + #[Test] public function fixEmConfTransfersOldConflictSettingToNewFormatWithSingleConflictingExtension(): void { $input = [ @@ -59,9 +56,7 @@ final class EmConfUtilityTest extends UnitTestCase self::assertEquals($expected, $result); } - /** - * @test - */ + #[Test] public function fixEmConfTransfersOldConflictSettingToNewFormatWithTwoConflictingExtensions(): void { $input = [ diff --git a/typo3/sysext/extensionmanager/Tests/Unit/Utility/FileHandlingUtilityTest.php b/typo3/sysext/extensionmanager/Tests/Unit/Utility/FileHandlingUtilityTest.php index 5c63970800b405c7cd06c4695782dab76a958d58..9d7f5282e7d5a9511ee0c0da744c7093d7988c90 100644 --- a/typo3/sysext/extensionmanager/Tests/Unit/Utility/FileHandlingUtilityTest.php +++ b/typo3/sysext/extensionmanager/Tests/Unit/Utility/FileHandlingUtilityTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Extensionmanager\Tests\Unit\Utility; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; use TYPO3\CMS\Core\Core\Environment; use TYPO3\CMS\Core\Localization\LanguageService; @@ -62,9 +63,7 @@ final class FileHandlingUtilityTest extends UnitTestCase return $extKey; } - /** - * @test - */ + #[Test] public function makeAndClearExtensionDirRemovesExtensionDirIfAlreadyExists(): void { $extKey = $this->createFakeExtension(); @@ -79,9 +78,7 @@ final class FileHandlingUtilityTest extends UnitTestCase $fileHandlerMock->_call('makeAndClearExtensionDir', $extKey); } - /** - * @test - */ + #[Test] public function makeAndClearExtensionDirAddsDir(): void { $extKey = $this->createFakeExtension(); @@ -95,9 +92,7 @@ final class FileHandlingUtilityTest extends UnitTestCase $fileHandlerMock->_call('makeAndClearExtensionDir', $extKey); } - /** - * @test - */ + #[Test] public function makeAndClearExtensionDirThrowsExceptionOnInvalidPath(): void { $this->expectException(ExtensionManagerException::class); @@ -112,9 +107,7 @@ final class FileHandlingUtilityTest extends UnitTestCase $fileHandlerMock->_call('makeAndClearExtensionDir', 'testing123', 'fakepath'); } - /** - * @test - */ + #[Test] public function addDirectoryAddsDirectory(): void { $extDirPath = $this->testRoot . StringUtility::getUniqueId('test-extensions-'); @@ -123,9 +116,7 @@ final class FileHandlingUtilityTest extends UnitTestCase self::assertDirectoryExists($extDirPath); } - /** - * @test - */ + #[Test] public function removeDirectoryRemovesDirectory(): void { $extDirPath = $this->testRoot . StringUtility::getUniqueId('test-extensions-'); @@ -135,9 +126,7 @@ final class FileHandlingUtilityTest extends UnitTestCase self::assertDirectoryDoesNotExist($extDirPath); } - /** - * @test - */ + #[Test] public function removeDirectoryRemovesSymlink(): void { $absoluteSymlinkPath = $this->testRoot . StringUtility::getUniqueId('test_symlink_'); @@ -149,9 +138,7 @@ final class FileHandlingUtilityTest extends UnitTestCase self::assertFalse(is_link($absoluteSymlinkPath)); } - /** - * @test - */ + #[Test] public function removeDirectoryDoesNotRemoveContentOfSymlinkedTargetDirectory(): void { $absoluteSymlinkPath = $this->testRoot . StringUtility::getUniqueId('test_symlink_'); @@ -168,9 +155,7 @@ final class FileHandlingUtilityTest extends UnitTestCase self::assertTrue(is_file($absoluteDirectoryPath . $relativeFilePath)); } - /** - * @test - */ + #[Test] public function unpackExtensionFromExtensionDataArrayCreatesTheExtensionDirectory(): void { $extensionKey = 'test'; @@ -187,9 +172,7 @@ final class FileHandlingUtilityTest extends UnitTestCase $fileHandlerMock->unpackExtensionFromExtensionDataArray($extensionKey, []); } - /** - * @test - */ + #[Test] public function unpackExtensionFromExtensionDataArrayStripsDirectoriesFromFilesArray(): void { $extensionData = [ @@ -255,9 +238,7 @@ final class FileHandlingUtilityTest extends UnitTestCase $fileHandlerMock->unpackExtensionFromExtensionDataArray('test', $extensionData); } - /** - * @test - */ + #[Test] public function writeExtensionFilesWritesFiles(): void { $files = [ @@ -282,9 +263,7 @@ final class FileHandlingUtilityTest extends UnitTestCase self::assertFileExists($rootPath . 'ChangeLog'); } - /** - * @test - */ + #[Test] public function extractDirectoriesFromExtensionDataExtractsDirectories(): void { $files = [ @@ -333,9 +312,7 @@ final class FileHandlingUtilityTest extends UnitTestCase self::assertSame($expected, array_values($extractedDirectories)); } - /** - * @test - */ + #[Test] public function createDirectoriesForExtensionFilesCreatesDirectories(): void { $rootPath = $this->fakedExtensions[$this->createFakeExtension()]['packagePath']; @@ -351,9 +328,7 @@ final class FileHandlingUtilityTest extends UnitTestCase self::assertDirectoryExists($rootPath . 'mod/doc/'); } - /** - * @test - */ + #[Test] public function writeEmConfWritesEmConfFile(): void { $extKey = $this->createFakeExtension(); diff --git a/typo3/sysext/extensionmanager/Tests/Unit/Utility/InstallUtilityTest.php b/typo3/sysext/extensionmanager/Tests/Unit/Utility/InstallUtilityTest.php index 73f63b41a19547b980e472d4ce5f5cdf94ed3733..1514a044d493e9169c6023076063136f502ba4ff 100644 --- a/typo3/sysext/extensionmanager/Tests/Unit/Utility/InstallUtilityTest.php +++ b/typo3/sysext/extensionmanager/Tests/Unit/Utility/InstallUtilityTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Extensionmanager\Tests\Unit\Utility; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use Psr\Container\ContainerInterface; use Psr\EventDispatcher\EventDispatcherInterface; @@ -118,9 +120,7 @@ final class InstallUtilityTest extends UnitTestCase return $extKey; } - /** - * @test - */ + #[Test] public function installCallsUpdateDatabase(): void { $this->installMock->expects(self::once())->method('updateDatabase'); @@ -130,9 +130,7 @@ final class InstallUtilityTest extends UnitTestCase $this->installMock->install($this->extensionKey); } - /** - * @test - */ + #[Test] public function installCallsLoadExtension(): void { $cacheManagerMock = $this->getMockBuilder(CacheManager::class)->getMock(); @@ -141,9 +139,7 @@ final class InstallUtilityTest extends UnitTestCase $this->installMock->install($this->extensionKey); } - /** - * @test - */ + #[Test] public function installCallsFlushCaches(): void { $cacheManagerMock = $this->getMockBuilder(CacheManager::class)->getMock(); @@ -152,9 +148,7 @@ final class InstallUtilityTest extends UnitTestCase $this->installMock->install($this->extensionKey); } - /** - * @test - */ + #[Test] public function installCallsReloadCaches(): void { $cacheManagerMock = $this->getMockBuilder(CacheManager::class)->getMock(); @@ -163,9 +157,7 @@ final class InstallUtilityTest extends UnitTestCase $this->installMock->install($this->extensionKey); } - /** - * @test - */ + #[Test] public function installCallsSaveDefaultConfigurationWithExtensionKey(): void { $cacheManagerMock = $this->getMockBuilder(CacheManager::class)->getMock(); @@ -200,10 +192,8 @@ final class InstallUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider importT3DFileDoesNotImportFileIfAlreadyImportedDataProvider - */ + #[DataProvider('importT3DFileDoesNotImportFileIfAlreadyImportedDataProvider')] + #[Test] public function importT3DFileDoesNotImportFileIfAlreadyImported(string $fileName, string $registryNameReturnsFalse, string $registryNameReturnsTrue): void { $extKey = $this->createFakeExtension(); diff --git a/typo3/sysext/extensionmanager/Tests/Unit/Utility/ListUtilityTest.php b/typo3/sysext/extensionmanager/Tests/Unit/Utility/ListUtilityTest.php index 8c9bd9f33edfeeab04a01c63cea4fcfc40a186ba..aa258aec0fbd85a99432c16ba2bbefa93fcd451f 100644 --- a/typo3/sysext/extensionmanager/Tests/Unit/Utility/ListUtilityTest.php +++ b/typo3/sysext/extensionmanager/Tests/Unit/Utility/ListUtilityTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Extensionmanager\Tests\Unit\Utility; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\EventDispatcher\NoopEventDispatcher; use TYPO3\CMS\Core\Package\Package; use TYPO3\CMS\Core\Package\PackageManager; @@ -107,10 +109,8 @@ final class ListUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider getAvailableAndInstalledExtensionsDataProvider - */ + #[DataProvider('getAvailableAndInstalledExtensionsDataProvider')] + #[Test] public function getAvailableAndInstalledExtensionsTest(array $availableExtensions, array $expectedResult): void { self::assertEquals($expectedResult, $this->subject->getAvailableAndInstalledExtensions($availableExtensions)); @@ -137,10 +137,8 @@ final class ListUtilityTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider enrichExtensionsWithEmConfInformationDataProvider - */ + #[DataProvider('enrichExtensionsWithEmConfInformationDataProvider')] + #[Test] public function enrichExtensionsWithEmConfInformation(array $extensions, array $emConf, array $expectedResult): void { $this->subject->injectExtensionRepository($this->getAccessibleMock(ExtensionRepository::class, ['findOneByExtensionKeyAndVersion', 'findHighestAvailableVersion'], [], '', false)); diff --git a/typo3/sysext/felogin/Tests/Unit/Configuration/RecoveryConfigurationTest.php b/typo3/sysext/felogin/Tests/Unit/Configuration/RecoveryConfigurationTest.php index d0bbb8af0afd943d3d6a3bf7ea5d49a82a1974bf..f472827a932dacce2dd26049acf8e5cfd64305ac 100644 --- a/typo3/sysext/felogin/Tests/Unit/Configuration/RecoveryConfigurationTest.php +++ b/typo3/sysext/felogin/Tests/Unit/Configuration/RecoveryConfigurationTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\FrontendLogin\Tests\Unit\Configuration; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use Psr\Log\LoggerInterface; use Psr\Log\NullLogger; @@ -79,9 +80,7 @@ final class RecoveryConfigurationTest extends UnitTestCase $this->subject->setLogger($this->logger); } - /** - * @test - */ + #[Test] public function getSenderShouldReturnAddressWithFallbackFromGlobals(): void { $this->settings['email_from'] = null; @@ -103,9 +102,7 @@ final class RecoveryConfigurationTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function getSenderShouldReturnAddressWithConfigFromTypoScript(): void { $this->setupSubject(); @@ -122,9 +119,7 @@ final class RecoveryConfigurationTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function getEmailTemplateNameThrowsExceptionIfTemplateNameIsEmpty(): void { $this->settings['email']['templateName'] = ''; @@ -134,9 +129,7 @@ final class RecoveryConfigurationTest extends UnitTestCase $this->subject->getMailTemplateName(); } - /** - * @test - */ + #[Test] public function getLifeTimeTimestampShouldReturnTimestamp(): void { $timestamp = time(); @@ -150,9 +143,7 @@ final class RecoveryConfigurationTest extends UnitTestCase self::assertSame($expected, $actual); } - /** - * @test - */ + #[Test] public function getForgotHashShouldReturnHashWithLifeTimeTimestamp(): void { $timestamp = time(); @@ -170,9 +161,7 @@ final class RecoveryConfigurationTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function getReplyToShouldReturnNullIfNoneAreSet(): void { $this->setupSubject(); @@ -180,9 +169,7 @@ final class RecoveryConfigurationTest extends UnitTestCase self::assertNull($this->subject->getReplyTo()); } - /** - * @test - */ + #[Test] public function getMailTemplatePathsReturnsAnInstanceOfTemplatePathsObjectWithConfigurationOfTypoScript(): void { $GLOBALS['TYPO3_CONF_VARS']['MAIL']['templateRootPaths'] = [ @@ -201,9 +188,7 @@ final class RecoveryConfigurationTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function getMailTemplatePathsReplacesTemplatePathsWithPathsConfiguredInTypoScript(): void { $GLOBALS['TYPO3_CONF_VARS']['MAIL']['templateRootPaths'] = [ @@ -222,18 +207,14 @@ final class RecoveryConfigurationTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function getMailTemplateNameWillReturnTemplateNameConfiguredInTypoScript(): void { $this->setupSubject(); self::assertSame($this->settings['email']['templateName'], $this->subject->getMailTemplateName()); } - /** - * @test - */ + #[Test] public function recoveryConfigurationWillCreateAnInstanceOfAddressIfDefaultMailReplyToAddressIsSet(): void { $GLOBALS['TYPO3_CONF_VARS']['MAIL']['defaultMailReplyToAddress'] = 'typo3@example.com'; @@ -241,9 +222,7 @@ final class RecoveryConfigurationTest extends UnitTestCase self::assertInstanceOf(Address::class, $this->subject->getReplyTo()); } - /** - * @test - */ + #[Test] public function recoveryConfigurationWillCreateAnInstanceOfAddressWithName(): void { $GLOBALS['TYPO3_CONF_VARS']['MAIL']['defaultMailReplyToName'] = 'TYPO3'; diff --git a/typo3/sysext/felogin/Tests/Unit/Redirect/RedirectHandlerTest.php b/typo3/sysext/felogin/Tests/Unit/Redirect/RedirectHandlerTest.php index b81039b19a2ab5a084b432f7c64b496c261a1356..cd88321cbe22d3778b425fb5a2d9b09679843f31 100644 --- a/typo3/sysext/felogin/Tests/Unit/Redirect/RedirectHandlerTest.php +++ b/typo3/sysext/felogin/Tests/Unit/Redirect/RedirectHandlerTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\FrontendLogin\Tests\Unit\Redirect; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use Psr\Http\Message\ServerRequestInterface; use TYPO3\CMS\Core\Context\Context; @@ -63,10 +65,8 @@ final class RedirectHandlerTest extends UnitTestCase yield 'empty string on redirect mode logout' => ['', 'logout']; } - /** - * @test - * @dataProvider loginTypeLogoutDataProvider - */ + #[DataProvider('loginTypeLogoutDataProvider')] + #[Test] public function processShouldReturnStringForLoginTypeLogout(string $expect, string $redirectMode): void { $serverRequest = (new ServerRequest())->withAttribute('extbase', new ExtbaseRequestParameters()); @@ -95,10 +95,8 @@ final class RedirectHandlerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider getLogoutRedirectUrlDataProvider - */ + #[DataProvider('getLogoutRedirectUrlDataProvider')] + #[Test] public function getLogoutRedirectUrlShouldReturnAlternativeRedirectUrl( string $expected, array $redirectModes, @@ -122,9 +120,7 @@ final class RedirectHandlerTest extends UnitTestCase self::assertEquals($expected, $this->subject->getLogoutFormRedirectUrl($request, $configuration, 13, false)); } - /** - * @test - */ + #[Test] public function getLogoutRedirectUrlShouldReturnAlternativeRedirectUrlForLoggedInUserAndRedirectPageLogoutSet(): void { $this->subject = new RedirectHandler( @@ -180,10 +176,8 @@ final class RedirectHandlerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider getLoginFormRedirectUrlDataProvider - */ + #[DataProvider('getLoginFormRedirectUrlDataProvider')] + #[Test] public function getLoginFormRedirectUrlReturnsExpectedValue( string $redirectUrl, string $redirectMode, @@ -207,9 +201,7 @@ final class RedirectHandlerTest extends UnitTestCase self::assertEquals($expected, $this->subject->getLoginFormRedirectUrl($request, $configuration, $redirectDisabled)); } - /** - * @test - */ + #[Test] public function getReferrerForLoginFormReturnsEmptyStringIfRedirectModeReferrerDisabled(): void { $serverRequest = (new ServerRequest())->withAttribute('extbase', new ExtbaseRequestParameters()); @@ -218,9 +210,7 @@ final class RedirectHandlerTest extends UnitTestCase self::assertEquals('', $this->subject->getReferrerForLoginForm($request, $settings)); } - /** - * @test - */ + #[Test] public function getReferrerForLoginFormReturnsReferrerGetParameter(): void { $expectedReferrer = 'https://example.com/page-referrer'; @@ -232,9 +222,7 @@ final class RedirectHandlerTest extends UnitTestCase self::assertEquals($expectedReferrer, $this->subject->getReferrerForLoginForm($request, $settings)); } - /** - * @test - */ + #[Test] public function getReferrerForLoginFormReturnsReferrerPostParameter(): void { $expectedReferrer = 'https://example.com/page-referrer'; @@ -246,9 +234,7 @@ final class RedirectHandlerTest extends UnitTestCase self::assertEquals($expectedReferrer, $this->subject->getReferrerForLoginForm($request, $settings)); } - /** - * @test - */ + #[Test] public function getReferrerForLoginFormReturnsHttpReferrerParameter(): void { $expectedReferrer = 'https://example.com/page-referrer'; @@ -260,9 +246,7 @@ final class RedirectHandlerTest extends UnitTestCase self::assertEquals($expectedReferrer, $this->subject->getReferrerForLoginForm($request, $settings)); } - /** - * @test - */ + #[Test] public function getReferrerForLoginFormReturnsOriginalRequestUrlIfCalledBySubRequest(): void { $expectedReferrer = 'https://example.com/original-page'; diff --git a/typo3/sysext/felogin/Tests/Unit/Service/RecoveryServiceTest.php b/typo3/sysext/felogin/Tests/Unit/Service/RecoveryServiceTest.php index 77917b0dd50fd25010e47d51c9cf5f3c9a4f1948..94abd71aaa2b6d77fc4d1b732214df2e345ba9bf 100644 --- a/typo3/sysext/felogin/Tests/Unit/Service/RecoveryServiceTest.php +++ b/typo3/sysext/felogin/Tests/Unit/Service/RecoveryServiceTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\FrontendLogin\Tests\Unit\Service; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use Psr\EventDispatcher\EventDispatcherInterface; use Symfony\Component\Mime\Address; @@ -60,10 +62,8 @@ final class RecoveryServiceTest extends UnitTestCase $this->extbaseRequest = new Request($request); } - /** - * @test - * @dataProvider configurationDataProvider - */ + #[DataProvider('configurationDataProvider')] + #[Test] public function sendRecoveryEmailShouldGenerateMailFromConfiguration( int $uid, array $recoveryConfiguration, diff --git a/typo3/sysext/felogin/Tests/Unit/Service/ValidatorResolverServiceTest.php b/typo3/sysext/felogin/Tests/Unit/Service/ValidatorResolverServiceTest.php index e9f6371eb7beca8f4fcad1114c277fc982873a4a..04f11570c3b83f0afcce0d68c252a0ec16a51efb 100644 --- a/typo3/sysext/felogin/Tests/Unit/Service/ValidatorResolverServiceTest.php +++ b/typo3/sysext/felogin/Tests/Unit/Service/ValidatorResolverServiceTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\FrontendLogin\Tests\Unit\Service; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extbase\Validation\Validator\NotEmptyValidator; use TYPO3\CMS\Extbase\Validation\Validator\StringLengthValidator; use TYPO3\CMS\FrontendLogin\Service\ValidatorResolverService; @@ -26,9 +28,7 @@ final class ValidatorResolverServiceTest extends UnitTestCase { protected ValidatorResolverService $subject; - /** - * @test - */ + #[Test] public function resolveShouldReturnEmptyArrayIfEmptyConfigurationIsPassed(): void { $result = $this->subject->resolve([]); @@ -36,10 +36,8 @@ final class ValidatorResolverServiceTest extends UnitTestCase self::assertEmpty($result->current()); } - /** - * @test - * @dataProvider validatorConfigDataProvider - */ + #[DataProvider('validatorConfigDataProvider')] + #[Test] public function resolveShouldReturnValidators(array $config): void { $validators = $this->subject->resolve($config); diff --git a/typo3/sysext/felogin/Tests/Unit/Validation/RedirectUrlValidatorTest.php b/typo3/sysext/felogin/Tests/Unit/Validation/RedirectUrlValidatorTest.php index 4607d7e8b18bfe5c4182a6c8aaaa5560622e8948..3e5a5ff5b750ac0c88e77608e5d8d239ce0a8a5f 100644 --- a/typo3/sysext/felogin/Tests/Unit/Validation/RedirectUrlValidatorTest.php +++ b/typo3/sysext/felogin/Tests/Unit/Validation/RedirectUrlValidatorTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\FrontendLogin\Tests\Unit\Validation; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use Psr\Log\NullLogger; use TYPO3\CMS\Core\Core\Environment; use TYPO3\CMS\Core\Core\SystemEnvironmentBuilder; @@ -97,10 +99,8 @@ final class RedirectUrlValidatorTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider validateRedirectUrlClearsUrlDataProvider - */ + #[DataProvider('validateRedirectUrlClearsUrlDataProvider')] + #[Test] public function validateRedirectUrlClearsUrl(string $url): void { Environment::initialize( @@ -135,10 +135,8 @@ final class RedirectUrlValidatorTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider validateRedirectUrlKeepsCleanUrlDataProvider - */ + #[DataProvider('validateRedirectUrlKeepsCleanUrlDataProvider')] + #[Test] public function validateRedirectUrlKeepsCleanUrl(string $url): void { Environment::initialize( @@ -170,10 +168,8 @@ final class RedirectUrlValidatorTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider validateRedirectUrlClearsInvalidUrlInSubdirectoryDataProvider - */ + #[DataProvider('validateRedirectUrlClearsInvalidUrlInSubdirectoryDataProvider')] + #[Test] public function validateRedirectUrlClearsInvalidUrlInSubdirectory(string $url): void { GeneralUtility::flushInternalRuntimeCaches(); @@ -198,10 +194,8 @@ final class RedirectUrlValidatorTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider validateRedirectUrlKeepsCleanUrlInSubdirectoryDataProvider - */ + #[DataProvider('validateRedirectUrlKeepsCleanUrlInSubdirectoryDataProvider')] + #[Test] public function validateRedirectUrlKeepsCleanUrlInSubdirectory(string $url): void { Environment::initialize( @@ -223,7 +217,6 @@ final class RedirectUrlValidatorTest extends UnitTestCase /************************************************** * Tests concerning isInCurrentDomain **************************************************/ - /** * Dataprovider for isInCurrentDomainIgnoresScheme */ @@ -254,12 +247,12 @@ final class RedirectUrlValidatorTest extends UnitTestCase } /** - * @test - * @dataProvider isInCurrentDomainIgnoresSchemeDataProvider * @param string $host $_SERVER['HTTP_HOST'] * @param string $https $_SERVER['HTTPS'] * @param string $url The url to test */ + #[DataProvider('isInCurrentDomainIgnoresSchemeDataProvider')] + #[Test] public function isInCurrentDomainIgnoresScheme(string $host, string $https, string $url): void { Environment::initialize( @@ -300,11 +293,11 @@ final class RedirectUrlValidatorTest extends UnitTestCase } /** - * @test - * @dataProvider isInCurrentDomainReturnsFalseIfDomainsAreDifferentDataProvider * @param string $host $_SERVER['HTTP_HOST'] * @param string $url The url to test */ + #[DataProvider('isInCurrentDomainReturnsFalseIfDomainsAreDifferentDataProvider')] + #[Test] public function isInCurrentDomainReturnsFalseIfDomainsAreDifferent(string $host, string $url): void { $_SERVER['HTTP_HOST'] = $host; @@ -321,10 +314,7 @@ final class RedirectUrlValidatorTest extends UnitTestCase /************************************************** * Tests concerning isInLocalDomain **************************************************/ - - /** - * @test - */ + #[Test] public function isInLocalDomainValidatesSites(): void { $url = 'http://example.com'; diff --git a/typo3/sysext/filelist/Tests/Unit/Event/ModifyEditFileFormDataEventTest.php b/typo3/sysext/filelist/Tests/Unit/Event/ModifyEditFileFormDataEventTest.php index 3a070c91ed1544227f38d2b46ca79fd88f8a22ad..d05a17b7f3e00aab9db8a2dcc267e47e199c802e 100644 --- a/typo3/sysext/filelist/Tests/Unit/Event/ModifyEditFileFormDataEventTest.php +++ b/typo3/sysext/filelist/Tests/Unit/Event/ModifyEditFileFormDataEventTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Filelist\Tests\Unit\Event; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Http\ServerRequest; use TYPO3\CMS\Core\Http\Uri; use TYPO3\CMS\Core\Resource\File; @@ -26,9 +27,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ModifyEditFileFormDataEventTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function gettersReturnInitializedObjects(): void { $formData = [ diff --git a/typo3/sysext/filelist/Tests/Unit/FileListTest.php b/typo3/sysext/filelist/Tests/Unit/FileListTest.php index 791708fc06ede4422947e55e8956cccefc2682b5..063b9b09b61f1ea5cf1d8fff957dd0eedf39e73d 100644 --- a/typo3/sysext/filelist/Tests/Unit/FileListTest.php +++ b/typo3/sysext/filelist/Tests/Unit/FileListTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Filelist\Tests\Unit; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Localization\LanguageService; use TYPO3\CMS\Core\Localization\Locale; use TYPO3\CMS\Core\Resource\File; @@ -26,9 +27,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class FileListTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function sortResourcesByNameSortsCorrectly(): void { $languageServiceMock = $this->createMock(LanguageService::class); @@ -69,9 +68,7 @@ final class FileListTest extends UnitTestCase self::assertSame($expected, $fileList->_call('sortResources', $resources, 'name')); } - /** - * @test - */ + #[Test] public function sortResourcesByFileextNameSortsCorrectly(): void { $languageServiceMock = $this->createMock(LanguageService::class); diff --git a/typo3/sysext/filelist/Tests/Unit/Matcher/ResourceFileExtensionMatcherTest.php b/typo3/sysext/filelist/Tests/Unit/Matcher/ResourceFileExtensionMatcherTest.php index 972de9a2685bd8a722c335af93ff2398c5cd877b..031a0427bdc1804c3e309f22077c9f3877c5b91a 100644 --- a/typo3/sysext/filelist/Tests/Unit/Matcher/ResourceFileExtensionMatcherTest.php +++ b/typo3/sysext/filelist/Tests/Unit/Matcher/ResourceFileExtensionMatcherTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Filelist\Tests\Unit\Matcher; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Resource\File; use TYPO3\CMS\Core\Resource\ResourceStorage; use TYPO3\CMS\Filelist\Matcher\ResourceFileExtensionMatcher; @@ -32,9 +33,7 @@ final class ResourceFileExtensionMatcherTest extends UnitTestCase $this->storage = $this->getMockBuilder(ResourceStorage::class)->disableOriginalConstructor()->getMock(); } - /** - * @test - */ + #[Test] public function fileExtensionsAreTransformedToLowercase(): void { $matcher = new ResourceFileExtensionMatcher(); @@ -50,9 +49,7 @@ final class ResourceFileExtensionMatcherTest extends UnitTestCase self::assertTrue($matcher->match($this->getFile('png'))); } - /** - * @test - */ + #[Test] public function ignoredFileExtensionsAreTransformedToLowercase(): void { $matcher = new ResourceFileExtensionMatcher(); diff --git a/typo3/sysext/fluid/Tests/Unit/Core/Cache/FluidTemplateCacheTest.php b/typo3/sysext/fluid/Tests/Unit/Core/Cache/FluidTemplateCacheTest.php index 70c464c42f619b4149d8f9532ef291301e23b3e8..96b39bde894f725e0294d5d88f6671ddc23f3f06 100644 --- a/typo3/sysext/fluid/Tests/Unit/Core/Cache/FluidTemplateCacheTest.php +++ b/typo3/sysext/fluid/Tests/Unit/Core/Cache/FluidTemplateCacheTest.php @@ -17,15 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Fluid\Tests\Unit\Core\Cache; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Cache\Backend\PhpCapableBackendInterface; use TYPO3\CMS\Fluid\Core\Cache\FluidTemplateCache; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class FluidTemplateCacheTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function flushCallsFlushOnBackend(): void { $backend = $this->createMock(PhpCapableBackendInterface::class); @@ -34,9 +33,7 @@ final class FluidTemplateCacheTest extends UnitTestCase $instance->flush(); } - /** - * @test - */ + #[Test] public function getDelegatesToRequireOnce(): void { $instance = $this->getMockBuilder(FluidTemplateCache::class) @@ -47,9 +44,7 @@ final class FluidTemplateCacheTest extends UnitTestCase $instance->get('foobar'); } - /** - * @test - */ + #[Test] public function setCallsSetOnBackend(): void { $backend = $this->createMock(PhpCapableBackendInterface::class); @@ -63,9 +58,7 @@ final class FluidTemplateCacheTest extends UnitTestCase $instance->set('test', 'test', ['foobar']); } - /** - * @test - */ + #[Test] public function setRemovesLeadingPhpTagBeforeCallingParentWhichAddsLeadingPhpTag(): void { $backend = $this->createMock(PhpCapableBackendInterface::class); diff --git a/typo3/sysext/fluid/Tests/Unit/Core/Rendering/RenderingContextTest.php b/typo3/sysext/fluid/Tests/Unit/Core/Rendering/RenderingContextTest.php index 9181e67ec38b26423280b7164081e174442a9876..064587d73a6cf678cb2ffb579c8d244f87fe7cff 100644 --- a/typo3/sysext/fluid/Tests/Unit/Core/Rendering/RenderingContextTest.php +++ b/typo3/sysext/fluid/Tests/Unit/Core/Rendering/RenderingContextTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Fluid\Tests\Unit\Core\Rendering; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Http\ServerRequest; use TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters; use TYPO3\CMS\Extbase\Mvc\Request; @@ -43,9 +45,7 @@ final class RenderingContextTest extends UnitTestCase ->getMock(); } - /** - * @test - */ + #[Test] public function templateVariableContainerCanBeReadCorrectly(): void { $templateVariableContainer = $this->createMock(StandardVariableProvider::class); @@ -53,9 +53,7 @@ final class RenderingContextTest extends UnitTestCase self::assertSame($this->renderingContext->getVariableProvider(), $templateVariableContainer, 'Template Variable Container could not be read out again.'); } - /** - * @test - */ + #[Test] public function viewHelperVariableContainerCanBeReadCorrectly(): void { $viewHelperVariableContainer = $this->createMock(ViewHelperVariableContainer::class); @@ -64,11 +62,11 @@ final class RenderingContextTest extends UnitTestCase } /** - * @test - * @dataProvider getControllerActionTestValues * @param string $input * @param string $expected */ + #[DataProvider('getControllerActionTestValues')] + #[Test] public function setControllerActionProcessesInputCorrectly($input, $expected): void { $subject = $this->getMockBuilder(RenderingContext::class) diff --git a/typo3/sysext/fluid/Tests/Unit/Core/ViewHelper/ViewHelperResolverTest.php b/typo3/sysext/fluid/Tests/Unit/Core/ViewHelper/ViewHelperResolverTest.php index 7dac7dc7cd6e80e1489b49df608a23063f4d2147..9ddaf68721e9eddb465778e880eb0d67391e5f47 100644 --- a/typo3/sysext/fluid/Tests/Unit/Core/ViewHelper/ViewHelperResolverTest.php +++ b/typo3/sysext/fluid/Tests/Unit/Core/ViewHelper/ViewHelperResolverTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Fluid\Tests\Unit\Core\ViewHelper; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use Symfony\Component\DependencyInjection\Container; use TYPO3\CMS\Fluid\Core\ViewHelper\ViewHelperResolver; use TYPO3\CMS\Fluid\ViewHelpers\CObjectViewHelper; @@ -27,12 +29,12 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ViewHelperResolverTest extends UnitTestCase { /** - * @test - * @dataProvider getResolveViewHelperNameTestValues * @param string $namespace * @param string $method * @param string $expected */ + #[DataProvider('getResolveViewHelperNameTestValues')] + #[Test] public function resolveViewHelperClassNameResolvesExpectedViewHelperClassName($namespace, $method, $expected): void { $viewHelperResolver = new ViewHelperResolver( diff --git a/typo3/sysext/fluid/Tests/Unit/View/AbstractTemplateViewTest.php b/typo3/sysext/fluid/Tests/Unit/View/AbstractTemplateViewTest.php index d9103d5b43d2af8eb1dbb6e3d3750908c628fa2a..12e340c3e5295e03c3a548d70801a6f9e5f504a1 100644 --- a/typo3/sysext/fluid/Tests/Unit/View/AbstractTemplateViewTest.php +++ b/typo3/sysext/fluid/Tests/Unit/View/AbstractTemplateViewTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Fluid\Tests\Unit\View; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Fluid\Core\Rendering\RenderingContext; use TYPO3\CMS\Fluid\View\AbstractTemplateView; @@ -50,9 +51,7 @@ final class AbstractTemplateViewTest extends UnitTestCase $this->view->setRenderingContext($this->renderingContext); } - /** - * @test - */ + #[Test] public function viewIsPlacedInViewHelperVariableContainer(): void { $this->viewHelperVariableContainer->expects(self::once())->method('setView')->with($this->view); diff --git a/typo3/sysext/fluid/Tests/Unit/View/TemplatePathsTest.php b/typo3/sysext/fluid/Tests/Unit/View/TemplatePathsTest.php index 717339658d3a37ec2c0aa7e07b1a9e7011b9e31d..090ac1c4fb02839a831eaec540df9fa2c7d106e3 100644 --- a/typo3/sysext/fluid/Tests/Unit/View/TemplatePathsTest.php +++ b/typo3/sysext/fluid/Tests/Unit/View/TemplatePathsTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Fluid\Tests\Unit\View; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface; use TYPO3\CMS\Fluid\View\TemplatePaths; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -83,10 +85,10 @@ final class TemplatePathsTest extends UnitTestCase } /** - * @test - * @dataProvider getPathSetterMethodTestValues * @param string $method */ + #[DataProvider('getPathSetterMethodTestValues')] + #[Test] public function pathSetterMethodSortsPathsByKeyDescending($method, array $paths, array $expected): void { $setter = 'set' . ucfirst($method); @@ -97,9 +99,7 @@ final class TemplatePathsTest extends UnitTestCase self::assertEquals($expected, $subject->$getter()); } - /** - * @test - */ + #[Test] public function getContextSpecificViewConfigurationSortsTypoScriptConfiguredPathsCorrectlyInFrontendMode(): void { $configurationManager = $this->createMock(ConfigurationManagerInterface::class); @@ -154,9 +154,7 @@ final class TemplatePathsTest extends UnitTestCase ], $result); } - /** - * @test - */ + #[Test] public function getContextSpecificViewConfigurationSortsTypoScriptConfiguredPathsCorrectlyInBackendMode(): void { $configurationManager = $this->createMock(ConfigurationManagerInterface::class); @@ -211,9 +209,7 @@ final class TemplatePathsTest extends UnitTestCase ], $result); } - /** - * @test - */ + #[Test] public function getContextSpecificViewConfigurationDoesNotResolveFromTypoScriptAndDoesNotSortInUnspecifiedMode(): void { $configurationManager = $this->createMock(ConfigurationManagerInterface::class); @@ -259,9 +255,7 @@ final class TemplatePathsTest extends UnitTestCase ], $result); } - /** - * @test - */ + #[Test] public function getContextSpecificViewConfigurationRespectsTypoScriptConfiguredPaths(): void { $configurationManager = $this->createMock(ConfigurationManagerInterface::class); diff --git a/typo3/sysext/fluid/Tests/Unit/ViewHelpers/Link/TypolinkViewHelperTest.php b/typo3/sysext/fluid/Tests/Unit/ViewHelpers/Link/TypolinkViewHelperTest.php index 5ddbd0342f06d7c57b16dd9606c75ddac6ca8c29..e5e77635006bad3a1ef5122e8422958b2bf88bc1 100644 --- a/typo3/sysext/fluid/Tests/Unit/ViewHelpers/Link/TypolinkViewHelperTest.php +++ b/typo3/sysext/fluid/Tests/Unit/ViewHelpers/Link/TypolinkViewHelperTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Fluid\Tests\Unit\ViewHelpers\Link; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Fluid\ViewHelpers\Link\TypolinkViewHelper; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -214,10 +216,8 @@ final class TypolinkViewHelperTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider decodedConfigurationAndFluidArgumentDataProvider - */ + #[DataProvider('decodedConfigurationAndFluidArgumentDataProvider')] + #[Test] public function mergeTypoLinkConfigurationMergesData(array $decodedConfiguration, array $viewHelperArguments, array $expectation): void { $mock = \Closure::bind(static function (TypolinkViewHelper $typolinkViewHelper) use ($decodedConfiguration, $viewHelperArguments, &$result) { diff --git a/typo3/sysext/fluid/Tests/Unit/ViewHelpers/Uri/TypolinkViewHelperTest.php b/typo3/sysext/fluid/Tests/Unit/ViewHelpers/Uri/TypolinkViewHelperTest.php index 67116bb17049bbdfbaf09b073f5a1074cbc039ac..4f1106cfae648df30c9a42c4ad2eb8ce3bff3c7b 100644 --- a/typo3/sysext/fluid/Tests/Unit/ViewHelpers/Uri/TypolinkViewHelperTest.php +++ b/typo3/sysext/fluid/Tests/Unit/ViewHelpers/Uri/TypolinkViewHelperTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Fluid\Tests\Unit\ViewHelpers\Uri; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Fluid\ViewHelpers\Uri\TypolinkViewHelper; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -76,10 +78,8 @@ final class TypolinkViewHelperTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider plainDecodedConfigurationDataProvider - */ + #[DataProvider('plainDecodedConfigurationDataProvider')] + #[Test] public function mergeTypoLinkConfigurationDoesNotModifyData(array $decodedConfiguration): void { $mock = \Closure::bind(static function (TypolinkViewHelper $typolinkViewHelper) use ($decodedConfiguration, &$result) { @@ -176,10 +176,8 @@ final class TypolinkViewHelperTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider decodedConfigurationAndFluidArgumentDataProvider - */ + #[DataProvider('decodedConfigurationAndFluidArgumentDataProvider')] + #[Test] public function mergeTypoLinkConfigurationMergesData(array $decodedConfiguration, array $viewHelperArguments, array $expectation): void { $mock = \Closure::bind(static function (TypolinkViewHelper $typolinkViewHelper) use ($decodedConfiguration, $viewHelperArguments, &$result) { diff --git a/typo3/sysext/form/Tests/Unit/Controller/FormEditorControllerTest.php b/typo3/sysext/form/Tests/Unit/Controller/FormEditorControllerTest.php index 65ade2ec19f70f3469a16d9e627c1b2a99df3926..b8cdf182b52568821191c292dee7d9734cd8a9e9 100644 --- a/typo3/sysext/form/Tests/Unit/Controller/FormEditorControllerTest.php +++ b/typo3/sysext/form/Tests/Unit/Controller/FormEditorControllerTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Form\Tests\Unit\Controller; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Form\Controller\FormEditorController; use TYPO3\CMS\Form\Domain\Exception\RenderingException; @@ -33,9 +34,7 @@ final class FormEditorControllerTest extends UnitTestCase $GLOBALS['TYPO3_CONF_VARS']['SYS']['encryptionKey'] = '12345'; } - /** - * @test - */ + #[Test] public function getInsertRenderablesPanelConfigurationReturnsGroupedAndSortedConfiguration(): void { $mockTranslationService = $this->getAccessibleMock(TranslationService::class, ['translate'], [], '', false); @@ -118,9 +117,7 @@ final class FormEditorControllerTest extends UnitTestCase self::assertSame($expected, $subject->_call('getInsertRenderablesPanelConfiguration', $input)); } - /** - * @test - */ + #[Test] public function getFormEditorDefinitionsReturnReducedConfiguration(): void { $mockTranslationService = $this->getAccessibleMock(TranslationService::class, ['translateValuesRecursive'], [], '', false); @@ -239,9 +236,7 @@ final class FormEditorControllerTest extends UnitTestCase self::assertSame($expected, $subject->_call('getFormEditorDefinitions')); } - /** - * @test - */ + #[Test] public function renderFormEditorTemplatesThrowsExceptionIfLayoutRootPathsNotSet(): void { $this->expectException(RenderingException::class); @@ -260,9 +255,7 @@ final class FormEditorControllerTest extends UnitTestCase $mockController->_call('renderFormEditorTemplates', []); } - /** - * @test - */ + #[Test] public function renderFormEditorTemplatesThrowsExceptionIfLayoutRootPathsNotArray(): void { $this->expectException(RenderingException::class); @@ -282,9 +275,7 @@ final class FormEditorControllerTest extends UnitTestCase $mockController->_call('renderFormEditorTemplates', []); } - /** - * @test - */ + #[Test] public function renderFormEditorTemplatesThrowsExceptionIfPartialRootPathsNotSet(): void { $this->expectException(RenderingException::class); @@ -304,9 +295,7 @@ final class FormEditorControllerTest extends UnitTestCase $mockController->_call('renderFormEditorTemplates', []); } - /** - * @test - */ + #[Test] public function renderFormEditorTemplatesThrowsExceptionIfPartialRootPathsNotArray(): void { $this->expectException(RenderingException::class); @@ -326,9 +315,7 @@ final class FormEditorControllerTest extends UnitTestCase $mockController->_call('renderFormEditorTemplates', []); } - /** - * @test - */ + #[Test] public function renderFormEditorTemplatesThrowsExceptionIfTemplatePathAndFilenameNotSet(): void { $this->expectException(RenderingException::class); @@ -345,9 +332,7 @@ final class FormEditorControllerTest extends UnitTestCase $mockController->_call('renderFormEditorTemplates', []); } - /** - * @test - */ + #[Test] public function transformMultiValuePropertiesForFormEditorConvertMultiValueDataIntoMetaData(): void { $mockController = $this->getAccessibleMock(FormEditorController::class, null, [], '', false); @@ -425,9 +410,7 @@ final class FormEditorControllerTest extends UnitTestCase self::assertSame($expected, $mockController->_call('transformMultiValuePropertiesForFormEditor', $input, 'type', $multiValueProperties)); } - /** - * @test - */ + #[Test] public function filterEmptyArraysRemovesEmptyArrayKeys(): void { $mockController = $this->getAccessibleMock(FormEditorController::class, null, [], '', false); diff --git a/typo3/sysext/form/Tests/Unit/Controller/FormFrontendControllerTest.php b/typo3/sysext/form/Tests/Unit/Controller/FormFrontendControllerTest.php index 939b2372ba35db375147d8f06ab8fca300df2abf..94ec9a42f0264068fc32928ec341ac5120d63f38 100644 --- a/typo3/sysext/form/Tests/Unit/Controller/FormFrontendControllerTest.php +++ b/typo3/sysext/form/Tests/Unit/Controller/FormFrontendControllerTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Form\Tests\Unit\Controller; +use PHPUnit\Framework\Attributes\Test; use Psr\EventDispatcher\EventDispatcherInterface; use TYPO3\CMS\Core\Cache\CacheManager; use TYPO3\CMS\Core\Cache\Frontend\NullFrontend; @@ -47,9 +48,7 @@ final class FormFrontendControllerTest extends UnitTestCase parent::tearDown(); } - /** - * @test - */ + #[Test] public function overrideByFlexFormSettingsReturnsNoOverriddenConfigurationIfFlexformOverridesDisabled(): void { $mockController = $this->getAccessibleMock(FormFrontendController::class, null, [], '', false); @@ -176,9 +175,7 @@ final class FormFrontendControllerTest extends UnitTestCase self::assertSame($expected, $mockController->_call('overrideByFlexFormSettings', $input)); } - /** - * @test - */ + #[Test] public function overrideByFlexFormSettingsReturnsOverriddenConfigurationIfFlexformOverridesEnabled(): void { $mockController = $this->getAccessibleMock(FormFrontendController::class, null, [], '', false); @@ -328,9 +325,7 @@ final class FormFrontendControllerTest extends UnitTestCase self::assertSame($expected, $mockController->_call('overrideByFlexFormSettings', $input)); } - /** - * @test - */ + #[Test] public function overrideByFlexFormSettingsReturnsNotOverriddenConfigurationKeyIfFlexformOverridesAreNotRepresentedInFormEngineConfiguration(): void { $mockController = $this->getAccessibleMock(FormFrontendController::class, null, [], '', false); diff --git a/typo3/sysext/form/Tests/Unit/Controller/FormManagerControllerTest.php b/typo3/sysext/form/Tests/Unit/Controller/FormManagerControllerTest.php index 8133f507f3c9d762a9a5f9186a86778a10611ed9..49c1f3947b4a4f0a8439eb01ccb38ab93eb7d62f 100644 --- a/typo3/sysext/form/Tests/Unit/Controller/FormManagerControllerTest.php +++ b/typo3/sysext/form/Tests/Unit/Controller/FormManagerControllerTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Form\Tests\Unit\Controller; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Imaging\Icon; use TYPO3\CMS\Core\Imaging\IconFactory; use TYPO3\CMS\Core\Resource\Folder; @@ -33,9 +34,7 @@ final class FormManagerControllerTest extends UnitTestCase { protected bool $resetSingletonInstances = true; - /** - * @test - */ + #[Test] public function getAccessibleFormStorageFoldersReturnsProcessedArray(): void { $mockController = $this->getAccessibleMock(FormManagerController::class, null, [], '', false); @@ -94,9 +93,7 @@ final class FormManagerControllerTest extends UnitTestCase self::assertSame($expected, $mockController->_call('getAccessibleFormStorageFolders')); } - /** - * @test - */ + #[Test] public function getFormManagerAppInitialDataReturnsProcessedArray(): void { $mockTranslationService = $this->getAccessibleMock(TranslationService::class, ['translateValuesRecursive'], [], '', false); @@ -148,9 +145,7 @@ final class FormManagerControllerTest extends UnitTestCase self::assertSame($expected, $subject->_call('getFormManagerAppInitialData')); } - /** - * @test - */ + #[Test] public function getAvailableFormDefinitionsReturnsProcessedArray(): void { $mockController = $this->getAccessibleMock(FormManagerController::class, null, [], '', false); @@ -197,9 +192,7 @@ final class FormManagerControllerTest extends UnitTestCase self::assertSame($expected, $mockController->_call('getAvailableFormDefinitions')); } - /** - * @test - */ + #[Test] public function getProcessedReferencesRowsThrowsExceptionIfPersistenceIdentifierIsEmpty(): void { $this->expectException(\InvalidArgumentException::class); @@ -210,9 +203,7 @@ final class FormManagerControllerTest extends UnitTestCase $mockController->_call('getProcessedReferencesRows', ''); } - /** - * @test - */ + #[Test] public function getProcessedReferencesRowsReturnsProcessedArray(): void { $iconFactoryMock = $this->createMock(IconFactory::class); @@ -262,9 +253,7 @@ final class FormManagerControllerTest extends UnitTestCase self::assertSame($expected, $mockController->_call('getProcessedReferencesRows', 'fake')); } - /** - * @test - */ + #[Test] public function isValidTemplatePathReturnsTrueIfTemplateIsDefinedAndExists(): void { $mockController = $this->getAccessibleMock(FormManagerController::class, null, [], '', false); @@ -293,9 +282,7 @@ final class FormManagerControllerTest extends UnitTestCase self::assertTrue($mockController->_call('isValidTemplatePath', 'standard', 'EXT:form/Tests/Unit/Controller/Fixtures/SimpleContactForm.yaml')); } - /** - * @test - */ + #[Test] public function isValidTemplatePathReturnsFalseIfTemplateIsDefinedButNotExists(): void { $mockController = $this->getAccessibleMock(FormManagerController::class, null, [], '', false); @@ -324,9 +311,7 @@ final class FormManagerControllerTest extends UnitTestCase self::assertFalse($mockController->_call('isValidTemplatePath', 'standard', 'EXT:form/Tests/Unit/Controller/Fixtures/NonExistingForm.yaml')); } - /** - * @test - */ + #[Test] public function isValidTemplatePathReturnsFalseIfTemplateIsNotDefinedAndExists(): void { $mockController = $this->getAccessibleMock(FormManagerController::class, null, [], '', false); @@ -365,9 +350,7 @@ final class FormManagerControllerTest extends UnitTestCase self::assertFalse($mockController->_call('isValidTemplatePath', 'other', 'EXT:form/Tests/Unit/Controller/Fixtures/SimpleContactForm.yaml')); } - /** - * @test - */ + #[Test] public function convertFormNameToIdentifierRemoveSpaces(): void { $mockController = $this->getAccessibleMock(FormManagerController::class, null, [], '', false); @@ -377,9 +360,7 @@ final class FormManagerControllerTest extends UnitTestCase self::assertSame($expected, $mockController->_call('convertFormNameToIdentifier', $input)); } - /** - * @test - */ + #[Test] public function convertFormNameToIdentifierConvertAccentedCharacters(): void { $mockController = $this->getAccessibleMock(FormManagerController::class, null, [], '', false); @@ -389,9 +370,7 @@ final class FormManagerControllerTest extends UnitTestCase self::assertSame($expected, $mockController->_call('convertFormNameToIdentifier', $input)); } - /** - * @test - */ + #[Test] public function convertFormNameToIdentifierConvertAccentedCharactersNotInNFC(): void { $mockController = $this->getAccessibleMock(FormManagerController::class, null, [], '', false); @@ -401,9 +380,7 @@ final class FormManagerControllerTest extends UnitTestCase self::assertSame($expected, $mockController->_call('convertFormNameToIdentifier', $input)); } - /** - * @test - */ + #[Test] public function convertFormNameToIdentifierRemoveSpecialChars(): void { $mockController = $this->getAccessibleMock(FormManagerController::class, null, [], '', false); diff --git a/typo3/sysext/form/Tests/Unit/Domain/Configuration/ConfigurationServiceTest.php b/typo3/sysext/form/Tests/Unit/Domain/Configuration/ConfigurationServiceTest.php index 1bcf22c9bb2830319807f0b10f147400e5120c9b..c60049450dc368fe7f13d296820929abf2c6d1be 100644 --- a/typo3/sysext/form/Tests/Unit/Domain/Configuration/ConfigurationServiceTest.php +++ b/typo3/sysext/form/Tests/Unit/Domain/Configuration/ConfigurationServiceTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Form\Tests\Unit\Domain\Configuration; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Form\Domain\Configuration\ConfigurationService; use TYPO3\CMS\Form\Domain\Configuration\Exception\PropertyException; use TYPO3\CMS\Form\Domain\Configuration\Exception\PrototypeNotFoundException; @@ -29,9 +31,7 @@ final class ConfigurationServiceTest extends UnitTestCase { protected bool $resetSingletonInstances = true; - /** - * @test - */ + #[Test] public function getPrototypeConfigurationReturnsPrototypeConfiguration(): void { $configurationManagerMock = $this->createMock(ConfigurationManagerInterface::class); @@ -52,9 +52,7 @@ final class ConfigurationServiceTest extends UnitTestCase self::assertSame($expected, $configurationService->getPrototypeConfiguration('standard')); } - /** - * @test - */ + #[Test] public function getPrototypeConfigurationThrowsExceptionIfNoPrototypeFound(): void { $configurationManagerMock = $this->createMock(ConfigurationManagerInterface::class); @@ -72,9 +70,7 @@ final class ConfigurationServiceTest extends UnitTestCase $configurationService->getPrototypeConfiguration('standard'); } - /** - * @test - */ + #[Test] public function getSelectablePrototypeNamesDefinedInFormEditorSetupReturnsPrototypes(): void { $configurationManagerMock = $this->createMock(ConfigurationManagerInterface::class); @@ -104,10 +100,8 @@ final class ConfigurationServiceTest extends UnitTestCase self::assertSame($expected, $configurationService->getSelectablePrototypeNamesDefinedInFormEditorSetup()); } - /** - * @test - * @dataProvider isFormElementPropertyDefinedInFormEditorSetupDataProvider - */ + #[DataProvider('isFormElementPropertyDefinedInFormEditorSetupDataProvider')] + #[Test] public function isFormElementPropertyDefinedInFormEditorSetup( array $configuration, ValidationDto $validationDto, @@ -130,10 +124,8 @@ final class ConfigurationServiceTest extends UnitTestCase ); } - /** - * @test - * @dataProvider isPropertyCollectionPropertyDefinedInFormEditorSetupDataProvider - */ + #[DataProvider('isPropertyCollectionPropertyDefinedInFormEditorSetupDataProvider')] + #[Test] public function isPropertyCollectionPropertyDefinedInFormEditorSetup( array $configuration, ValidationDto $validationDto, @@ -156,10 +148,8 @@ final class ConfigurationServiceTest extends UnitTestCase ); } - /** - * @test - * @dataProvider isFormElementPropertyDefinedInPredefinedDefaultsInFormEditorSetupDataProvider - */ + #[DataProvider('isFormElementPropertyDefinedInPredefinedDefaultsInFormEditorSetupDataProvider')] + #[Test] public function isFormElementPropertyDefinedInPredefinedDefaultsInFormEditorSetup( array $configuration, ValidationDto $validationDto, @@ -182,10 +172,8 @@ final class ConfigurationServiceTest extends UnitTestCase ); } - /** - * @test - * @dataProvider isPropertyCollectionPropertyDefinedInPredefinedDefaultsInFormEditorSetupDataProvider - */ + #[DataProvider('isPropertyCollectionPropertyDefinedInPredefinedDefaultsInFormEditorSetupDataProvider')] + #[Test] public function isPropertyCollectionPropertyDefinedInPredefinedDefaultsInFormEditorSetup( array $configuration, ValidationDto $validationDto, @@ -210,9 +198,7 @@ final class ConfigurationServiceTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function getFormElementPredefinedDefaultValueFromFormEditorSetupThrowsExceptionIfNoPredefinedDefaultIsAvailable( ): void { $this->expectException(PropertyException::class); @@ -233,9 +219,7 @@ final class ConfigurationServiceTest extends UnitTestCase $configurationService->getFormElementPredefinedDefaultValueFromFormEditorSetup($validationDto); } - /** - * @test - */ + #[Test] public function getFormElementPredefinedDefaultValueFromFormEditorSetupReturnsDefaultValue(): void { $expected = 'foo'; @@ -266,9 +250,7 @@ final class ConfigurationServiceTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function getPropertyCollectionPredefinedDefaultValueFromFormEditorSetupThrowsExceptionIfNoPredefinedDefaultIsAvailable( ): void { $this->expectException(PropertyException::class); @@ -296,9 +278,7 @@ final class ConfigurationServiceTest extends UnitTestCase $configurationService->getPropertyCollectionPredefinedDefaultValueFromFormEditorSetup($validationDto); } - /** - * @test - */ + #[Test] public function getPropertyCollectionPredefinedDefaultValueFromFormEditorSetupReturnsDefaultValue(): void { $expected = 'foo'; @@ -336,10 +316,8 @@ final class ConfigurationServiceTest extends UnitTestCase ); } - /** - * @test - * @dataProvider isFormElementTypeCreatableByFormEditorDataProvider - */ + #[DataProvider('isFormElementTypeCreatableByFormEditorDataProvider')] + #[Test] public function isFormElementTypeCreatableByFormEditor( array $configuration, ValidationDto $validationDto, @@ -362,10 +340,8 @@ final class ConfigurationServiceTest extends UnitTestCase ); } - /** - * @test - * @dataProvider isPropertyCollectionElementIdentifierCreatableByFormEditorDataProvider - */ + #[DataProvider('isPropertyCollectionElementIdentifierCreatableByFormEditorDataProvider')] + #[Test] public function isPropertyCollectionElementIdentifierCreatableByFormEditor( array $configuration, ValidationDto $validationDto, @@ -388,9 +364,7 @@ final class ConfigurationServiceTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function isFormElementTypeDefinedInFormSetup(): void { $configuration = [ @@ -415,9 +389,7 @@ final class ConfigurationServiceTest extends UnitTestCase self::assertFalse($configurationService->isFormElementTypeDefinedInFormSetup($validationDto)); } - /** - * @test - */ + #[Test] public function addAdditionalPropertyPathsFromHookThrowsExceptionIfHookResultIsNoFormDefinitionValidation(): void { $this->expectException(PropertyException::class); @@ -429,9 +401,7 @@ final class ConfigurationServiceTest extends UnitTestCase $configurationService->_call('addAdditionalPropertyPathsFromHook', '', '', $input, []); } - /** - * @test - */ + #[Test] public function addAdditionalPropertyPathsFromHookThrowsExceptionIfPrototypeDoesNotMatch(): void { $this->expectException(PropertyException::class); @@ -444,9 +414,7 @@ final class ConfigurationServiceTest extends UnitTestCase $configurationService->_call('addAdditionalPropertyPathsFromHook', '', 'standard', $input, []); } - /** - * @test - */ + #[Test] public function addAdditionalPropertyPathsFromHookThrowsExceptionIfFormElementTypeDoesNotMatch(): void { $this->expectException(PropertyException::class); @@ -466,9 +434,7 @@ final class ConfigurationServiceTest extends UnitTestCase $configurationService->_call('addAdditionalPropertyPathsFromHook', '', 'standard', $input, []); } - /** - * @test - */ + #[Test] public function addAdditionalPropertyPathsFromHookThrowsExceptionIfPropertyCollectionNameIsInvalid(): void { $this->expectException(PropertyException::class); @@ -488,9 +454,7 @@ final class ConfigurationServiceTest extends UnitTestCase $configurationService->_call('addAdditionalPropertyPathsFromHook', '', 'standard', $input, []); } - /** - * @test - */ + #[Test] public function addAdditionalPropertyPathsFromHookAddPaths(): void { $configurationService = $this->getAccessibleMock( @@ -547,10 +511,8 @@ final class ConfigurationServiceTest extends UnitTestCase ); } - /** - * @test - * @dataProvider buildFormDefinitionValidationConfigurationFromFormEditorSetupDataProvider - */ + #[DataProvider('buildFormDefinitionValidationConfigurationFromFormEditorSetupDataProvider')] + #[Test] public function buildFormDefinitionValidationConfigurationFromFormEditorSetup(array $configuration, array $expected): void { $configurationService = $this->getAccessibleMock( @@ -621,10 +583,8 @@ final class ConfigurationServiceTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider formElementPropertyHasLimitedAllowedValuesDefinedWithinFormEditorSetupDataProvider - */ + #[DataProvider('formElementPropertyHasLimitedAllowedValuesDefinedWithinFormEditorSetupDataProvider')] + #[Test] public function formElementPropertyHasLimitedAllowedValuesDefinedWithinFormEditorSetup( array $configuration, ValidationDto $validationDto, @@ -647,9 +607,7 @@ final class ConfigurationServiceTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function getAllowedValuesForFormElementPropertyFromFormEditorSetupThrowsExceptionIfNoLimitedAllowedValuesAreAvailable(): void { $this->expectException(PropertyException::class); @@ -696,10 +654,8 @@ final class ConfigurationServiceTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider getAllowedValuesForFormElementPropertyFromFormEditorSetupDataProvider - */ + #[DataProvider('getAllowedValuesForFormElementPropertyFromFormEditorSetupDataProvider')] + #[Test] public function getAllowedValuesForFormElementPropertyFromFormEditorSetup( array $configuration, ValidationDto $validationDto, @@ -753,10 +709,8 @@ final class ConfigurationServiceTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider propertyCollectionPropertyHasLimitedAllowedValuesDefinedWithinFormEditorSetupDataProvider - */ + #[DataProvider('propertyCollectionPropertyHasLimitedAllowedValuesDefinedWithinFormEditorSetupDataProvider')] + #[Test] public function propertyCollectionPropertyHasLimitedAllowedValuesDefinedWithinFormEditorSetup( array $configuration, ValidationDto $validationDto, @@ -779,9 +733,7 @@ final class ConfigurationServiceTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function getAllowedValuesForPropertyCollectionPropertyFromFormEditorSetupThrowsExceptionIfNoLimitedAllowedValuesAreAvailable(): void { $this->expectException(PropertyException::class); @@ -828,10 +780,8 @@ final class ConfigurationServiceTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider getAllowedValuesForPropertyCollectionPropertyFromFormEditorSetupDataProvider - */ + #[DataProvider('getAllowedValuesForPropertyCollectionPropertyFromFormEditorSetupDataProvider')] + #[Test] public function getAllowedValuesForPropertyCollectionPropertyFromFormEditorSetup( array $configuration, ValidationDto $validationDto, diff --git a/typo3/sysext/form/Tests/Unit/Domain/Configuration/FormDefinition/Validators/CreatableFormElementPropertiesValidatorTest.php b/typo3/sysext/form/Tests/Unit/Domain/Configuration/FormDefinition/Validators/CreatableFormElementPropertiesValidatorTest.php index 172944c955f9ae4576fbce6eadde04f741863d5b..44e913d669840783415dd99bd4a4e73774834a15 100644 --- a/typo3/sysext/form/Tests/Unit/Domain/Configuration/FormDefinition/Validators/CreatableFormElementPropertiesValidatorTest.php +++ b/typo3/sysext/form/Tests/Unit/Domain/Configuration/FormDefinition/Validators/CreatableFormElementPropertiesValidatorTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Form\Tests\Unit\Domain\Configuration\FormDefinition\Validators; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Form\Domain\Configuration\ConfigurationService; use TYPO3\CMS\Form\Domain\Configuration\Exception\PropertyException; use TYPO3\CMS\Form\Domain\Configuration\FormDefinition\Validators\CreatableFormElementPropertiesValidator; @@ -25,9 +27,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class CreatableFormElementPropertiesValidatorTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function validateFormElementPredefinedDefaultValueThrowsExceptionIfValueDoesNotMatch(): void { $this->expectException(PropertyException::class); @@ -52,9 +52,7 @@ final class CreatableFormElementPropertiesValidatorTest extends UnitTestCase $typeConverter($input, ''); } - /** - * @test - */ + #[Test] public function validateFormElementPredefinedDefaultValueThrowsNoExceptionIfValueMatches(): void { $validationDto = new ValidationDto(null, null, 'test-1', 'label'); @@ -107,10 +105,8 @@ final class CreatableFormElementPropertiesValidatorTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider validateFormElementValueThrowsExceptionIfValueDoesNotMatchDataProvider - */ + #[DataProvider('validateFormElementValueThrowsExceptionIfValueDoesNotMatchDataProvider')] + #[Test] public function validateFormElementValueThrowsExceptionIfValueDoesNotMatch($input, array $allowedValues, array $untranslatedAllowedValues): void { $this->expectException(PropertyException::class); @@ -171,10 +167,8 @@ final class CreatableFormElementPropertiesValidatorTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider validateFormElementValueThrowsNoExceptionIfValueMatchesDataProvider - */ + #[DataProvider('validateFormElementValueThrowsNoExceptionIfValueMatchesDataProvider')] + #[Test] public function validateFormElementValueThrowsNoExceptionIfValueMatches($input, array $allowedValues, array $untranslatedAllowedValues, array $allPossibleAllowedValuesTranslations): void { $validationDto = new ValidationDto('standard', null, 'test-1', 'label'); diff --git a/typo3/sysext/form/Tests/Unit/Domain/Configuration/FormDefinition/Validators/CreatablePropertyCollectionElementPropertiesValidatorTest.php b/typo3/sysext/form/Tests/Unit/Domain/Configuration/FormDefinition/Validators/CreatablePropertyCollectionElementPropertiesValidatorTest.php index 7e10e6202eb81eb9ad5ceddb564fb659b8a7468a..0d02e41030207ebcc7007ce92acc774eb515a70d 100644 --- a/typo3/sysext/form/Tests/Unit/Domain/Configuration/FormDefinition/Validators/CreatablePropertyCollectionElementPropertiesValidatorTest.php +++ b/typo3/sysext/form/Tests/Unit/Domain/Configuration/FormDefinition/Validators/CreatablePropertyCollectionElementPropertiesValidatorTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Form\Tests\Unit\Domain\Configuration\FormDefinition\Validators; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Form\Domain\Configuration\ConfigurationService; use TYPO3\CMS\Form\Domain\Configuration\Exception\PropertyException; use TYPO3\CMS\Form\Domain\Configuration\FormDefinition\Validators\CreatablePropertyCollectionElementPropertiesValidator; @@ -25,9 +27,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class CreatablePropertyCollectionElementPropertiesValidatorTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function validatePropertyCollectionElementPredefinedDefaultValueThrowsExceptionIfValueDoesNotMatch(): void { $this->expectException(PropertyException::class); @@ -49,9 +49,7 @@ final class CreatablePropertyCollectionElementPropertiesValidatorTest extends Un $typeConverter->_call('validatePropertyCollectionElementPredefinedDefaultValue', $input, $validationDto); } - /** - * @test - */ + #[Test] public function validatePropertyCollectionElementPredefinedDefaultValueThrowsNoExceptionIfValueMatches(): void { $validationDto = new ValidationDto(null, null, 'test-1', 'label', 'validators', 'StringLength'); @@ -98,10 +96,8 @@ final class CreatablePropertyCollectionElementPropertiesValidatorTest extends Un ]; } - /** - * @test - * @dataProvider validatePropertyCollectionPropertyValueThrowsExceptionIfValueDoesNotMatchDataProvider - */ + #[DataProvider('validatePropertyCollectionPropertyValueThrowsExceptionIfValueDoesNotMatchDataProvider')] + #[Test] public function validatePropertyCollectionPropertyValueThrowsExceptionIfValueDoesNotMatch($input, array $allowedValues, array $untranslatedAllowedValues): void { $this->expectException(PropertyException::class); @@ -162,10 +158,8 @@ final class CreatablePropertyCollectionElementPropertiesValidatorTest extends Un ]; } - /** - * @test - * @dataProvider validatePropertyCollectionPropertyValueThrowsNoExceptionIfValueMatchesDataProvider - */ + #[DataProvider('validatePropertyCollectionPropertyValueThrowsNoExceptionIfValueMatchesDataProvider')] + #[Test] public function validatePropertyCollectionPropertyValueThrowsNoExceptionIfValueMatches($input, array $allowedValues, array $untranslatedAllowedValues, array $allPossibleAllowedValuesTranslations): void { $validationDto = new ValidationDto('standard', null, 'test-1', 'label', 'validators', 'StringLength'); diff --git a/typo3/sysext/form/Tests/Unit/Domain/Configuration/FormDefinitionConversionServiceTest.php b/typo3/sysext/form/Tests/Unit/Domain/Configuration/FormDefinitionConversionServiceTest.php index f45864c60463223103e2e918ed3e742141718652..e285a576cd530d2447cc18cb20334a2ca8519c1a 100644 --- a/typo3/sysext/form/Tests/Unit/Domain/Configuration/FormDefinitionConversionServiceTest.php +++ b/typo3/sysext/form/Tests/Unit/Domain/Configuration/FormDefinitionConversionServiceTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Form\Tests\Unit\Domain\Configuration; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Form\Domain\Configuration\FormDefinitionConversionService; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -25,9 +26,7 @@ final class FormDefinitionConversionServiceTest extends UnitTestCase { protected bool $resetSingletonInstances = true; - /** - * @test - */ + #[Test] public function addHmacDataAddsHmacHashes(): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['encryptionKey'] = ''; @@ -130,9 +129,7 @@ final class FormDefinitionConversionServiceTest extends UnitTestCase self::assertSame($expected, $data); } - /** - * @test - */ + #[Test] public function removeHmacDataRemoveHmacs(): void { $formDefinitionConversionService = new FormDefinitionConversionService(); diff --git a/typo3/sysext/form/Tests/Unit/Domain/Configuration/FormDefinitionValidationServiceTest.php b/typo3/sysext/form/Tests/Unit/Domain/Configuration/FormDefinitionValidationServiceTest.php index 3554fa39e7d5ccb4f6c06af61bf1d03bd1f3074e..00d5cb672dc660761403d816e9ad0830f15e7027 100644 --- a/typo3/sysext/form/Tests/Unit/Domain/Configuration/FormDefinitionValidationServiceTest.php +++ b/typo3/sysext/form/Tests/Unit/Domain/Configuration/FormDefinitionValidationServiceTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Form\Tests\Unit\Domain\Configuration; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Form\Domain\Configuration\ConfigurationService; use TYPO3\CMS\Form\Domain\Configuration\Exception\PropertyException; @@ -38,9 +40,7 @@ final class FormDefinitionValidationServiceTest extends UnitTestCase parent::tearDown(); } - /** - * @test - */ + #[Test] public function validateAllFormElementPropertyValuesByHmacThrowsExceptionIfHmacIsInvalid(): void { $this->expectException(PropertyException::class); @@ -66,9 +66,7 @@ final class FormDefinitionValidationServiceTest extends UnitTestCase $typeConverter->_call('validateAllFormElementPropertyValuesByHmac', $input, $sessionToken, $validationDto); } - /** - * @test - */ + #[Test] public function validateAllFormElementPropertyValuesByHmacThrowsExceptionIfHmacDoesNotExists(): void { $this->expectException(PropertyException::class); @@ -90,9 +88,7 @@ final class FormDefinitionValidationServiceTest extends UnitTestCase $typeConverter->_call('validateAllFormElementPropertyValuesByHmac', $input, $sessionToken, $validationDto); } - /** - * @test - */ + #[Test] public function validateAllFormElementPropertyValuesByHmacThrowsNoExceptionIfHmacIsValid(): void { $typeConverter = $this->getAccessibleMock(FormDefinitionValidationService::class, null, [], '', false); @@ -126,9 +122,7 @@ final class FormDefinitionValidationServiceTest extends UnitTestCase self::assertFalse($failed); } - /** - * @test - */ + #[Test] public function validateAllPropertyCollectionElementValuesByHmacThrowsExceptionIfHmacIsInvalid(): void { $this->expectException(PropertyException::class); @@ -166,9 +160,7 @@ final class FormDefinitionValidationServiceTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function validateAllPropertyCollectionElementValuesByHmacThrowsExceptionIfHmacDoesNotExists(): void { $this->expectException(PropertyException::class); @@ -202,9 +194,7 @@ final class FormDefinitionValidationServiceTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function validateAllPropertyCollectionElementValuesByHmacThrowsNoExceptionIfHmacIsValid(): void { $typeConverter = $this->getAccessibleMock(FormDefinitionValidationService::class, null, [], '', false); @@ -382,10 +372,8 @@ final class FormDefinitionValidationServiceTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider validateAllPropertyValuesFromCreatableFormElementDataProvider - */ + #[DataProvider('validateAllPropertyValuesFromCreatableFormElementDataProvider')] + #[Test] public function validateAllPropertyValuesFromCreatableFormElement( array $mockConfiguration, array $formElement, @@ -560,10 +548,8 @@ final class FormDefinitionValidationServiceTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider validateAllPropertyValuesFromCreatablePropertyCollectionElementDataProvider - */ + #[DataProvider('validateAllPropertyValuesFromCreatablePropertyCollectionElementDataProvider')] + #[Test] public function validateAllPropertyValuesFromCreatablePropertyCollectionElement( array $mockConfiguration, array $formElement, diff --git a/typo3/sysext/form/Tests/Unit/Domain/Factory/ArrayFormFactoryTest.php b/typo3/sysext/form/Tests/Unit/Domain/Factory/ArrayFormFactoryTest.php index f8b8673367aacc93c45cfbcc43f126cb6c7317e8..7b6f0ba768545a16e78b2ae84dd91019bce0c681 100644 --- a/typo3/sysext/form/Tests/Unit/Domain/Factory/ArrayFormFactoryTest.php +++ b/typo3/sysext/form/Tests/Unit/Domain/Factory/ArrayFormFactoryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Form\Tests\Unit\Domain\Factory; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Form\Domain\Exception\IdentifierNotValidException; use TYPO3\CMS\Form\Domain\Factory\ArrayFormFactory; use TYPO3\CMS\Form\Domain\Model\FormElements\Section; @@ -25,9 +26,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ArrayFormFactoryTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function addNestedRenderableThrowsExceptionIfIdentifierIsMissing(): void { $this->expectException(IdentifierNotValidException::class); @@ -39,9 +38,7 @@ final class ArrayFormFactoryTest extends UnitTestCase $arrayFormFactory->_call('addNestedRenderable', [], $section); } - /** - * @test - */ + #[Test] public function addNestedRenderableSkipChildElementRenderingIfCompositeElementIsUnknown(): void { $unknownElement = new UnknownFormElement('test-2', 'test'); diff --git a/typo3/sysext/form/Tests/Unit/Domain/Finishers/AbstractFinisherTest.php b/typo3/sysext/form/Tests/Unit/Domain/Finishers/AbstractFinisherTest.php index f4dc488fccfd0b7751a717cec7fd1059218c223d..03fa36d93633cc803bf31d1ea4f6c9dada9d3c77 100644 --- a/typo3/sysext/form/Tests/Unit/Domain/Finishers/AbstractFinisherTest.php +++ b/typo3/sysext/form/Tests/Unit/Domain/Finishers/AbstractFinisherTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Form\Tests\Unit\Domain\Finishers; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Form\Domain\Finishers\AbstractFinisher; use TYPO3\CMS\Form\Domain\Finishers\Exception\FinisherException; use TYPO3\CMS\Form\Domain\Finishers\FinisherContext; @@ -28,9 +29,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class AbstractFinisherTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function parseOptionReturnsNullIfOptionNameIsTranslation(): void { $mockAbstractFinisher = $this->getAccessibleMockForAbstractClass( @@ -43,9 +42,7 @@ final class AbstractFinisherTest extends UnitTestCase self::assertNull($mockAbstractFinisher->_call('parseOption', 'translation')); } - /** - * @test - */ + #[Test] public function parseOptionReturnsNullIfOptionNameNotExistsWithinOptions(): void { $mockAbstractFinisher = $this->getAccessibleMockForAbstractClass( @@ -60,9 +57,7 @@ final class AbstractFinisherTest extends UnitTestCase self::assertNull($mockAbstractFinisher->_call('parseOption', 'foo')); } - /** - * @test - */ + #[Test] public function parseOptionReturnsNullIfOptionNameNotExistsWithinDefaultOptions(): void { $mockAbstractFinisher = $this->getAccessibleMockForAbstractClass( @@ -77,9 +72,7 @@ final class AbstractFinisherTest extends UnitTestCase self::assertNull($mockAbstractFinisher->_call('parseOption', 'foo')); } - /** - * @test - */ + #[Test] public function parseOptionReturnsBoolOptionValuesAsBool(): void { $mockAbstractFinisher = $this->getAccessibleMockForAbstractClass( @@ -96,9 +89,7 @@ final class AbstractFinisherTest extends UnitTestCase self::assertFalse($mockAbstractFinisher->_call('parseOption', 'foo1')); } - /** - * @test - */ + #[Test] public function parseOptionReturnsDefaultOptionValueIfOptionNameNotExistsWithinOptionsButWithinDefaultOptions(): void { $expected = 'defaultValue'; @@ -139,9 +130,7 @@ final class AbstractFinisherTest extends UnitTestCase self::assertSame($expected, $mockAbstractFinisher->_call('parseOption', 'subject')); } - /** - * @test - */ + #[Test] public function parseOptionReturnsDefaultOptionValueIfOptionValueIsAFormElementReferenceAndTheFormElementValueIsEmpty(): void { $elementIdentifier = 'element-identifier-1'; @@ -183,9 +172,7 @@ final class AbstractFinisherTest extends UnitTestCase self::assertSame($expected, $mockAbstractFinisher->_call('parseOption', 'subject')); } - /** - * @test - */ + #[Test] public function parseOptionResolvesFormElementReferenceFromTranslation(): void { $mockAbstractFinisher = $this->getAccessibleMockForAbstractClass( @@ -228,9 +215,7 @@ final class AbstractFinisherTest extends UnitTestCase self::assertSame($expected, $mockAbstractFinisher->_call('parseOption', 'subject')); } - /** - * @test - */ + #[Test] public function substituteRuntimeReferencesReturnsArrayIfInputIsArray(): void { $mockAbstractFinisher = $this->getAccessibleMockForAbstractClass( @@ -248,9 +233,7 @@ final class AbstractFinisherTest extends UnitTestCase self::assertSame($expected, $mockAbstractFinisher->_call('substituteRuntimeReferences', $input, $formRuntimeMock)); } - /** - * @test - */ + #[Test] public function substituteRuntimeReferencesReturnsStringIfInputIsString(): void { $mockAbstractFinisher = $this->getAccessibleMockForAbstractClass( @@ -268,9 +251,7 @@ final class AbstractFinisherTest extends UnitTestCase self::assertSame($expected, $mockAbstractFinisher->_call('substituteRuntimeReferences', $input, $formRuntimeMock)); } - /** - * @test - */ + #[Test] public function substituteRuntimeReferencesReturnsValueFromFormRuntimeIfInputReferenceAFormElementIdentifierWhoseValueIsAString(): void { $mockAbstractFinisher = $this->getAccessibleMockForAbstractClass( @@ -291,9 +272,7 @@ final class AbstractFinisherTest extends UnitTestCase self::assertSame($expected, $mockAbstractFinisher->_call('substituteRuntimeReferences', $input, $formRuntimeMock)); } - /** - * @test - */ + #[Test] public function substituteRuntimeReferencesReturnsValueFromFormRuntimeIfInputReferenceMultipleFormElementIdentifierWhoseValueIsAString(): void { $mockAbstractFinisher = $this->getAccessibleMockForAbstractClass( @@ -324,9 +303,7 @@ final class AbstractFinisherTest extends UnitTestCase self::assertSame($expected, $mockAbstractFinisher->_call('substituteRuntimeReferences', $input, $formRuntimeMock)); } - /** - * @test - */ + #[Test] public function substituteRuntimeReferencesReturnsValueFromFormRuntimeIfInputReferenceAFormElementIdentifierWhoseValueIsAnArray(): void { $mockAbstractFinisher = $this->getAccessibleMockForAbstractClass( @@ -347,9 +324,7 @@ final class AbstractFinisherTest extends UnitTestCase self::assertSame($expected, $mockAbstractFinisher->_call('substituteRuntimeReferences', $input, $formRuntimeMock)); } - /** - * @test - */ + #[Test] public function substituteRuntimeReferencesReturnsValueFromFormRuntimeIfInputIsArrayAndSomeItemsReferenceAFormElementIdentifierWhoseValueIsAnArray(): void { $mockAbstractFinisher = $this->getAccessibleMockForAbstractClass( @@ -396,9 +371,7 @@ final class AbstractFinisherTest extends UnitTestCase self::assertSame($expected, $mockAbstractFinisher->_call('substituteRuntimeReferences', $input, $formRuntimeMock)); } - /** - * @test - */ + #[Test] public function substituteRuntimeReferencesReturnsNoReplacedValueIfInputReferenceANonExistingFormElement(): void { $mockAbstractFinisher = $this->getAccessibleMockForAbstractClass( @@ -423,9 +396,7 @@ final class AbstractFinisherTest extends UnitTestCase self::assertSame($expected, $mockAbstractFinisher->_call('substituteRuntimeReferences', $input, $formRuntimeMock)); } - /** - * @test - */ + #[Test] public function substituteRuntimeReferencesReturnsTimestampIfInputIsATimestampRequestTrigger(): void { $mockAbstractFinisher = $this->getAccessibleMockForAbstractClass( @@ -446,9 +417,7 @@ final class AbstractFinisherTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function substituteRuntimeReferencesReturnsResolvesElementIdentifiersInArrayKeys(): void { $mockAbstractFinisher = $this->getAccessibleMockForAbstractClass( @@ -489,9 +458,7 @@ final class AbstractFinisherTest extends UnitTestCase self::assertSame($expected, $mockAbstractFinisher->_call('substituteRuntimeReferences', $input, $formRuntimeMock)); } - /** - * @test - */ + #[Test] public function substituteRuntimeReferencesConvertsObjectsToString(): void { $date = new \DateTime('@1574415600'); @@ -527,9 +494,7 @@ final class AbstractFinisherTest extends UnitTestCase self::assertSame('When: 2019-11-22', $result); } - /** - * @test - */ + #[Test] public function substituteRuntimeReferencesThrowsExceptionOnObjectWithoutStringableElement(): void { $formRuntimeMock = $this->createMock(FormRuntime::class); @@ -556,9 +521,7 @@ final class AbstractFinisherTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function substituteRuntimeReferencesThrowsExceptionOnMultipleVariablesResolvedAsArray(): void { $mockAbstractFinisher = $this->getAccessibleMockForAbstractClass( diff --git a/typo3/sysext/form/Tests/Unit/Domain/Finishers/ClosureFinisherTest.php b/typo3/sysext/form/Tests/Unit/Domain/Finishers/ClosureFinisherTest.php index 12cf552d74a4da55861f38f60f9ee3240d46cf65..2a1d935a0f7d8ad01d7607714e41ad77dfd423b4 100644 --- a/typo3/sysext/form/Tests/Unit/Domain/Finishers/ClosureFinisherTest.php +++ b/typo3/sysext/form/Tests/Unit/Domain/Finishers/ClosureFinisherTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Form\Tests\Unit\Domain\Finishers; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Form\Domain\Finishers\ClosureFinisher; use TYPO3\CMS\Form\Domain\Finishers\FinisherContext; use TYPO3\CMS\Form\Domain\Runtime\FormRuntime; @@ -24,9 +25,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ClosureFinisherTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function closureOptionForFinisherCanBeSetAndIsFunctional(): void { $closure = static function (FinisherContext $finisherContext) { diff --git a/typo3/sysext/form/Tests/Unit/Domain/Finishers/RedirectFinisherTest.php b/typo3/sysext/form/Tests/Unit/Domain/Finishers/RedirectFinisherTest.php index 5894e283d7a04efbe40dbd9cc7435e72b2f2679f..ecda73cfc2917bee6fd9880d2eb0d2f643a7ee02 100644 --- a/typo3/sysext/form/Tests/Unit/Domain/Finishers/RedirectFinisherTest.php +++ b/typo3/sysext/form/Tests/Unit/Domain/Finishers/RedirectFinisherTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Form\Tests\Unit\Domain\Finishers; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Http\PropagateResponseException; use TYPO3\CMS\Core\Http\Response; use TYPO3\CMS\Core\Http\ServerRequest; @@ -36,10 +38,10 @@ final class RedirectFinisherTest extends UnitTestCase protected bool $resetSingletonInstances = true; /** - * @test - * @dataProvider pageUidOptionForFinisherAcceptsVariousPageRepresentationsDataProvider * @param string|int|null $pageUid */ + #[DataProvider('pageUidOptionForFinisherAcceptsVariousPageRepresentationsDataProvider')] + #[Test] public function pageUidOptionForFinisherAcceptsVariousPageRepresentations($pageUid, int $expectedPage): void { $uriPrefix = 'https://site.test/?id='; diff --git a/typo3/sysext/form/Tests/Unit/Domain/Finishers/SaveToDatabaseFinisherTest.php b/typo3/sysext/form/Tests/Unit/Domain/Finishers/SaveToDatabaseFinisherTest.php index db6429a3c3b7385874865c8ee283652ce1909a16..40590d072a373ac70c8af862fd971895fc75118d 100644 --- a/typo3/sysext/form/Tests/Unit/Domain/Finishers/SaveToDatabaseFinisherTest.php +++ b/typo3/sysext/form/Tests/Unit/Domain/Finishers/SaveToDatabaseFinisherTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Form\Tests\Unit\Domain\Finishers; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Form\Domain\Finishers\Exception\FinisherException; use TYPO3\CMS\Form\Domain\Finishers\FinisherContext; use TYPO3\CMS\Form\Domain\Finishers\SaveToDatabaseFinisher; @@ -25,9 +27,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class SaveToDatabaseFinisherTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function throwExceptionOnInconsistentConfigurationThrowsExceptionOnInconsistentConfiguration(): void { $this->expectException(FinisherException::class); @@ -40,9 +40,7 @@ final class SaveToDatabaseFinisherTest extends UnitTestCase $mockSaveToDatabaseFinisher->_call('throwExceptionOnInconsistentConfiguration'); } - /** - * @test - */ + #[Test] public function prepareDataConvertsArrayValuesToCsv(): void { $elementsConfiguration = [ @@ -64,9 +62,7 @@ final class SaveToDatabaseFinisherTest extends UnitTestCase self::assertSame('one,two', $databaseData['bar']); } - /** - * @test - */ + #[Test] public function executeInternalProcessesSingleTable(): void { $saveToDatabaseFinisher = $this->getMockBuilder(SaveToDatabaseFinisher::class) @@ -115,10 +111,10 @@ final class SaveToDatabaseFinisherTest extends UnitTestCase } /** - * @test - * @dataProvider skipIfValueIsEmptyDataProvider * @param mixed $value */ + #[DataProvider('skipIfValueIsEmptyDataProvider')] + #[Test] public function skipIfValueIsEmptyDetectsEmptyValues($value, bool $expectedEmpty): void { $elementsConfiguration = [ @@ -138,9 +134,7 @@ final class SaveToDatabaseFinisherTest extends UnitTestCase self::assertSame($expectedEmpty, empty($databaseData)); } - /** - * @test - */ + #[Test] public function executeInternalProcessesMultipleTables(): void { $saveToDatabaseFinisher = $this->getMockBuilder(SaveToDatabaseFinisher::class)->onlyMethods(['process'])->getMock(); @@ -162,9 +156,7 @@ final class SaveToDatabaseFinisherTest extends UnitTestCase $saveToDatabaseFinisher->execute($this->createMock(FinisherContext::class)); } - /** - * @test - */ + #[Test] public function prepareDataConvertsDateTimeToUnixTimestamp(): void { $elementsConfiguration = [ @@ -184,9 +176,7 @@ final class SaveToDatabaseFinisherTest extends UnitTestCase self::assertMatchesRegularExpression($expected, $databaseData['date']); } - /** - * @test - */ + #[Test] public function prepareDataConvertsDateTimeToFormat(): void { $elementsConfiguration = [ diff --git a/typo3/sysext/form/Tests/Unit/Domain/FormElements/AbstractFormElementTest.php b/typo3/sysext/form/Tests/Unit/Domain/FormElements/AbstractFormElementTest.php index 8527340a444dc888476a34d07f34d3030d26c725..60afefc9df6ebaaaa1d154de0a5c1298747e756b 100644 --- a/typo3/sysext/form/Tests/Unit/Domain/FormElements/AbstractFormElementTest.php +++ b/typo3/sysext/form/Tests/Unit/Domain/FormElements/AbstractFormElementTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Form\Tests\Unit\Domain\FormElements; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Form\Domain\Exception\IdentifierNotValidException; use TYPO3\CMS\Form\Domain\Model\FormDefinition; @@ -26,9 +27,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class AbstractFormElementTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function newInstanceHasNoProperties(): void { $subject = new TestingFormElement(); @@ -36,9 +35,7 @@ final class AbstractFormElementTest extends UnitTestCase self::assertCount(0, $subject->getProperties()); } - /** - * @test - */ + #[Test] public function setSimpleProperties(): void { $subject = new TestingFormElement(); @@ -54,9 +51,7 @@ final class AbstractFormElementTest extends UnitTestCase self::assertEquals('qax', $properties['buz']); } - /** - * @test - */ + #[Test] public function overrideProperties(): void { $subject = new TestingFormElement(); @@ -70,9 +65,7 @@ final class AbstractFormElementTest extends UnitTestCase self::assertEquals('buz', $properties['foo']); } - /** - * @test - */ + #[Test] public function setArrayProperties(): void { $subject = new TestingFormElement(); @@ -90,9 +83,7 @@ final class AbstractFormElementTest extends UnitTestCase self::assertEquals('baz', $properties['foo']['bar']); } - /** - * @test - */ + #[Test] public function setPropertyUnsetIfValueIsNull(): void { $subject = new TestingFormElement(); @@ -105,9 +96,7 @@ final class AbstractFormElementTest extends UnitTestCase self::assertSame($expected, $subject->getProperties()); } - /** - * @test - */ + #[Test] public function setPropertyUnsetIfValueIsArrayWithSomeNullVales(): void { $subject = new TestingFormElement(); @@ -127,9 +116,7 @@ final class AbstractFormElementTest extends UnitTestCase self::assertSame($expected, $subject->getProperties()); } - /** - * @test - */ + #[Test] public function constructThrowsExceptionWhenIdentifierIsEmpty(): void { $this->expectException(IdentifierNotValidException::class); @@ -139,9 +126,7 @@ final class AbstractFormElementTest extends UnitTestCase new GenericFormElement('', 'a_type'); } - /** - * @test - */ + #[Test] public function constructMustNotThrowExceptionWhenIdentifierIsNonEmptyString(): void { $formElement = new TestingFormElement(); @@ -149,9 +134,7 @@ final class AbstractFormElementTest extends UnitTestCase self::assertInstanceOf(TestingFormElement::class, $formElement); } - /** - * @test - */ + #[Test] public function initializeFormElementExpectedCallInitializeFormObjectHooks(): void { $formElement = new TestingFormElement(); @@ -172,9 +155,7 @@ final class AbstractFormElementTest extends UnitTestCase $formElement->initializeFormElement(); } - /** - * @test - */ + #[Test] public function getUniqueIdentifierExpectedUnique(): void { $formDefinition1 = $this->createMock(FormDefinition::class); @@ -199,9 +180,7 @@ final class AbstractFormElementTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function setDefaultValueSetStringValueIfKeyDoesNotExists(): void { $formDefinitionMock = $this->getAccessibleMock(FormDefinition::class, null, [], '', false); @@ -216,9 +195,7 @@ final class AbstractFormElementTest extends UnitTestCase self::assertSame($expected, $formElement->getDefaultValue()); } - /** - * @test - */ + #[Test] public function setDefaultValueSetArrayValueIfKeyDoesNotExists(): void { $formDefinitionMock = $this->getAccessibleMock(FormDefinition::class, null, [], '', false); @@ -233,9 +210,7 @@ final class AbstractFormElementTest extends UnitTestCase self::assertSame($expected, $formElement->getDefaultValue()); } - /** - * @test - */ + #[Test] public function setDefaultValueUnsetIfValueIsArrayWithSomeNullVales(): void { $formDefinitionMock = $this->getAccessibleMock(FormDefinition::class, null, [], '', false); @@ -273,9 +248,7 @@ final class AbstractFormElementTest extends UnitTestCase self::assertSame($expected, $formElement->getDefaultValue()); } - /** - * @test - */ + #[Test] public function setDefaultValueAddValueIfValueIsArray(): void { $formDefinitionMock = $this->getAccessibleMock(FormDefinition::class, null, [], '', false); diff --git a/typo3/sysext/form/Tests/Unit/Domain/FormElements/AbstractSectionTest.php b/typo3/sysext/form/Tests/Unit/Domain/FormElements/AbstractSectionTest.php index 6d4618c66a200779a873513bd9b2c09212e5c0be..1bfaed1c3cff6f3b98e0d793d9030f31718452c3 100644 --- a/typo3/sysext/form/Tests/Unit/Domain/FormElements/AbstractSectionTest.php +++ b/typo3/sysext/form/Tests/Unit/Domain/FormElements/AbstractSectionTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Form\Tests\Unit\Domain\FormElements; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Form\Domain\Exception\IdentifierNotValidException; use TYPO3\CMS\Form\Domain\Exception\TypeDefinitionNotFoundException; @@ -33,9 +34,7 @@ final class AbstractSectionTest extends UnitTestCase { protected bool $resetSingletonInstances = true; - /** - * @test - */ + #[Test] public function constructThrowsExceptionWhenIdentifierIsEmpty(): void { $this->expectException(IdentifierNotValidException::class); @@ -45,18 +44,14 @@ final class AbstractSectionTest extends UnitTestCase new Section('', 'foobar'); } - /** - * @test - */ + #[Test] public function constructMustNotThrowExceptionWhenIdentifierIsNonEmptyString(): void { $section = new Section('foobar', 'foobar'); self::assertInstanceOf(AbstractSection::class, $section); } - /** - * @test - */ + #[Test] public function createElementThrowsExceptionIfTypeDefinitionNotFoundAndSkipUnknownElementsIsFalse(): void { $rootForm = $this->getMockBuilder(FormDefinition::class) @@ -93,9 +88,7 @@ final class AbstractSectionTest extends UnitTestCase $mockAbstractSection->_call('createElement', '', ''); } - /** - * @test - */ + #[Test] public function createElementReturnsUnknownElementsIfTypeDefinitionIsNotFoundAndSkipUnknownElementsIsTrue(): void { $rootForm = $this->getMockBuilder(FormDefinition::class) @@ -118,9 +111,7 @@ final class AbstractSectionTest extends UnitTestCase self::assertSame('bar', $result->getType()); } - /** - * @test - */ + #[Test] public function createElementThrowsExceptionIfTypeDefinitionIsNotSet(): void { $rootForm = $this->getMockBuilder(FormDefinition::class) @@ -141,9 +132,7 @@ final class AbstractSectionTest extends UnitTestCase $section->createElement('id', 'foobar'); } - /** - * @test - */ + #[Test] public function createElementThrowsExceptionIfTypeDefinitionNotInstanceOfFormElementInterface(): void { $this->resetSingletonInstances = true; @@ -172,9 +161,7 @@ final class AbstractSectionTest extends UnitTestCase $section->createElement('id', 'foobar'); } - /** - * @test - */ + #[Test] public function createElementExpectedToAddAndInitializeElement(): void { $implementationMock = $this->createPartialMock(TestingFormElement::class, ['setOptions', 'initializeFormElement']); diff --git a/typo3/sysext/form/Tests/Unit/Domain/FormElements/SectionTest.php b/typo3/sysext/form/Tests/Unit/Domain/FormElements/SectionTest.php index 6a2316302ad6cdd54df3b2900c49c308b7d63eb2..8706338a166eee101c067ef341dce9d28829c332 100644 --- a/typo3/sysext/form/Tests/Unit/Domain/FormElements/SectionTest.php +++ b/typo3/sysext/form/Tests/Unit/Domain/FormElements/SectionTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Form\Tests\Unit\Domain\FormElements; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Form\Domain\Model\FormElements\Section; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -36,27 +37,20 @@ final class SectionTest extends UnitTestCase */ protected $sectionInstance; - /** - * @before - */ public function setUp(): void { parent::setUp(); $this->sectionInstance = new Section(self::$IDENTIFIER, self::$TYPE); } - /** - * @test - */ + #[Test] public function newInstanceHasNoProperties(): void { self::assertNotNull($this->sectionInstance); self::assertCount(0, $this->sectionInstance->getProperties()); } - /** - * @test - */ + #[Test] public function setSimpleProperties(): void { $this->sectionInstance->setProperty('foo', 'bar'); @@ -70,9 +64,7 @@ final class SectionTest extends UnitTestCase self::assertEquals('qax', $properties['buz']); } - /** - * @test - */ + #[Test] public function overrideProperties(): void { $this->sectionInstance->setProperty('foo', 'bar'); @@ -84,9 +76,7 @@ final class SectionTest extends UnitTestCase self::assertEquals('buz', $properties['foo']); } - /** - * @test - */ + #[Test] public function setArrayProperties(): void { $this->sectionInstance->setProperty('foo', ['bar' => 'baz', 'bla' => 'blubb']); @@ -102,9 +92,7 @@ final class SectionTest extends UnitTestCase self::assertEquals('baz', $properties['foo']['bar']); } - /** - * @test - */ + #[Test] public function setPropertyUnsetIfValueIsNull(): void { $expected = ['foo-1' => ['bar-1' => 'foo-2']]; @@ -115,9 +103,7 @@ final class SectionTest extends UnitTestCase self::assertSame($expected, $this->sectionInstance->getProperties()); } - /** - * @test - */ + #[Test] public function setPropertyUnsetIfValueIsArrayWithSomeNullVales(): void { $expected = [ @@ -135,9 +121,7 @@ final class SectionTest extends UnitTestCase self::assertSame($expected, $this->sectionInstance->getProperties()); } - /** - * @test - */ + #[Test] public function setRenderingOptionSetStringValueIfKeyDoesNotExists(): void { $expected = ['foo' => 'bar']; @@ -146,9 +130,7 @@ final class SectionTest extends UnitTestCase self::assertSame($expected, $this->sectionInstance->getRenderingOptions()); } - /** - * @test - */ + #[Test] public function setRenderingOptionSetArrayValueIfKeyDoesNotExists(): void { $expected = ['foo-1' => ['bar' => 'foo-2']]; @@ -157,9 +139,7 @@ final class SectionTest extends UnitTestCase self::assertSame($expected, $this->sectionInstance->getRenderingOptions()); } - /** - * @test - */ + #[Test] public function setRenderingOptionUnsetIfValueIsNull(): void { $expected = ['foo-1' => ['bar-1' => 'foo-2']]; @@ -170,9 +150,7 @@ final class SectionTest extends UnitTestCase self::assertSame($expected, $this->sectionInstance->getRenderingOptions()); } - /** - * @test - */ + #[Test] public function setRenderingOptionUnsetIfValueIsArrayWithSomeNullVales(): void { $expected = [ @@ -190,9 +168,7 @@ final class SectionTest extends UnitTestCase self::assertSame($expected, $this->sectionInstance->getRenderingOptions()); } - /** - * @test - */ + #[Test] public function setRenderingOptionAddValueIfValueIsArray(): void { $expected = [ diff --git a/typo3/sysext/form/Tests/Unit/Domain/Renderable/AbstractRenderableTest.php b/typo3/sysext/form/Tests/Unit/Domain/Renderable/AbstractRenderableTest.php index b2081bd3ea60cac97f3ee46533c4bf860ee72ecd..656a4efe42f161693b90d562998045e2cfa6ab2f 100644 --- a/typo3/sysext/form/Tests/Unit/Domain/Renderable/AbstractRenderableTest.php +++ b/typo3/sysext/form/Tests/Unit/Domain/Renderable/AbstractRenderableTest.php @@ -17,14 +17,13 @@ declare(strict_types=1); namespace TYPO3\CMS\Form\Tests\Unit\Domain\Renderable; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Form\Tests\Unit\Domain\Renderable\Fixtures\TestingRenderable; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class AbstractRenderableTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function setRenderingOptionSetStringValueIfKeyDoesNotExists(): void { $renderable = new TestingRenderable(); @@ -35,9 +34,7 @@ final class AbstractRenderableTest extends UnitTestCase self::assertSame($expected, $renderable->getRenderingOptions()); } - /** - * @test - */ + #[Test] public function setRenderingOptionSetArrayValueIfKeyDoesNotExists(): void { $renderable = new TestingRenderable(); @@ -48,9 +45,7 @@ final class AbstractRenderableTest extends UnitTestCase self::assertSame($expected, $renderable->getRenderingOptions()); } - /** - * @test - */ + #[Test] public function setRenderingOptionUnsetIfValueIsNull(): void { $renderable = new TestingRenderable(); @@ -63,9 +58,7 @@ final class AbstractRenderableTest extends UnitTestCase self::assertSame($expected, $renderable->getRenderingOptions()); } - /** - * @test - */ + #[Test] public function setRenderingOptionUnsetIfValueIsArrayWithSomeNullVales(): void { $renderable = new TestingRenderable(); @@ -85,9 +78,7 @@ final class AbstractRenderableTest extends UnitTestCase self::assertSame($expected, $renderable->getRenderingOptions()); } - /** - * @test - */ + #[Test] public function setRenderingOptionAddValueIfValueIsArray(): void { $renderable = new TestingRenderable(); diff --git a/typo3/sysext/form/Tests/Unit/Domain/Renderable/RenderableVariantTest.php b/typo3/sysext/form/Tests/Unit/Domain/Renderable/RenderableVariantTest.php index d65b26d23b0c9bd9c45b09ccddebbd22ef726419..4c045a6dd2855c37e9454a31240f03d7e683f2e4 100644 --- a/typo3/sysext/form/Tests/Unit/Domain/Renderable/RenderableVariantTest.php +++ b/typo3/sysext/form/Tests/Unit/Domain/Renderable/RenderableVariantTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Form\Tests\Unit\Domain\Renderable; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\ExpressionLanguage\Resolver; use TYPO3\CMS\Form\Domain\Model\FormElements\GenericFormElement; use TYPO3\CMS\Form\Domain\Model\Renderable\RenderableVariant; @@ -26,9 +27,7 @@ final class RenderableVariantTest extends UnitTestCase { protected bool $resetSingletonInstances = true; - /** - * @test - */ + #[Test] public function formVariantOverridesArrayValues(): void { $formElementIdentifier = 'form-element-identifier'; @@ -74,9 +73,7 @@ final class RenderableVariantTest extends UnitTestCase self::assertEquals($expected, $mockFormElement->_get('properties')); } - /** - * @test - */ + #[Test] public function renderableIsPassedToConditionEvaluation(): void { $mockFormElement = $this->getAccessibleMock(GenericFormElement::class, null, [], '', false); diff --git a/typo3/sysext/form/Tests/Unit/EventListener/DataStructureIdentifierListenerTest.php b/typo3/sysext/form/Tests/Unit/EventListener/DataStructureIdentifierListenerTest.php index 489d0e49c2d4a5bfd34fa407cf3702f2ef23ff51..d78283bcfe926e054da83378775e9b57fedff052 100644 --- a/typo3/sysext/form/Tests/Unit/EventListener/DataStructureIdentifierListenerTest.php +++ b/typo3/sysext/form/Tests/Unit/EventListener/DataStructureIdentifierListenerTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Form\Tests\Unit\EventListener; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Cache\CacheManager; use TYPO3\CMS\Core\Cache\Frontend\NullFrontend; use TYPO3\CMS\Core\Configuration\Event\AfterFlexFormDataStructureIdentifierInitializedEvent; @@ -40,9 +42,7 @@ final class DataStructureIdentifierListenerTest extends UnitTestCase $GLOBALS['LANG'] = $this->createMock(LanguageService::class); } - /** - * @test - */ + #[Test] public function modifyIdentifiersReturnsIdentifierForNotMatchingScenario(): void { $givenIdentifier = ['aKey' => 'aValue']; @@ -60,9 +60,7 @@ final class DataStructureIdentifierListenerTest extends UnitTestCase self::assertSame($givenIdentifier, $event->getIdentifier()); } - /** - * @test - */ + #[Test] public function modifyIdentifiersAddDefaultValuesForNewRecord(): void { $event = new AfterFlexFormDataStructureIdentifierInitializedEvent( @@ -81,9 +79,7 @@ final class DataStructureIdentifierListenerTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function modifyIdentifiersAddsGivenPersistenceIdentifier(): void { $row = [ @@ -124,9 +120,7 @@ final class DataStructureIdentifierListenerTest extends UnitTestCase self::assertEquals($expected, $event->getIdentifier()); } - /** - * @test - */ + #[Test] public function modifyIdentifiersAddsOverrideFinisherValue(): void { $row = [ @@ -163,9 +157,7 @@ final class DataStructureIdentifierListenerTest extends UnitTestCase self::assertEquals($expected, $event->getIdentifier()); } - /** - * @test - */ + #[Test] public function modifyDataStructureReturnsDataStructureUnchanged(): void { $dataStructure = ['foo' => 'bar']; @@ -181,10 +173,8 @@ final class DataStructureIdentifierListenerTest extends UnitTestCase self::assertEquals($expected, $event->getDataStructure()); } - /** - * @test - * @dataProvider modifyDataStructureDataProvider - */ + #[DataProvider('modifyDataStructureDataProvider')] + #[Test] public function modifyDataStructureAddsExistingFormItems(array $formDefinition, array $expectedItem): void { $formPersistenceManagerMock = $this->createMock(FormPersistenceManagerInterface::class); diff --git a/typo3/sysext/form/Tests/Unit/Mvc/Configuration/ConfigurationManagerTest.php b/typo3/sysext/form/Tests/Unit/Mvc/Configuration/ConfigurationManagerTest.php index 7cf0872fdec951759f62276db142f819b2dd5ba2..9e4ddc069a07dfc80bf296ec8b4cde9c0441ceb0 100644 --- a/typo3/sysext/form/Tests/Unit/Mvc/Configuration/ConfigurationManagerTest.php +++ b/typo3/sysext/form/Tests/Unit/Mvc/Configuration/ConfigurationManagerTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Form\Tests\Unit\Mvc\Configuration; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Core\SystemEnvironmentBuilder; use TYPO3\CMS\Core\Http\ServerRequest; use TYPO3\CMS\Core\Utility\GeneralUtility; @@ -36,9 +37,7 @@ final class ConfigurationManagerTest extends UnitTestCase parent::tearDown(); } - /** - * @test - */ + #[Test] public function getConfigurationDoesNotEvaluateTypoScriptLookalikeInstructionsFromYamlSettingsInFrontendContext(): void { $yamlSettings = [ diff --git a/typo3/sysext/form/Tests/Unit/Mvc/Configuration/InheritancesResolverServiceTest.php b/typo3/sysext/form/Tests/Unit/Mvc/Configuration/InheritancesResolverServiceTest.php index ed27e23b4147ee7a68a002a77b5d221230501824..020e0cd462cef57bdfc9d0e45114b55a78a7c0cf 100644 --- a/typo3/sysext/form/Tests/Unit/Mvc/Configuration/InheritancesResolverServiceTest.php +++ b/typo3/sysext/form/Tests/Unit/Mvc/Configuration/InheritancesResolverServiceTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Form\Tests\Unit\Mvc\Configuration; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Form\Mvc\Configuration\Exception\CycleInheritancesException; use TYPO3\CMS\Form\Mvc\Configuration\InheritancesResolverService; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -34,10 +35,7 @@ final class InheritancesResolverServiceTest extends UnitTestCase $this->subject = new InheritancesResolverService(); } - /** - * @test - * Test for the explicit example in service class comment - */ + #[Test] public function getDocExampleInheritance(): void { $input = [ @@ -74,9 +72,7 @@ final class InheritancesResolverServiceTest extends UnitTestCase self::assertSame($expected, $this->subject->reset()->setReferenceConfiguration($input)->getResolvedConfiguration()); } - /** - * @test - */ + #[Test] public function getMergedConfigurationSimpleInheritance(): void { $input = [ @@ -115,9 +111,7 @@ final class InheritancesResolverServiceTest extends UnitTestCase self::assertSame($expected, $this->subject->reset()->setReferenceConfiguration($input)->getResolvedConfiguration()); } - /** - * @test - */ + #[Test] public function getMergedConfigurationSimpleInheritanceOverrideValue(): void { $input = [ @@ -148,9 +142,7 @@ final class InheritancesResolverServiceTest extends UnitTestCase self::assertSame($expected, $this->subject->reset()->setReferenceConfiguration($input)->getResolvedConfiguration()); } - /** - * @test - */ + #[Test] public function getMergedConfigurationSimpleInheritanceRemoveValue(): void { $input = [ @@ -213,9 +205,7 @@ final class InheritancesResolverServiceTest extends UnitTestCase self::assertSame($expected, $this->subject->reset()->setReferenceConfiguration($input)->getResolvedConfiguration()); } - /** - * @test - */ + #[Test] public function getMergedConfigurationSimpleMixin(): void { $input = [ @@ -257,9 +247,7 @@ final class InheritancesResolverServiceTest extends UnitTestCase self::assertSame($expected, $this->subject->reset()->setReferenceConfiguration($input)->getResolvedConfiguration()); } - /** - * @test - */ + #[Test] public function getMergedConfigurationAdvancedMixin(): void { $input = [ @@ -350,9 +338,7 @@ final class InheritancesResolverServiceTest extends UnitTestCase self::assertSame($expected, $this->subject->reset()->setReferenceConfiguration($input)->getResolvedConfiguration()); } - /** - * @test - */ + #[Test] public function getMergedConfigurationResolvesInheritancesWithAndWithoutVendorNamespacePrefix(): void { $input = [ @@ -439,9 +425,7 @@ final class InheritancesResolverServiceTest extends UnitTestCase self::assertSame($expected, $this->subject->reset()->setReferenceConfiguration($input)->getResolvedConfiguration()); } - /** - * @test - */ + #[Test] public function getResolvedConfigurationThrowsExceptionIfCycleDependenciesOnSameLevelIsFound(): void { $input = [ @@ -463,9 +447,7 @@ final class InheritancesResolverServiceTest extends UnitTestCase $this->subject->reset()->setReferenceConfiguration($input)->getResolvedConfiguration(); } - /** - * @test - */ + #[Test] public function getResolvedConfigurationThrowsExceptionIfCycleDependenciesOnSameLevelWithGapIsFound(): void { $input = [ @@ -497,9 +479,7 @@ final class InheritancesResolverServiceTest extends UnitTestCase $this->subject->reset()->setReferenceConfiguration($input)->getResolvedConfiguration(); } - /** - * @test - */ + #[Test] public function getResolvedConfigurationThrowsExceptionIfCycleDependenciesOnHigherLevelIsFound(): void { $input = [ diff --git a/typo3/sysext/form/Tests/Unit/Mvc/Configuration/TypoScriptServiceTest.php b/typo3/sysext/form/Tests/Unit/Mvc/Configuration/TypoScriptServiceTest.php index dda3e13155553fd86257e0783229725a65283b96..32fe8dad801962d12ec95593f104ced81653153c 100644 --- a/typo3/sysext/form/Tests/Unit/Mvc/Configuration/TypoScriptServiceTest.php +++ b/typo3/sysext/form/Tests/Unit/Mvc/Configuration/TypoScriptServiceTest.php @@ -17,15 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Form\Tests\Unit\Mvc\Configuration; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Form\Mvc\Configuration\TypoScriptService; use TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class TypoScriptServiceTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function resolveTypoScriptConfigurationReturnsResolvedConfiguration(): void { $mockTypoScriptService = $this->getAccessibleMock(TypoScriptService::class, [ diff --git a/typo3/sysext/form/Tests/Unit/Mvc/Configuration/YamlSourceTest.php b/typo3/sysext/form/Tests/Unit/Mvc/Configuration/YamlSourceTest.php index e936d04132cab4857a2ce0c8fa5e50a1ec040aba..eccbc535d5d257c7c16339ad21a35deca163403a 100644 --- a/typo3/sysext/form/Tests/Unit/Mvc/Configuration/YamlSourceTest.php +++ b/typo3/sysext/form/Tests/Unit/Mvc/Configuration/YamlSourceTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Form\Tests\Unit\Mvc\Configuration; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Form\Mvc\Configuration\Exception\ParseErrorException; use TYPO3\CMS\Form\Mvc\Configuration\YamlSource; @@ -26,9 +27,7 @@ final class YamlSourceTest extends UnitTestCase { protected bool $resetSingletonInstances = true; - /** - * @test - */ + #[Test] public function loadThrowsExceptionIfFileToLoadNotExists(): void { $this->expectException(ParseErrorException::class); @@ -43,9 +42,7 @@ final class YamlSourceTest extends UnitTestCase $mockYamlSource->_call('load', $input); } - /** - * @test - */ + #[Test] public function loadThrowsExceptionIfFileToLoadIsNotValidYamlUseSymfonyParser(): void { $this->expectException(ParseErrorException::class); @@ -60,9 +57,7 @@ final class YamlSourceTest extends UnitTestCase $mockYamlSource->_call('load', $input); } - /** - * @test - */ + #[Test] public function getHeaderFromFileReturnsHeaderPart(): void { $mockYamlSource = $this->getAccessibleMock(YamlSource::class, null, [], '', false); @@ -76,9 +71,7 @@ final class YamlSourceTest extends UnitTestCase self::assertSame($expected, $mockYamlSource->_call('getHeaderFromFile', $input)); } - /** - * @test - */ + #[Test] public function loadOverruleNonArrayValuesOverArrayValues(): void { $mockYamlSource = $this->getAccessibleMock(YamlSource::class, null, [], '', false); @@ -98,9 +91,7 @@ final class YamlSourceTest extends UnitTestCase self::assertSame($expected, $mockYamlSource->_call('load', $input)); } - /** - * @test - */ + #[Test] public function loadRemovesVendorNamespacePrefixFromConfiguration(): void { $mockYamlSource = $this->getAccessibleMock(YamlSource::class, null, [], '', false); diff --git a/typo3/sysext/form/Tests/Unit/Mvc/Persistence/FormPersistenceManagerTest.php b/typo3/sysext/form/Tests/Unit/Mvc/Persistence/FormPersistenceManagerTest.php index 535b4d707876e1c4d91051320dd2e6f38aea0aad..eff0da56f6c4c5f58a257832a7796e6ec3413d40 100644 --- a/typo3/sysext/form/Tests/Unit/Mvc/Persistence/FormPersistenceManagerTest.php +++ b/typo3/sysext/form/Tests/Unit/Mvc/Persistence/FormPersistenceManagerTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Form\Tests\Unit\Mvc\Persistence; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Cache\Frontend\VariableFrontend; use TYPO3\CMS\Core\Resource\File; use TYPO3\CMS\Core\Resource\Folder; @@ -32,9 +34,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class FormPersistenceManagerTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function loadThrowsExceptionIfPersistenceIdentifierHasNoYamlExtension(): void { $this->expectException(PersistenceManagerException::class); @@ -57,9 +57,7 @@ final class FormPersistenceManagerTest extends UnitTestCase $mockFormPersistenceManager->_call('load', $input); } - /** - * @test - */ + #[Test] public function loadThrowsExceptionIfPersistenceIdentifierIsAExtensionLocationWhichIsNotAllowed(): void { $this->expectException(PersistenceManagerException::class); @@ -88,9 +86,7 @@ final class FormPersistenceManagerTest extends UnitTestCase $mockFormPersistenceManager->_call('load', $input); } - /** - * @test - */ + #[Test] public function saveThrowsExceptionIfPersistenceIdentifierHasNoYamlExtension(): void { $this->expectException(PersistenceManagerException::class); @@ -102,9 +98,7 @@ final class FormPersistenceManagerTest extends UnitTestCase $mockFormPersistenceManager->_call('save', $input, []); } - /** - * @test - */ + #[Test] public function saveThrowsExceptionIfPersistenceIdentifierIsAExtensionLocationAndSaveToExtensionLocationIsNotAllowed(): void { $this->expectException(PersistenceManagerException::class); @@ -122,9 +116,7 @@ final class FormPersistenceManagerTest extends UnitTestCase $mockFormPersistenceManager->_call('save', $input, []); } - /** - * @test - */ + #[Test] public function saveThrowsExceptionIfPersistenceIdentifierIsAExtensionLocationWhichIsNotAllowed(): void { $this->expectException(PersistenceManagerException::class); @@ -154,9 +146,7 @@ final class FormPersistenceManagerTest extends UnitTestCase $mockFormPersistenceManager->_call('save', $input, []); } - /** - * @test - */ + #[Test] public function deleteThrowsExceptionIfPersistenceIdentifierHasNoYamlExtension(): void { $this->expectException(PersistenceManagerException::class); @@ -168,9 +158,7 @@ final class FormPersistenceManagerTest extends UnitTestCase $mockFormPersistenceManager->_call('delete', $input); } - /** - * @test - */ + #[Test] public function deleteThrowsExceptionIfPersistenceIdentifierFileDoesNotExists(): void { $this->expectException(PersistenceManagerException::class); @@ -186,9 +174,7 @@ final class FormPersistenceManagerTest extends UnitTestCase $mockFormPersistenceManager->_call('delete', $input); } - /** - * @test - */ + #[Test] public function deleteThrowsExceptionIfPersistenceIdentifierIsExtensionLocationAndDeleteFromExtensionLocationsIsNotAllowed(): void { $this->expectException(PersistenceManagerException::class); @@ -210,9 +196,7 @@ final class FormPersistenceManagerTest extends UnitTestCase $mockFormPersistenceManager->_call('delete', $input); } - /** - * @test - */ + #[Test] public function deleteThrowsExceptionIfPersistenceIdentifierIsExtensionLocationWhichIsNotAllowed(): void { $this->expectException(PersistenceManagerException::class); @@ -246,9 +230,7 @@ final class FormPersistenceManagerTest extends UnitTestCase $mockFormPersistenceManager->_call('delete', $input); } - /** - * @test - */ + #[Test] public function deleteThrowsExceptionIfPersistenceIdentifierIsStorageLocationAndDeleteFromStorageIsNotAllowed(): void { $this->expectException(PersistenceManagerException::class); @@ -281,9 +263,7 @@ final class FormPersistenceManagerTest extends UnitTestCase $mockFormPersistenceManager->_call('delete', $input); } - /** - * @test - */ + #[Test] public function existsReturnsTrueIfPersistenceIdentifierIsExtensionLocationAndFileExistsAndFileHasYamlExtension(): void { $mockFormPersistenceManager = $this->getAccessibleMock(FormPersistenceManager::class, null, [], '', false); @@ -311,9 +291,7 @@ final class FormPersistenceManagerTest extends UnitTestCase self::assertTrue($mockFormPersistenceManager->_call('exists', $input)); } - /** - * @test - */ + #[Test] public function existsReturnsFalseIfPersistenceIdentifierIsExtensionLocationAndFileExistsAndFileHasNoYamlExtension(): void { $mockFormPersistenceManager = $this->getAccessibleMock(FormPersistenceManager::class, null, [], '', false); @@ -321,9 +299,7 @@ final class FormPersistenceManagerTest extends UnitTestCase self::assertFalse($mockFormPersistenceManager->_call('exists', $input)); } - /** - * @test - */ + #[Test] public function existsReturnsFalseIfPersistenceIdentifierIsExtensionLocationAndFileExistsAndExtensionLocationIsNotAllowed(): void { $mockFormPersistenceManager = $this->getAccessibleMock(FormPersistenceManager::class, null, [], '', false); @@ -338,9 +314,7 @@ final class FormPersistenceManagerTest extends UnitTestCase self::assertFalse($mockFormPersistenceManager->_call('exists', $input)); } - /** - * @test - */ + #[Test] public function existsReturnsFalseIfPersistenceIdentifierIsExtensionLocationAndFileNotExistsAndFileHasYamlExtension(): void { $mockFormPersistenceManager = $this->getAccessibleMock(FormPersistenceManager::class, null, [], '', false); @@ -348,9 +322,7 @@ final class FormPersistenceManagerTest extends UnitTestCase self::assertFalse($mockFormPersistenceManager->_call('exists', $input)); } - /** - * @test - */ + #[Test] public function existsReturnsTrueIfPersistenceIdentifierIsStorageLocationAndFileExistsAndFileHasYamlExtension(): void { $mockFormPersistenceManager = $this->getAccessibleMock(FormPersistenceManager::class, ['getStorageByUid'], [], '', false); @@ -370,9 +342,7 @@ final class FormPersistenceManagerTest extends UnitTestCase self::assertTrue($mockFormPersistenceManager->_call('exists', $input)); } - /** - * @test - */ + #[Test] public function existsReturnsFalseIfPersistenceIdentifierIsStorageLocationAndFileExistsAndFileNoYamlExtension(): void { $mockFormPersistenceManager = $this->getAccessibleMock(FormPersistenceManager::class, ['getStorageByUid'], [], '', false); @@ -392,9 +362,7 @@ final class FormPersistenceManagerTest extends UnitTestCase self::assertFalse($mockFormPersistenceManager->_call('exists', $input)); } - /** - * @test - */ + #[Test] public function existsReturnsFalseIfPersistenceIdentifierIsStorageLocationAndFileNotExistsAndFileHasYamlExtension(): void { $mockFormPersistenceManager = $this->getAccessibleMock(FormPersistenceManager::class, ['getStorageByUid'], [], '', false); @@ -414,9 +382,7 @@ final class FormPersistenceManagerTest extends UnitTestCase self::assertFalse($mockFormPersistenceManager->_call('exists', $input)); } - /** - * @test - */ + #[Test] public function getUniquePersistenceIdentifierAppendNumberIfPersistenceIdentifierExists(): void { $mockFormPersistenceManager = $this->getAccessibleMock(FormPersistenceManager::class, ['exists'], [], '', false); @@ -436,9 +402,7 @@ final class FormPersistenceManagerTest extends UnitTestCase self::assertSame($expected, $result); } - /** - * @test - */ + #[Test] public function getUniquePersistenceIdentifierAppendTimestampIfPersistenceIdentifierExists(): void { $mockFormPersistenceManager = $this->getAccessibleMock(FormPersistenceManager::class, ['exists'], [], '', false); @@ -468,9 +432,7 @@ final class FormPersistenceManagerTest extends UnitTestCase return $returnValues; } - /** - * @test - */ + #[Test] public function getUniqueIdentifierThrowsExceptionIfIdentifierExists(): void { $this->expectException(NoUniqueIdentifierException::class); @@ -486,9 +448,7 @@ final class FormPersistenceManagerTest extends UnitTestCase $mockFormPersistenceManager->_call('getUniqueIdentifier', $input); } - /** - * @test - */ + #[Test] public function getUniqueIdentifierAppendTimestampIfIdentifierExists(): void { $mockFormPersistenceManager = $this->getAccessibleMock(FormPersistenceManager::class, ['checkForDuplicateIdentifier'], [], '', false); @@ -507,9 +467,7 @@ final class FormPersistenceManagerTest extends UnitTestCase self::assertMatchesRegularExpression($expected, $returnValue); } - /** - * @test - */ + #[Test] public function checkForDuplicateIdentifierReturnsTrueIfIdentifierIsUsed(): void { $mockFormPersistenceManager = $this->getAccessibleMock(FormPersistenceManager::class, ['listForms'], [], '', false); @@ -527,9 +485,7 @@ final class FormPersistenceManagerTest extends UnitTestCase self::assertTrue($mockFormPersistenceManager->_call('checkForDuplicateIdentifier', $input)); } - /** - * @test - */ + #[Test] public function checkForDuplicateIdentifierReturnsFalseIfIdentifierIsUsed(): void { $mockFormPersistenceManager = $this->getAccessibleMock(FormPersistenceManager::class, ['listForms'], [], '', false); @@ -596,19 +552,15 @@ final class FormPersistenceManagerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider metaDataIsExtractedDataProvider - */ + #[DataProvider('metaDataIsExtractedDataProvider')] + #[Test] public function metaDataIsExtracted(string $maybeRawFormDefinition, array $expectedMetaData): void { $formPersistenceManagerMock = $this->getAccessibleMock(FormPersistenceManager::class, null, [], '', false); self::assertSame($expectedMetaData, $formPersistenceManagerMock->_call('extractMetaDataFromCouldBeFormDefinition', $maybeRawFormDefinition)); } - /** - * @test - */ + #[Test] public function overrideByTypoScriptSettingsReturnsNotOverriddenConfigurationIfNoTypoScriptOverridesExists(): void { $mockController = $this->getAccessibleMock(FormPersistenceManager::class, null, [], '', false); @@ -660,9 +612,7 @@ final class FormPersistenceManagerTest extends UnitTestCase self::assertSame($expected, $mockController->_call('overrideByTypoScriptSettings', $input)); } - /** - * @test - */ + #[Test] public function overrideByTypoScriptSettingsReturnsOverriddenConfigurationIfTypoScriptOverridesExists(): void { $mockController = $this->getAccessibleMock(FormPersistenceManager::class, null, [], '', false); @@ -732,9 +682,7 @@ final class FormPersistenceManagerTest extends UnitTestCase self::assertSame($expected, $mockController->_call('overrideByTypoScriptSettings', $input)); } - /** - * @test - */ + #[Test] public function overrideByTypoScriptSettingsDoesNotEvaluateTypoScriptLookalikeInstructionsFromYamlSettings(): void { $formDefinitionYaml = [ @@ -828,9 +776,7 @@ final class FormPersistenceManagerTest extends UnitTestCase self::assertSame($expected, $controllerMock->_call('overrideByTypoScriptSettings', $formDefinitionYaml)); } - /** - * @test - */ + #[Test] public function retrieveFileByPersistenceIdentifierThrowsExceptionIfReadFromStorageIsNotAllowed(): void { $this->expectException(PersistenceManagerException::class); @@ -854,9 +800,7 @@ final class FormPersistenceManagerTest extends UnitTestCase $mockFormPersistenceManager->_call('retrieveFileByPersistenceIdentifier', $input); } - /** - * @test - */ + #[Test] public function getOrCreateFileThrowsExceptionIfFolderNotExistsInStorage(): void { $this->expectException(PersistenceManagerException::class); @@ -882,9 +826,7 @@ final class FormPersistenceManagerTest extends UnitTestCase $mockFormPersistenceManager->_call('getOrCreateFile', $input); } - /** - * @test - */ + #[Test] public function getOrCreateFileThrowsExceptionIfWriteToStorageIsNotAllowed(): void { $this->expectException(PersistenceManagerException::class); @@ -919,9 +861,7 @@ final class FormPersistenceManagerTest extends UnitTestCase $mockFormPersistenceManager->_call('getOrCreateFile', $input); } - /** - * @test - */ + #[Test] public function getStorageByUidThrowsExceptionIfStorageNotExists(): void { $this->expectException(PersistenceManagerException::class); @@ -937,9 +877,7 @@ final class FormPersistenceManagerTest extends UnitTestCase $mockFormPersistenceManager->_call('getStorageByUid', -1); } - /** - * @test - */ + #[Test] public function getStorageByUidThrowsExceptionIfStorageIsNotBrowsable(): void { $this->expectException(PersistenceManagerException::class); @@ -1133,10 +1071,8 @@ final class FormPersistenceManagerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider isAllowedPersistencePathReturnsPropperValuesDataProvider - */ + #[DataProvider('isAllowedPersistencePathReturnsPropperValuesDataProvider')] + #[Test] public function isAllowedPersistencePathReturnsPropperValues(string $persistencePath, array $allowedExtensionPaths, array $allowedFileMounts, $expected): void { $formPersistenceManagerMock = $this->getAccessibleMock(FormPersistenceManager::class, ['getStorageByUid'], [], '', false); diff --git a/typo3/sysext/form/Tests/Unit/Mvc/ProcessingRuleTest.php b/typo3/sysext/form/Tests/Unit/Mvc/ProcessingRuleTest.php index fa7293d61562728be9846f4c1a257dc68159d384..5f8701b7cff9e72fae1be2a381d8dd7763890d61 100644 --- a/typo3/sysext/form/Tests/Unit/Mvc/ProcessingRuleTest.php +++ b/typo3/sysext/form/Tests/Unit/Mvc/ProcessingRuleTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Form\Tests\Unit\Mvc; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Extbase\Property\PropertyMapper; use TYPO3\CMS\Extbase\Validation\Validator\AbstractValidator; use TYPO3\CMS\Extbase\Validation\Validator\ConjunctionValidator; @@ -28,9 +29,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ProcessingRuleTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function addValidatorAddsValidator(): void { $conjunctionValidator = new ConjunctionValidator(); @@ -46,9 +45,7 @@ final class ProcessingRuleTest extends UnitTestCase self::assertInstanceOf(AbstractValidator::class, $validators->current()); } - /** - * @test - */ + #[Test] public function removeAllRemovesAllValidators(): void { $conjunctionValidator = new ConjunctionValidator(); @@ -63,9 +60,7 @@ final class ProcessingRuleTest extends UnitTestCase self::assertCount(0, $subject->getValidators()); } - /** - * @test - */ + #[Test] public function filterValidatorRemovesValidatorsDependingOnClosure(): void { $conjunctionValidator = new ConjunctionValidator(); @@ -84,9 +79,7 @@ final class ProcessingRuleTest extends UnitTestCase self::assertInstanceOf(AnotherTestValidator::class, $validators->current()); } - /** - * @test - */ + #[Test] public function processNoPropertyMappingReturnsNotModifiedValue(): void { $conjunctionValidator = new ConjunctionValidator(); @@ -98,9 +91,7 @@ final class ProcessingRuleTest extends UnitTestCase self::assertSame($input, $subject->process($input)); } - /** - * @test - */ + #[Test] public function processNoPropertyMappingAndHasErrorsIfValidatorContainsErrors(): void { $conjunctionValidator = new ConjunctionValidator(); diff --git a/typo3/sysext/form/Tests/Unit/Mvc/Property/PropertyMappingConfigurationTest.php b/typo3/sysext/form/Tests/Unit/Mvc/Property/PropertyMappingConfigurationTest.php index 77c2d26b808cdb47e8c7a862eef3b354c9c057bb..760113a0d8a3a87b54e35452716f8b505141470e 100644 --- a/typo3/sysext/form/Tests/Unit/Mvc/Property/PropertyMappingConfigurationTest.php +++ b/typo3/sysext/form/Tests/Unit/Mvc/Property/PropertyMappingConfigurationTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Form\Tests\Unit\Mvc\Property; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Core\Resource\ResourceFactory; use TYPO3\CMS\Core\Utility\GeneralUtility; @@ -90,8 +91,8 @@ final class PropertyMappingConfigurationTest extends UnitTestCase /** * A bare minimum test that checks if the function maybe potentially works. - * @test */ + #[Test] public function afterBuildingFinishedAddsFileReferenceConverter(): void { // No validators @@ -115,9 +116,7 @@ final class PropertyMappingConfigurationTest extends UnitTestCase $propertyMappingConfiguration->afterBuildingFinished($this->fileUpload); } - /** - * @test - */ + #[Test] public function afterBuildingFinishedAddsMimeTypeConverter(): void { $mimeTypes = ['allowedMimeTypes' => ['text/plain', 'application/x-www-form-urlencoded']]; @@ -156,9 +155,7 @@ final class PropertyMappingConfigurationTest extends UnitTestCase $propertyMappingConfiguration->afterBuildingFinished($this->fileUpload); } - /** - * @test - */ + #[Test] public function afterBuildingFinishedSetsUpStoragePathToPropertySaveToFileMountIfItExists(): void { $resourceFactory = $this->createMock(ResourceFactory::class); @@ -190,9 +187,7 @@ final class PropertyMappingConfigurationTest extends UnitTestCase $this->propertyMappingConfiguration->afterBuildingFinished($this->fileUpload); } - /** - * @test - */ + #[Test] public function afterBuildingFinishedSetsUpStoragePathToToFormDefinitionPathIfSaveToFileMountIsNotDefinedAndFormWasNotAddedProgrammatically(): void { $resourceFactory = $this->createMock(ResourceFactory::class); @@ -228,9 +223,7 @@ final class PropertyMappingConfigurationTest extends UnitTestCase $this->propertyMappingConfiguration->afterBuildingFinished($this->fileUpload); } - /** - * @test - */ + #[Test] public function afterBuildingFinishedSetsStoragePathToUserUploadIfNeitherSaveToFileMountIsSetNorThereIsAFormDefinitionPath(): void { // Don't add any validators for now @@ -260,9 +253,7 @@ final class PropertyMappingConfigurationTest extends UnitTestCase $this->propertyMappingConfiguration->afterBuildingFinished($this->fileUpload); } - /** - * @test - */ + #[Test] public function afterBuildingFinishedCopiesValidators(): void { // Some other Validator @@ -292,9 +283,7 @@ final class PropertyMappingConfigurationTest extends UnitTestCase $this->propertyMappingConfiguration->afterBuildingFinished($this->fileUpload); } - /** - * @test - */ + #[Test] public function afterBuildingFinishedDoesNotCopyNotEmptyValidator(): void { // Not Empty Validator diff --git a/typo3/sysext/form/Tests/Unit/Mvc/Property/TypeConverter/FormDefinitionArrayConverterTest.php b/typo3/sysext/form/Tests/Unit/Mvc/Property/TypeConverter/FormDefinitionArrayConverterTest.php index 456503e2d26d7fa5e7a41bc509c96959d22dd7ad..3d4b24d0e892b8dc37aab6788817d4540ce66e0c 100644 --- a/typo3/sysext/form/Tests/Unit/Mvc/Property/TypeConverter/FormDefinitionArrayConverterTest.php +++ b/typo3/sysext/form/Tests/Unit/Mvc/Property/TypeConverter/FormDefinitionArrayConverterTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Form\Tests\Unit\Mvc\Property\TypeConverter; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Form\Domain\Configuration\Exception\PropertyException; use TYPO3\CMS\Form\Domain\Configuration\FormDefinitionValidationService; @@ -34,9 +35,7 @@ final class FormDefinitionArrayConverterTest extends UnitTestCase $GLOBALS['TYPO3_CONF_VARS']['SYS']['encryptionKey'] = '12345'; } - /** - * @test - */ + #[Test] public function convertsJsonStringToFormDefinitionArray(): void { $sessionToken = '123'; @@ -95,9 +94,7 @@ final class FormDefinitionArrayConverterTest extends UnitTestCase self::assertSame($expected, $result->getArrayCopy()); } - /** - * @test - */ + #[Test] public function convertFromThrowsExceptionIfJsonIsInvalid(): void { $this->expectException(PropertyException::class); @@ -109,9 +106,7 @@ final class FormDefinitionArrayConverterTest extends UnitTestCase $typeConverter->convertFrom($input, FormDefinitionArray::class); } - /** - * @test - */ + #[Test] public function transformMultiValueElementsForFormFrameworkTransformValues(): void { $typeConverter = $this->getAccessibleMock(FormDefinitionArrayConverter::class, null, [], '', false); @@ -157,9 +152,7 @@ final class FormDefinitionArrayConverterTest extends UnitTestCase self::assertSame($expected, $typeConverter->_call('transformMultiValueElementsForFormFramework', $input)); } - /** - * @test - */ + #[Test] public function convertFromThrowsExceptionIfPrototypeNameWasChanged(): void { $this->expectException(PropertyException::class); @@ -188,9 +181,7 @@ final class FormDefinitionArrayConverterTest extends UnitTestCase $typeConverter->convertFrom(json_encode($input), FormDefinitionArray::class); } - /** - * @test - */ + #[Test] public function convertFromThrowsExceptionIfIdentifierWasChanged(): void { $this->expectException(PropertyException::class); diff --git a/typo3/sysext/form/Tests/Unit/ViewHelpers/Form/DatePickerViewHelperTest.php b/typo3/sysext/form/Tests/Unit/ViewHelpers/Form/DatePickerViewHelperTest.php index f34dbf10db36fd4740fe57f8736391b159c692a2..c3d2d45aa71db781e615d205fcb2af4805cc3bfc 100644 --- a/typo3/sysext/form/Tests/Unit/ViewHelpers/Form/DatePickerViewHelperTest.php +++ b/typo3/sysext/form/Tests/Unit/ViewHelpers/Form/DatePickerViewHelperTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Form\Tests\Unit\ViewHelpers\Form; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Form\ViewHelpers\Form\DatePickerViewHelper; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -68,10 +70,8 @@ final class DatePickerViewHelperTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider convertDateFormatToDatePickerFormatReturnsTransformedFormatDataProvider - */ + #[DataProvider('convertDateFormatToDatePickerFormatReturnsTransformedFormatDataProvider')] + #[Test] public function convertDateFormatToDatePickerFormatReturnsTransformedFormat(string $input, string $expected): void { $mock = \Closure::bind(static function (DatePickerViewHelper $datePickerViewHelper) use ($input, &$result) { diff --git a/typo3/sysext/frontend/Tests/Unit/Authentication/FrontendUserAuthenticationTest.php b/typo3/sysext/frontend/Tests/Unit/Authentication/FrontendUserAuthenticationTest.php index a408c5d59c7d6b0ba9a48bc862d3f9a5d19a7ef8..5c60273461506faa0a864994e5673d1385dfed65 100644 --- a/typo3/sysext/frontend/Tests/Unit/Authentication/FrontendUserAuthenticationTest.php +++ b/typo3/sysext/frontend/Tests/Unit/Authentication/FrontendUserAuthenticationTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Frontend\Tests\Unit\Authentication; +use PHPUnit\Framework\Attributes\Test; use Psr\Log\NullLogger; use TYPO3\CMS\Core\Http\ServerRequest; use TYPO3\CMS\Core\Session\UserSession; @@ -32,9 +33,8 @@ final class FrontendUserAuthenticationTest extends UnitTestCase /** * Setting and immediately removing session data should be handled correctly. * No write operations should be made - * - * @test */ + #[Test] public function canSetAndUnsetSessionKey(): void { $uniqueSessionId = StringUtility::getUniqueId('test'); @@ -72,9 +72,8 @@ final class FrontendUserAuthenticationTest extends UnitTestCase /** * A user that is not signed in should be able to have associated session data - * - * @test */ + #[Test] public function canSetSessionDataForAnonymousUser(): void { $uniqueSessionId = StringUtility::getUniqueId('test'); diff --git a/typo3/sysext/frontend/Tests/Unit/ContentObject/CaseContentObjectTest.php b/typo3/sysext/frontend/Tests/Unit/ContentObject/CaseContentObjectTest.php index 237b1b9cb2227fabf49e1482a5d2bac6b8196799..aa1d575ac3509213b34f39ca2c8510c415a9150f 100644 --- a/typo3/sysext/frontend/Tests/Unit/ContentObject/CaseContentObjectTest.php +++ b/typo3/sysext/frontend/Tests/Unit/ContentObject/CaseContentObjectTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Frontend\Tests\Unit\ContentObject; +use PHPUnit\Framework\Attributes\Test; use Symfony\Component\DependencyInjection\Container; use TYPO3\CMS\Core\Http\ServerRequest; use TYPO3\CMS\Core\Utility\GeneralUtility; @@ -67,9 +68,7 @@ final class CaseContentObjectTest extends UnitTestCase $this->subject->setContentObjectRenderer($contentObjectRenderer); } - /** - * @test - */ + #[Test] public function renderReturnsEmptyStringIfNoKeyMatchesAndIfNoDefaultObjectIsSet(): void { $conf = [ @@ -78,9 +77,7 @@ final class CaseContentObjectTest extends UnitTestCase self::assertSame('', $this->subject->render($conf)); } - /** - * @test - */ + #[Test] public function renderReturnsContentFromDefaultObjectIfKeyDoesNotExist(): void { $conf = [ diff --git a/typo3/sysext/frontend/Tests/Unit/ContentObject/ContentDataProcessorTest.php b/typo3/sysext/frontend/Tests/Unit/ContentObject/ContentDataProcessorTest.php index 3f688269f88cc874da193a6665b08e93d64eebbb..db28d092159dc50ca994bfab55ceb4216b5820af 100644 --- a/typo3/sysext/frontend/Tests/Unit/ContentObject/ContentDataProcessorTest.php +++ b/typo3/sysext/frontend/Tests/Unit/ContentObject/ContentDataProcessorTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Frontend\Tests\Unit\ContentObject; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use Symfony\Component\DependencyInjection\Container; use TYPO3\CMS\Frontend\ContentObject\ContentDataProcessor; @@ -43,9 +44,7 @@ final class ContentDataProcessorTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function throwsExceptionIfProcessorDoesNotExist(): void { $this->expectException(\UnexpectedValueException::class); @@ -60,9 +59,7 @@ final class ContentDataProcessorTest extends UnitTestCase $this->contentDataProcessor->process($contentObjectRendererStub, $config, $variables); } - /** - * @test - */ + #[Test] public function throwsExceptionIfProcessorClassDoesNotImplementInterface(): void { $this->expectException(\UnexpectedValueException::class); @@ -77,9 +74,7 @@ final class ContentDataProcessorTest extends UnitTestCase $this->contentDataProcessor->process($contentObjectRendererStub, $config, $variables); } - /** - * @test - */ + #[Test] public function processorClassIsCalled(): void { $contentObjectRendererStub = new ContentObjectRenderer(); @@ -96,9 +91,7 @@ final class ContentDataProcessorTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function throwsExceptionIfProcessorServiceDoesNotImplementInterface(): void { $this->expectException(\UnexpectedValueException::class); @@ -114,9 +107,7 @@ final class ContentDataProcessorTest extends UnitTestCase $this->contentDataProcessor->process($contentObjectRendererStub, $config, $variables); } - /** - * @test - */ + #[Test] public function processorServiceIsCalled(): void { $contentObjectRendererStub = new ContentObjectRenderer(); diff --git a/typo3/sysext/frontend/Tests/Unit/ContentObject/ContentObjectRendererTest.php b/typo3/sysext/frontend/Tests/Unit/ContentObject/ContentObjectRendererTest.php index f14b55371590b4a625a1bcd96cc8bea7db4d9b4e..85cee90322756ce0b73763e4130f29a65234d86c 100644 --- a/typo3/sysext/frontend/Tests/Unit/ContentObject/ContentObjectRendererTest.php +++ b/typo3/sysext/frontend/Tests/Unit/ContentObject/ContentObjectRendererTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Frontend\Tests\Unit\ContentObject; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\Exception; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\MockObject\Rule\InvocationOrder; @@ -188,7 +190,6 @@ final class ContentObjectRendererTest extends UnitTestCase ////////////////////// // Utility functions ////////////////////// - /** * Converts the subject and the expected result into utf-8. * @@ -376,9 +377,7 @@ final class ContentObjectRendererTest extends UnitTestCase ///////////////////////////////////////////// // Tests concerning the getImgResource hook ///////////////////////////////////////////// - /** - * @test - */ + #[Test] public function getImgResourceCallsGetImgResourcePostProcessHook(): void { $cacheManagerMock = $this->getMockBuilder(CacheManager::class)->disableOriginalConstructor()->getMock(); @@ -425,11 +424,10 @@ final class ContentObjectRendererTest extends UnitTestCase ////////////////////////////////////// // Tests related to getContentObject ////////////////////////////////////// - /** * @see ContentObjectRendererTest::canRegisterAContentObjectClassForATypoScriptName - * @test */ + #[Test] public function willReturnNullForUnregisteredObject(): void { $object = $this->subject->getContentObject('FOO'); @@ -440,24 +438,19 @@ final class ContentObjectRendererTest extends UnitTestCase // Tests concerning crop ////////////////////////// /** - * @test - * - * Tests are kept due ensure parameter splitting works, also they are mostly duplicates of directly implemented - * HtmlCropper and TextCropper tests. * @see \TYPO3\CMS\Core\Tests\Unit\Html\HtmlCropperTest * @see \TYPO3\CMS\Core\Tests\Unit\Text\TextCropperTest */ + #[Test] public function cropIsMultibyteSafe(): void { self::assertEquals('бла', $this->subject->crop('бла', '3|...')); } ////////////////////////////// - ////////////////////////////// // Tests concerning cropHTML ////////////////////////////// - /** * Data provider for cropHTML. * @@ -761,8 +754,6 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Check if cropHTML works properly. * - * @test - * @dataProvider cropHTMLDataProvider * @param string $expect The expected cropped output. * @param string $content The given input. * @param string $conf The given configuration. @@ -772,6 +763,8 @@ final class ContentObjectRendererTest extends UnitTestCase * @see \TYPO3\CMS\Core\Tests\Unit\Html\HtmlCropperTest * @see \TYPO3\CMS\Core\Tests\Unit\Text\TextCropperTest */ + #[DataProvider('cropHTMLDataProvider')] + #[Test] public function cropHTML(string $expect, string $content, string $conf): void { $this->handleCharset($content, $expect); @@ -848,9 +841,9 @@ final class ContentObjectRendererTest extends UnitTestCase * @param float $expect The expected output. * @param mixed $content The given content. * @param array $conf The given configuration of 'round.'. - * @dataProvider roundDataProvider - * @test */ + #[DataProvider('roundDataProvider')] + #[Test] public function round(float $expect, mixed $content, array $conf): void { self::assertSame( @@ -859,9 +852,7 @@ final class ContentObjectRendererTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function recursiveStdWrapProperlyRendersBasicString(): void { $stdWrapConfiguration = [ @@ -876,9 +867,7 @@ final class ContentObjectRendererTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function recursiveStdWrapIsOnlyCalledOnce(): void { $stdWrapConfiguration = [ @@ -951,10 +940,9 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Check if numberFormat works properly. - * - * @dataProvider numberFormatDataProvider - * @test */ + #[DataProvider('numberFormatDataProvider')] + #[Test] public function numberFormat(string $expects, mixed $content, array $conf): void { self::assertSame( @@ -1020,12 +1008,12 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Check if stdWrap.replacement and all of its properties work properly * - * @test - * @dataProvider replacementDataProvider * @param string $content The given input. * @param string $expects The expected result. * @param array $conf The given configuration. */ + #[DataProvider('replacementDataProvider')] + #[Test] public function replacement(string $expects, string $content, array $conf): void { self::assertSame( @@ -1092,10 +1080,9 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Check if calcAge works properly. - * - * @test - * @dataProvider calcAgeDataProvider */ + #[DataProvider('calcAgeDataProvider')] + #[Test] public function calcAge(string $expect, int $timestamp, string $labels): void { self::assertSame( @@ -1119,10 +1106,8 @@ final class ContentObjectRendererTest extends UnitTestCase ]; } - /** - * @dataProvider stdWrapReturnsExpectationDataProvider - * @test - */ + #[DataProvider('stdWrapReturnsExpectationDataProvider')] + #[Test] public function stdWrapReturnsExpectation(string $content, array $configuration, string $expectation): void { self::assertSame($expectation, $this->subject->stdWrap($content, $configuration)); @@ -1150,10 +1135,8 @@ final class ContentObjectRendererTest extends UnitTestCase ]; } - /** - * @dataProvider stdWrapDoesOnlyCallIfEmptyIfTheTrimmedContentIsEmptyOrZeroDataProvider - * @test - */ + #[DataProvider('stdWrapDoesOnlyCallIfEmptyIfTheTrimmedContentIsEmptyOrZeroDataProvider')] + #[Test] public function stdWrapDoesOnlyCallIfEmptyIfTheTrimmedContentIsEmptyOrZero(string $content, bool $ifEmptyShouldBeCalled): void { $conf = [ @@ -1198,12 +1181,12 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Check if substring works properly. * - * @test - * @dataProvider substringDataProvider * @param string $expect The expected output. * @param string $content The given input. * @param string $conf The given configuration. */ + #[DataProvider('substringDataProvider')] + #[Test] public function substring(string $expect, string $content, string $conf): void { self::assertSame($expect, $this->subject->substring($content, $conf)); @@ -1220,10 +1203,9 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Checks if getData() works with type "gp" - * - * @test - * @dataProvider getDataWithTypeGpDataProvider */ + #[DataProvider('getDataWithTypeGpDataProvider')] + #[Test] public function getDataWithTypeGp(string $key, string $expectedValue): void { $queryArguments = [ @@ -1243,9 +1225,8 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Checks if getData() works with type "tsfe" - * - * @test */ + #[Test] public function getDataWithTypeTsfe(): void { $GLOBALS['TSFE']->linkVars = 'foo'; @@ -1254,9 +1235,8 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Checks if getData() works with type "getenv" - * - * @test */ + #[Test] public function getDataWithTypeGetenv(): void { $envName = StringUtility::getUniqueId('frontendtest'); @@ -1267,9 +1247,8 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Checks if getData() works with type "getindpenv" - * - * @test */ + #[Test] public function getDataWithTypeGetindpenv(): void { $this->subject->expects(self::once())->method('getEnvironmentVariable') @@ -1279,9 +1258,8 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Checks if getData() works with type "field" - * - * @test */ + #[Test] public function getDataWithTypeField(): void { $key = 'someKey'; @@ -1294,9 +1272,8 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Checks if getData() works with type "field" of the field content * is multi-dimensional (e.g. an array) - * - * @test */ + #[Test] public function getDataWithTypeFieldAndFieldIsMultiDimensional(): void { $key = 'somekey|level1|level2'; @@ -1323,10 +1300,9 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Basic check if getData gets the uid of a file object - * - * @test - * @dataProvider getDataWithTypeFileReturnsUidOfFileObjectDataProvider */ + #[DataProvider('getDataWithTypeFileReturnsUidOfFileObjectDataProvider')] + #[Test] public function getDataWithTypeFileReturnsUidOfFileObject(string $typoScriptPath): void { $uid = StringUtility::getUniqueId(); @@ -1338,9 +1314,8 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Checks if getData() works with type "parameters" - * - * @test */ + #[Test] public function getDataWithTypeParameters(): void { $key = StringUtility::getUniqueId('someKey'); @@ -1352,9 +1327,8 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Checks if getData() works with type "register" - * - * @test */ + #[Test] public function getDataWithTypeRegister(): void { $key = StringUtility::getUniqueId('someKey'); @@ -1366,9 +1340,8 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Checks if getData() works with type "session" - * - * @test */ + #[Test] public function getDataWithTypeSession(): void { $frontendUser = $this->getMockBuilder(FrontendUserAuthentication::class) @@ -1386,9 +1359,8 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Checks if getData() works with type "level" - * - * @test */ + #[Test] public function getDataWithTypeLevel(): void { $rootline = [ @@ -1402,9 +1374,8 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Checks if getData() works with type "leveltitle" - * - * @test */ + #[Test] public function getDataWithTypeLeveltitle(): void { $rootline = [ @@ -1420,9 +1391,8 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Checks if getData() works with type "levelmedia" - * - * @test */ + #[Test] public function getDataWithTypeLevelmedia(): void { $rootline = [ @@ -1438,9 +1408,8 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Checks if getData() works with type "leveluid" - * - * @test */ + #[Test] public function getDataWithTypeLeveluid(): void { $rootline = [ @@ -1456,9 +1425,8 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Checks if getData() works with type "levelfield" - * - * @test */ + #[Test] public function getDataWithTypeLevelfield(): void { $rootline = [ @@ -1473,9 +1441,8 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Checks if getData() works with type "fullrootline" - * - * @test */ + #[Test] public function getDataWithTypeFullrootline(): void { $rootline1 = [ @@ -1494,9 +1461,8 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Checks if getData() works with type "date" - * - * @test */ + #[Test] public function getDataWithTypeDate(): void { $format = 'Y-M-D'; @@ -1508,9 +1474,8 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Checks if getData() works with type "page" - * - * @test */ + #[Test] public function getDataWithTypePage(): void { $uid = random_int(0, mt_getrandmax()); @@ -1520,9 +1485,8 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Checks if getData() works with type "current" - * - * @test */ + #[Test] public function getDataWithTypeCurrent(): void { $key = StringUtility::getUniqueId('someKey'); @@ -1532,9 +1496,7 @@ final class ContentObjectRendererTest extends UnitTestCase self::assertEquals($value, $this->subject->getData('current')); } - /** - * @test - */ + #[Test] public function getDataWithTypeDbReturnsCorrectTitle() { $dummyRecord = ['uid' => 5, 'title' => 'someTitle']; @@ -1578,10 +1540,9 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Checks if getData() works with type "db" - * - * @test - * @dataProvider getDataWithTypeDbDataProvider */ + #[DataProvider('getDataWithTypeDbDataProvider')] + #[Test] public function getDataWithTypeDbReturnsEmptyStringOnInvalidIdentifiers(string $identifier, InvocationOrder $expectsMethodCall): void { $dummyRecord = ['uid' => 5, 'title' => 'someTitle']; @@ -1591,9 +1552,8 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Checks if getData() works with type "lll" - * - * @test */ + #[Test] public function getDataWithTypeLll(): void { $key = StringUtility::getUniqueId('someKey'); @@ -1608,9 +1568,8 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Checks if getData() works with type "path" - * - * @test */ + #[Test] public function getDataWithTypePath(): void { $filenameIn = 'typo3/sysext/frontend/Public/Icons/Extension.svg'; @@ -1619,9 +1578,8 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Checks if getData() works with type "context" - * - * @test */ + #[Test] public function getDataWithTypeContext(): void { $context = new Context([ @@ -1637,9 +1595,8 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Checks if getData() works with type "site" - * - * @test */ + #[Test] public function getDataWithTypeSite(): void { $site = new Site('my-site', 123, [ @@ -1657,9 +1614,8 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Checks if getData() works with type "site" and base variants - * - * @test */ + #[Test] public function getDataWithTypeSiteWithBaseVariants(): void { $packageManager = new PackageManager(new DependencyOrderingService()); @@ -1692,9 +1648,8 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Checks if getData() works with type "siteLanguage" - * - * @test */ + #[Test] public function getDataWithTypeSiteLanguage(): void { $site = $this->createSiteWithLanguage([ @@ -1715,9 +1670,8 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Checks if getData() works with type "parentRecordNumber" - * - * @test */ + #[Test] public function getDataWithTypeParentRecordNumber(): void { $recordNumber = random_int(0, mt_getrandmax()); @@ -1727,9 +1681,8 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Checks if getData() works with type "debug:rootLine" - * - * @test */ + #[Test] public function getDataWithTypeDebugRootline(): void { $rootline = [ @@ -1749,9 +1702,8 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Checks if getData() works with type "debug:fullRootLine" - * - * @test */ + #[Test] public function getDataWithTypeDebugFullRootline(): void { $rootline = [ @@ -1771,9 +1723,8 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Checks if getData() works with type "debug:data" - * - * @test */ + #[Test] public function getDataWithTypeDebugData(): void { $key = StringUtility::getUniqueId('someKey'); @@ -1791,9 +1742,8 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Checks if getData() works with type "debug:register" - * - * @test */ + #[Test] public function getDataWithTypeDebugRegister(): void { $key = StringUtility::getUniqueId('someKey'); @@ -1811,9 +1761,8 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Checks if getData() works with type "data:page" - * - * @test */ + #[Test] public function getDataWithTypeDebugPage(): void { $uid = random_int(0, mt_getrandmax()); @@ -1828,9 +1777,7 @@ final class ContentObjectRendererTest extends UnitTestCase self::assertEquals($expectedResult, $cleanedResult); } - /** - * @test - */ + #[Test] public function renderingContentObjectThrowsException(): void { $this->expectException(\LogicException::class); @@ -1839,9 +1786,7 @@ final class ContentObjectRendererTest extends UnitTestCase $this->subject->render($contentObjectFixture, []); } - /** - * @test - */ + #[Test] public function exceptionHandlerIsEnabledByDefaultInProductionContext(): void { Environment::initialize( @@ -1859,9 +1804,7 @@ final class ContentObjectRendererTest extends UnitTestCase $this->subject->render($contentObjectFixture, []); } - /** - * @test - */ + #[Test] public function renderingContentObjectDoesNotThrowExceptionIfExceptionHandlerIsConfiguredLocally(): void { $contentObjectFixture = $this->createContentObjectThrowingExceptionFixture(); @@ -1872,9 +1815,7 @@ final class ContentObjectRendererTest extends UnitTestCase $this->subject->render($contentObjectFixture, $configuration); } - /** - * @test - */ + #[Test] public function renderingContentObjectDoesNotThrowExceptionIfExceptionHandlerIsConfiguredGlobally(): void { $contentObjectFixture = $this->createContentObjectThrowingExceptionFixture(); @@ -1883,9 +1824,7 @@ final class ContentObjectRendererTest extends UnitTestCase $this->subject->render($contentObjectFixture, []); } - /** - * @test - */ + #[Test] public function globalExceptionHandlerConfigurationCanBeOverriddenByLocalConfiguration(): void { $contentObjectFixture = $this->createContentObjectThrowingExceptionFixture(false); @@ -1898,9 +1837,7 @@ final class ContentObjectRendererTest extends UnitTestCase $this->subject->render($contentObjectFixture, $configuration); } - /** - * @test - */ + #[Test] public function renderedErrorMessageCanBeCustomized(): void { $contentObjectFixture = $this->createContentObjectThrowingExceptionFixture(); @@ -1915,9 +1852,7 @@ final class ContentObjectRendererTest extends UnitTestCase self::assertSame('New message for testing', $this->subject->render($contentObjectFixture, $configuration)); } - /** - * @test - */ + #[Test] public function localConfigurationOverridesGlobalConfiguration(): void { $contentObjectFixture = $this->createContentObjectThrowingExceptionFixture(); @@ -1936,9 +1871,7 @@ final class ContentObjectRendererTest extends UnitTestCase self::assertSame('New message for testing', $this->subject->render($contentObjectFixture, $configuration)); } - /** - * @test - */ + #[Test] public function specificExceptionsCanBeIgnoredByExceptionHandler(): void { $contentObjectFixture = $this->createContentObjectThrowingExceptionFixture(); @@ -2063,10 +1996,8 @@ final class ContentObjectRendererTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider _parseFuncReturnsCorrectHtmlDataProvider - */ + #[DataProvider('_parseFuncReturnsCorrectHtmlDataProvider')] + #[Test] public function stdWrap_parseFuncReturnsParsedHtml(string $value, array $configuration, string $expectedResult, LinkResultInterface|false $linkResult): void { if ($linkResult !== false) { @@ -2338,10 +2269,8 @@ final class ContentObjectRendererTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider _parseFuncParsesNestedTagsProperlyDataProvider - */ + #[DataProvider('_parseFuncParsesNestedTagsProperlyDataProvider')] + #[Test] public function parseFuncParsesNestedTagsProperly(string $value, array $configuration, string $expectedResult): void { self::assertEquals($expectedResult, $this->subject->stdWrap_parseFunc($value, $configuration)); @@ -2479,10 +2408,8 @@ final class ContentObjectRendererTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider httpMakelinksDataProvider - */ + #[DataProvider('httpMakelinksDataProvider')] + #[Test] public function httpMakelinksReturnsLink(string $data, array $configuration, string $expectedResult, LinkResult $linkResult): void { $linkFactory = $this->getMockBuilder(LinkFactory::class)->disableOriginalConstructor()->getMock(); @@ -2516,10 +2443,8 @@ final class ContentObjectRendererTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider invalidHttpMakelinksDataProvider - */ + #[DataProvider('invalidHttpMakelinksDataProvider')] + #[Test] public function httpMakelinksReturnsNoLink(string $data, array $configuration, string $expectedResult): void { self::assertSame($expectedResult, $this->subject->_call('http_makelinks', $data, $configuration)); @@ -2591,10 +2516,8 @@ final class ContentObjectRendererTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider mailtoMakelinksDataProvider - */ + #[DataProvider('mailtoMakelinksDataProvider')] + #[Test] public function mailtoMakelinksReturnsMailToLink(string $data, array $configuration, string $expectedResult, LinkResult $linkResult): void { $linkFactory = $this->getMockBuilder(LinkFactory::class)->disableOriginalConstructor()->getMock(); @@ -2604,17 +2527,13 @@ final class ContentObjectRendererTest extends UnitTestCase self::assertSame($expectedResult, $this->subject->_call('mailto_makelinks', $data, $configuration)); } - /** - * @test - */ + #[Test] public function mailtoMakelinksReturnsNoMailToLink(): void { self::assertSame('mailto:', $this->subject->_call('mailto_makelinks', 'mailto:', [])); } - /** - * @test - */ + #[Test] public function stdWrap_splitObjReturnsCount(): void { $conf = [ @@ -2685,8 +2604,6 @@ final class ContentObjectRendererTest extends UnitTestCase * - takes key from $conf['key'] * - processes key with stdWrap based on $conf['key.'] * - * @test - * @dataProvider calculateCacheKeyDataProvider * @param string $expect Expected result. * @param array $conf Properties 'key', 'key.' * @param int $times Times called mocked method. @@ -2694,6 +2611,8 @@ final class ContentObjectRendererTest extends UnitTestCase * @param array|null $withWrap * @param string|null $will Return value of mocked method. */ + #[DataProvider('calculateCacheKeyDataProvider')] + #[Test] public function calculateCacheKey(string $expect, array $conf, int $times, ?string $with, ?array $withWrap, ?string $will): void { $subject = $this->getAccessibleMock(ContentObjectRenderer::class, ['stdWrap']); @@ -2740,14 +2659,14 @@ final class ContentObjectRendererTest extends UnitTestCase * - CacheFrontend is created and called if $cacheKey is not empty. * - Else false is returned. * - * @test - * @dataProvider getFromCacheDataProvider * @param string|bool $expect Expected result. * @param array $conf Configuration to pass to calculateCacheKey mock. * @param string $cacheKey Return from calculateCacheKey mock. * @param int $times Times the cache is expected to be called (0 or 1). * @param string|null $cached Return from cacheFrontend mock. */ + #[DataProvider('getFromCacheDataProvider')] + #[Test] public function getFromCache(string|bool $expect, array $conf, string $cacheKey, int $times, ?string $cached): void { $tags = [StringUtility::getUniqueId('tags')]; @@ -2860,11 +2779,11 @@ final class ContentObjectRendererTest extends UnitTestCase * - 1 => 1 * - 'string' => 'string' * - * @test - * @dataProvider getFieldValDataProvider * @param mixed $expect The expected string. * @param string $fields Field names divides by //. */ + #[DataProvider('getFieldValDataProvider')] + #[Test] public function getFieldVal(mixed $expect, string $fields): void { $data = [ @@ -2923,10 +2842,8 @@ final class ContentObjectRendererTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider caseshiftDataProvider - */ + #[DataProvider('caseshiftDataProvider')] + #[Test] public function caseshift(string $expected, string $content, string $case): void { self::assertSame($expected, $this->subject->caseshift($content, $case)); @@ -2956,10 +2873,8 @@ final class ContentObjectRendererTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider HTMLcaseshiftDataProvider - */ + #[DataProvider('HTMLcaseshiftDataProvider')] + #[Test] public function HTMLcaseshift(string $content, string $expected): void { self::assertSame($expected, (new ContentObjectRenderer())->HTMLcaseshift($content, 'upper')); @@ -2968,7 +2883,6 @@ final class ContentObjectRendererTest extends UnitTestCase /*************************************************************************** * General tests for stdWrap_ ***************************************************************************/ - /** * Check that all registered stdWrap processors are callable. * @@ -2977,9 +2891,8 @@ final class ContentObjectRendererTest extends UnitTestCase * - The given invalidProcessor is counted as not callable. * - All stdWrap processors are counted as callable. * - Their amount is 91. - * - * @test */ + #[Test] public function allStdWrapProcessorsAreCallable(): void { $callable = 0; @@ -3016,9 +2929,8 @@ final class ContentObjectRendererTest extends UnitTestCase * The exceptions break, if the configuration is empty. This test just * tracks the different behaviour to gain information. It doesn't mean * that it is an issue. - * - * @test */ + #[Test] public function notAllStdWrapProcessorsAreCallableWithEmptyConfiguration(): void { $timeTrackerMock = $this->getMockBuilder(TimeTracker::class)->disableOriginalConstructor()->getMock(); @@ -3054,11 +2966,9 @@ final class ContentObjectRendererTest extends UnitTestCase /*************************************************************************** * End general tests for stdWrap_ ***************************************************************************/ - /*************************************************************************** * Tests for stdWrap_ in alphabetical order (all uppercase before lowercase) ***************************************************************************/ - /** * Data provider for fourTypesOfStdWrapHookObjectProcessors * @@ -3096,11 +3006,11 @@ final class ContentObjectRendererTest extends UnitTestCase * - stdWrap_stdWrapProcess * - stdWrap_stdWrapPostProcess * - * @test - * @dataProvider fourTypesOfStdWrapHookObjectProcessorsDataProvider * @param string $stdWrapMethod The method to cover. * @param string $hookObjectCall The expected hook object call. */ + #[DataProvider('fourTypesOfStdWrapHookObjectProcessorsDataProvider')] + #[Test] public function fourTypesOfStdWrapHookObjectProcessors( string $stdWrapMethod, string $hookObjectCall @@ -3186,14 +3096,14 @@ final class ContentObjectRendererTest extends UnitTestCase * - Parameter 2 is $conf['HTMLparser']. * - Returns the return value. * - * @test - * @dataProvider stdWrap_HTMLparserDataProvider * @param string $expect The expected output. * @param string $content The given content. * @param array $conf The given configuration. * @param int $times Times HTMLparser_TSbridge is called (0 or 1). * @param string $will Return of HTMLparser_TSbridge. */ + #[DataProvider('stdWrap_HTMLparserDataProvider')] + #[Test] public function stdWrap_HTMLparser( string $expect, string $content, @@ -3235,10 +3145,8 @@ final class ContentObjectRendererTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider stdWrap_addPageCacheTagsAddsPageTagsDataProvider - */ + #[DataProvider('stdWrap_addPageCacheTagsAddsPageTagsDataProvider')] + #[Test] public function stdWrap_addPageCacheTagsAddsPageTags(array $expectedTags, array $configuration): void { $this->subject->stdWrap_addPageCacheTags('', $configuration); @@ -3254,9 +3162,8 @@ final class ContentObjectRendererTest extends UnitTestCase * - Parameter 1 is the difference between $content and EXEC_TIME. * - Parameter 2 is $conf['age']. * - Returns the return value. - * - * @test */ + #[Test] public function stdWrap_age(): void { $now = 10; @@ -3285,9 +3192,8 @@ final class ContentObjectRendererTest extends UnitTestCase * - Second parameter is $conf['append.']. * - Third parameter is '/stdWrap/.append'. * - Returns the return value appended to $content. - * - * @test */ + #[Test] public function stdWrap_append(): void { $debugKey = '/stdWrap/.append'; @@ -3347,9 +3253,9 @@ final class ContentObjectRendererTest extends UnitTestCase * @param string $expected The expected value. * @param string $input The input value. * @param string|null $xhtmlDoctype Xhtml document type. - * @test - * @dataProvider stdWrapBrDataProvider */ + #[DataProvider('stdWrapBrDataProvider')] + #[Test] public function stdWrap_br(string $expected, string $input, ?string $xhtmlDoctype): void { $pageRenderer = $this->getMockBuilder(PageRenderer::class)->disableOriginalConstructor()->addMethods(['dummy'])->getMock(); @@ -3395,10 +3301,9 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Check if brTag works properly - * - * @test - * @dataProvider stdWrapBrTagDataProvider */ + #[DataProvider('stdWrapBrTagDataProvider')] + #[Test] public function stdWrap_brTag(string $input, string $expected, array $config): void { self::assertEquals($expected, $this->subject->stdWrap_brTag($input, $config)); @@ -3470,12 +3375,12 @@ final class ContentObjectRendererTest extends UnitTestCase * is done by testing input/output pairs instead. To not duplicate * the testing of formatSize just a few smoke tests are done here. * - * @test - * @dataProvider stdWrap_bytesDataProvider * @param string $expect The expected output. * @param string $content The given input. * @param array $conf The given configuration for 'bytes.'. */ + #[DataProvider('stdWrap_bytesDataProvider')] + #[Test] public function stdWrap_bytes(string $expect, string $content, array $conf): void { $locale = 'en_US.UTF-8'; @@ -3501,9 +3406,8 @@ final class ContentObjectRendererTest extends UnitTestCase * - Parameter 2 is $conf['cObject.']. * - Parameter 3 is '/stdWrap/.cObject'. * - Returns the return value. - * - * @test */ + #[Test] public function stdWrap_cObject(): void { $debugKey = '/stdWrap/.cObject'; @@ -3597,10 +3501,8 @@ final class ContentObjectRendererTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider stdWrap_orderedStdWrapDataProvider - */ + #[DataProvider('stdWrap_orderedStdWrapDataProvider')] + #[Test] public function stdWrap_orderedStdWrap(array $config, string $expected): void { self::assertSame($expected, (new ContentObjectRenderer())->stdWrap_orderedStdWrap('someContent', $config)); @@ -3658,8 +3560,6 @@ final class ContentObjectRendererTest extends UnitTestCase * - getFromCache is called to fetch from cache * - $conf['cache.'] is passed on as parameter * - * @test - * @dataProvider stdWrap_cacheReadDataProvider * @param string $expect Expected result. * @param string $input Given input string. * @param array $conf Property 'cache.' @@ -3667,6 +3567,8 @@ final class ContentObjectRendererTest extends UnitTestCase * @param array|null $with Parameter passed to mocked method. * @param string|false $will Return value of mocked method. */ + #[DataProvider('stdWrap_cacheReadDataProvider')] + #[Test] public function stdWrap_cacheRead( string $expect, string $input, @@ -3735,13 +3637,13 @@ final class ContentObjectRendererTest extends UnitTestCase * - Calls all configured user functions with $params, $this. * - Calls set on the cache frontend with $key, $content, $tags, $lifetime. * - * @test - * @dataProvider stdWrap_cacheStoreDataProvider * @param array|null $confCache Configuration of 'cache.' * @param int $timesCCK Times calculateCacheKey is called. * @param mixed $key The return value of calculateCacheKey. * @param int $times Times the other methods are called. */ + #[DataProvider('stdWrap_cacheStoreDataProvider')] + #[Test] public function stdWrap_cacheStore( ?array $confCache, int $timesCCK, @@ -3839,9 +3741,8 @@ final class ContentObjectRendererTest extends UnitTestCase * - Parameter 1 is $content. * - Parameter 2 is $conf['case']. * - Returns the return value. - * - * @test */ + #[Test] public function stdWrap_case(): void { $content = StringUtility::getUniqueId(); @@ -3865,9 +3766,8 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Check if stdWrap_char works properly. - * - * @test */ + #[Test] public function stdWrap_char(): void { $input = 'discarded'; @@ -3884,9 +3784,8 @@ final class ContentObjectRendererTest extends UnitTestCase * - Parameter 1 is $content. * - Parameter 2 is $conf['crop']. * - Returns the return value. - * - * @test */ + #[Test] public function stdWrap_crop(): void { $content = StringUtility::getUniqueId('content'); @@ -3917,9 +3816,8 @@ final class ContentObjectRendererTest extends UnitTestCase * - Parameter 1 is $content. * - Parameter 2 is $conf['cropHTML']. * - Returns the return value. - * - * @test */ + #[Test] public function stdWrap_cropHTML(): void { $content = StringUtility::getUniqueId('content'); @@ -4010,10 +3908,8 @@ final class ContentObjectRendererTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider stdWrap_formattedDateProvider - */ + #[DataProvider('stdWrap_formattedDateProvider')] + #[Test] public function stdWrap_formattedDate(string $expected, mixed $pattern, string $locale = null, string $givenDate = null): void { $this->frontendControllerMock->getContext()->setAspect('date', new DateTimeAspect(new \DateTimeImmutable('2023-02-02 13:05:00'))); @@ -4069,12 +3965,12 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Check if stdWrap_csConv works properly. * - * @test - * @dataProvider stdWrap_csConvDataProvider * @param string $expected The expected value. * @param string $input The input value. * @param array $conf Property: csConv */ + #[DataProvider('stdWrap_csConvDataProvider')] + #[Test] public function stdWrap_csConv(string $expected, string $input, array $conf): void { self::assertSame( @@ -4091,9 +3987,8 @@ final class ContentObjectRendererTest extends UnitTestCase * - current is returned from $this->data * - the key is stored in $this->currentValKey * - the key defaults to 'currentValue_kidjls9dksoje' - * - * @test */ + #[Test] public function stdWrap_current(): void { $data = [ @@ -4138,11 +4033,11 @@ final class ContentObjectRendererTest extends UnitTestCase * - Parameter 2 is property data by default. * - Returns the return value. * - * @test - * @dataProvider stdWrap_dataDataProvider * @param array $expect Expect either $data * @param array $data The data. */ + #[DataProvider('stdWrap_dataDataProvider')] + #[Test] public function stdWrap_data(array $expect, array $data): void { $conf = ['data' => StringUtility::getUniqueId('conf.data')]; @@ -4169,9 +4064,8 @@ final class ContentObjectRendererTest extends UnitTestCase * - Parameter 1 is $content. * - Parameter 2 is $conf['dataWrap']. * - Returns the return value. - * - * @test */ + #[Test] public function stdWrap_dataWrap(): void { $content = StringUtility::getUniqueId('content'); @@ -4236,13 +4130,13 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Check if stdWrap_date works properly. * - * @test - * @dataProvider stdWrap_dateDataProvider * @param string $expected The expected output. * @param mixed $content The given input. * @param array $conf The given configuration. * @param int $now Fictive execution time. */ + #[DataProvider('stdWrap_dateDataProvider')] + #[Test] public function stdWrap_date(string $expected, mixed $content, array $conf, int $now): void { $GLOBALS['EXEC_TIME'] = $now; @@ -4254,9 +4148,8 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Check if stdWrap_debug works properly. - * - * @test */ + #[Test] public function stdWrap_debug(): void { $expect = '<pre><p class="class"><br/>' @@ -4282,9 +4175,8 @@ final class ContentObjectRendererTest extends UnitTestCase * Note 2: * The second parameter to the debug function isn't used by the current * implementation at all. It can't even indirectly be tested. - * - * @test */ + #[Test] public function stdWrap_debugData(): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['devIPmask'] = '*'; @@ -4332,11 +4224,11 @@ final class ContentObjectRendererTest extends UnitTestCase * easily intercepted. The test is done indirectly by catching the * frontend output of debug. * - * @test - * @dataProvider stdWrap_debugFuncDataProvider * @param bool $expectArray If cast to array is expected. * @param mixed $confDebugFunc The configuration for $conf['debugFunc']. */ + #[DataProvider('stdWrap_debugFuncDataProvider')] + #[Test] public function stdWrap_debugFunc(bool $expectArray, mixed $confDebugFunc): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['devIPmask'] = '*'; @@ -4418,12 +4310,12 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Check if doubleBrTag works properly * - * @test - * @dataProvider stdWrapDoubleBrTagDataProvider * @param string $expected The expected value. * @param string $input The input value. * @param array $config The property 'doubleBrTag'. */ + #[DataProvider('stdWrapDoubleBrTagDataProvider')] + #[Test] public function stdWrap_doubleBrTag(string $expected, string $input, array $config): void { self::assertEquals($expected, $this->subject->stdWrap_doubleBrTag($input, $config)); @@ -4438,9 +4330,8 @@ final class ContentObjectRendererTest extends UnitTestCase * - Parameter 1 is $content. * - Parameter 2 is $conf['encapsLines']. * - Returns the return value. - * - * @test */ + #[Test] public function stdWrap_encapsLines(): void { $content = StringUtility::getUniqueId('content'); @@ -4466,10 +4357,9 @@ final class ContentObjectRendererTest extends UnitTestCase * Check if stdWrap_encapsLines uses self closing tags * only for allowed tags according to * @see https://www.w3.org/TR/html5/syntax.html#void-elements - * - * @test - * @dataProvider html5SelfClosingTagsDataprovider */ + #[DataProvider('html5SelfClosingTagsDataprovider')] + #[Test] public function stdWrap_encapsLines_HTML5SelfClosingTags(string $input, string $expected): void { $rteParseFunc = self::getLibParseFunc_RTE(); @@ -4618,11 +4508,11 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Check if encodeForJavaScriptValue works properly. * - * @test - * @dataProvider stdWrap_encodeForJavaScriptValueDataProvider * @param string $expect The expected output. * @param string $content The given input. */ + #[DataProvider('stdWrap_encodeForJavaScriptValueDataProvider')] + #[Test] public function stdWrap_encodeForJavaScriptValue(string $expect, string $content): void { self::assertSame( @@ -4653,11 +4543,11 @@ final class ContentObjectRendererTest extends UnitTestCase * can't mock static methods, to prove they are called, all we do here * is to provide a few smoke tests. * - * @test - * @dataProvider stdWrap_expandListDataProvider * @param string $expected The expected output. * @param string $content The given content. */ + #[DataProvider('stdWrap_expandListDataProvider')] + #[Test] public function stdWrap_expandList(string $expected, string $content): void { self::assertEquals( @@ -4673,9 +4563,8 @@ final class ContentObjectRendererTest extends UnitTestCase * * - calls getFieldVal * - passes conf['field'] as parameter - * - * @test */ + #[Test] public function stdWrap_field(): void { $expect = StringUtility::getUniqueId('expect'); @@ -4779,13 +4668,13 @@ final class ContentObjectRendererTest extends UnitTestCase * - False triggers a stop of further rendering. * - False returns '', true the given content as is. * - * @test - * @dataProvider stdWrap_fieldRequiredDataProvider * @param string $expect The expected output. * @param bool $stop Expect stop further rendering. * @param string $content The given input. * @param array $conf The given configuration. */ + #[DataProvider('stdWrap_fieldRequiredDataProvider')] + #[Test] public function stdWrap_fieldRequired(string $expect, bool $stop, string $content, array $conf): void { $data = [ @@ -4854,12 +4743,12 @@ final class ContentObjectRendererTest extends UnitTestCase * - Returns '' for invalid algorithm. * - Value can be processed by stdWrap. * - * @test - * @dataProvider hashDataProvider * @param string $expect The expected output. * @param string $content The given content. * @param array $conf The given configuration. */ + #[DataProvider('hashDataProvider')] + #[Test] public function stdWrap_hash(string $expect, string $content, array $conf): void { self::assertSame( @@ -4902,12 +4791,12 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Check if stdWrap_htmlSpecialChars works properly * - * @test - * @dataProvider stdWrap_htmlSpecialCharsDataProvider * @param string $expected The expected value. * @param string $input The input value. * @param array $conf htmlSpecialChars.preserveEntities */ + #[DataProvider('stdWrap_htmlSpecialCharsDataProvider')] + #[Test] public function stdWrap_htmlSpecialChars(string $expected, string $input, array $conf): void { self::assertSame( @@ -5006,8 +4895,6 @@ final class ContentObjectRendererTest extends UnitTestCase * - 'False' triggers a stop of further rendering. * - Returns the content as is or '' if false. * - * @test - * @dataProvider stdWrap_ifDataProvider * @param string $expect The expected output. * @param bool $stop Expect stop further rendering. * @param string $content The given content. @@ -5015,6 +4902,8 @@ final class ContentObjectRendererTest extends UnitTestCase * @param int $times Times checkIf is called (0 or 1). * @param bool $will Return of checkIf (null if not called). */ + #[DataProvider('stdWrap_ifDataProvider')] + #[Test] public function stdWrap_if(string $expect, bool $stop, string $content, array $conf, int $times, bool $will): void { $subject = $this->getAccessibleMock( @@ -5064,11 +4953,11 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Check if checkIf works properly. * - * @test - * @dataProvider checkIfDataProvider * @param bool $expect Whether result should be true or false. * @param array $conf TypoScript configuration to pass into checkIf */ + #[DataProvider('checkIfDataProvider')] + #[Test] public function checkIf(bool $expect, array $conf): void { $subject = $this->getAccessibleMock( @@ -5112,12 +5001,12 @@ final class ContentObjectRendererTest extends UnitTestCase * - The check for blank is done by comparing the trimmed content * with the empty string for equality. * - * @test - * @dataProvider stdWrap_ifBlankDataProvider * @param mixed $expect * @param mixed $content The given input. * @param array $conf The given configuration. */ + #[DataProvider('stdWrap_ifBlankDataProvider')] + #[Test] public function stdWrap_ifBlank(mixed $expect, mixed $content, array $conf): void { $result = $this->subject->stdWrap_ifBlank($content, $conf); @@ -5166,12 +5055,12 @@ final class ContentObjectRendererTest extends UnitTestCase * - Otherwise returns $conf['ifEmpty']. * - Empty is checked by cast to boolean after trimming. * - * @test - * @dataProvider stdWrap_ifEmptyDataProvider * @param mixed $expect The expected output. * @param mixed $content The given content. * @param array $conf The given configuration. */ + #[DataProvider('stdWrap_ifEmptyDataProvider')] + #[Test] public function stdWrap_ifEmpty(mixed $expect, mixed $content, array $conf): void { $result = $this->subject->stdWrap_ifEmpty($content, $conf); @@ -5207,12 +5096,12 @@ final class ContentObjectRendererTest extends UnitTestCase * - Otherwise returns $conf['ifNull']. * - Null is strictly checked by identity with null. * - * @test - * @dataProvider stdWrap_ifNullDataProvider * @param mixed $expect * @param mixed $content The given input. * @param array $conf The given configuration. */ + #[DataProvider('stdWrap_ifNullDataProvider')] + #[Test] public function stdWrap_ifNull(mixed $expect, mixed $content, array $conf): void { $result = $this->subject->stdWrap_ifNull($content, $conf); @@ -5264,9 +5153,9 @@ final class ContentObjectRendererTest extends UnitTestCase * @param string $expected The expected value. * @param string $input The input value. * @param array $conf Property: innerWrap - * @test - * @dataProvider stdWrap_innerWrapDataProvider */ + #[DataProvider('stdWrap_innerWrapDataProvider')] + #[Test] public function stdWrap_innerWrap(string $expected, string $input, array $conf): void { self::assertSame( @@ -5320,9 +5209,9 @@ final class ContentObjectRendererTest extends UnitTestCase * @param string $expected The expected value. * @param string $input The input value. * @param array $conf Property: innerWrap2 - * @test - * @dataProvider stdWrap_innerWrap2DataProvider */ + #[DataProvider('stdWrap_innerWrap2DataProvider')] + #[Test] public function stdWrap_innerWrap2(string $expected, string $input, array $conf): void { self::assertSame( @@ -5339,9 +5228,8 @@ final class ContentObjectRendererTest extends UnitTestCase * - Delegates to method insertData. * - Parameter 1 is $content. * - Returns the return value. - * - * @test */ + #[Test] public function stdWrap_insertData(): void { $content = StringUtility::getUniqueId('content'); @@ -5373,11 +5261,11 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Check that stdWrap_insertData works properly with given input. * - * @test - * @dataProvider stdWrap_insertDataProvider * @param mixed $expect The expected output. * @param string $content The given input. */ + #[DataProvider('stdWrap_insertDataProvider')] + #[Test] public function stdWrap_insertDataAndInputExamples(mixed $expect, string $content): void { self::assertSame($expect, $this->subject->stdWrap_insertData($content)); @@ -5427,11 +5315,11 @@ final class ContentObjectRendererTest extends UnitTestCase * * * - * @test - * @dataProvider stdWrap_intvalDataProvider * @param int $expect The expected output. * @param mixed $content The given input. */ + #[DataProvider('stdWrap_intvalDataProvider')] + #[Test] public function stdWrap_intval(int $expect, mixed $content): void { self::assertSame($expect, $this->subject->stdWrap_intval($content)); @@ -5487,9 +5375,9 @@ final class ContentObjectRendererTest extends UnitTestCase * * @param string $expected The expected value. * @param string $input The input value. - * @test - * @dataProvider stdWrapKeywordsDataProvider */ + #[DataProvider('stdWrapKeywordsDataProvider')] + #[Test] public function stdWrap_keywords(string $expected, string $input): void { self::assertSame($expected, $this->subject->stdWrap_keywords($input)); @@ -5563,9 +5451,9 @@ final class ContentObjectRendererTest extends UnitTestCase * @param string $input The input value. * @param array $conf Properties: lang.xy. * @param string $language For $TSFE->config[config][language]. - * @test - * @dataProvider stdWrap_langDataProvider */ + #[DataProvider('stdWrap_langDataProvider')] + #[Test] public function stdWrap_langViaSiteLanguage(string $expected, string $input, array $conf, string $language): void { $site = $this->createSiteWithLanguage([ @@ -5590,9 +5478,8 @@ final class ContentObjectRendererTest extends UnitTestCase * - Parameter 2 is $conf['listNum']. * - Parameter 3 is $conf['listNum.']['splitChar']. * - Returns the return value. - * - * @test */ + #[Test] public function stdWrap_listNum(): void { $content = StringUtility::getUniqueId('content'); @@ -5692,12 +5579,12 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Check if stdWrap_noTrimWrap works properly. * - * @test - * @dataProvider stdWrap_noTrimWrapDataProvider * @param string $expect The expected output. * @param string $content The given input. * @param array $conf The given configuration. */ + #[DataProvider('stdWrap_noTrimWrapDataProvider')] + #[Test] public function stdWrap_noTrimWrap(string $expect, string $content, array $conf): void { self::assertSame( @@ -5714,9 +5601,8 @@ final class ContentObjectRendererTest extends UnitTestCase * - Delegates to method numRows. * - Parameter is $conf['numRows.']. * - Returns the return value. - * - * @test */ + #[Test] public function stdWrap_numRows(): void { $conf = [ @@ -5742,9 +5628,8 @@ final class ContentObjectRendererTest extends UnitTestCase * - Parameter 1 is $content. * - Parameter 2 is $conf['numberFormat.']. * - Returns the return value. - * - * @test */ + #[Test] public function stdWrap_numberFormat(): void { $content = StringUtility::getUniqueId('content'); @@ -5811,9 +5696,9 @@ final class ContentObjectRendererTest extends UnitTestCase * @param string $expected The expected value. * @param string $input The input value. * @param array $conf Property: outerWrap - * @test - * @dataProvider stdWrap_outerWrapDataProvider */ + #[DataProvider('stdWrap_outerWrapDataProvider')] + #[Test] public function stdWrap_outerWrap(string $expected, string $input, array $conf): void { self::assertSame( @@ -5896,10 +5781,10 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Check if stdWrap_override works properly. * - * @test - * @dataProvider stdWrap_overrideDataProvider * @param array $conf Property: setCurrent */ + #[DataProvider('stdWrap_overrideDataProvider')] + #[Test] public function stdWrap_override(mixed $expect, string $content, array $conf): void { self::assertSame( @@ -5918,9 +5803,8 @@ final class ContentObjectRendererTest extends UnitTestCase * - Parameter 2 is $conf['parseFunc.']. * - Parameter 3 is $conf['parseFunc']. * - Returns the return. - * - * @test */ + #[Test] public function stdWrap_parseFunc(): void { $content = StringUtility::getUniqueId('content'); @@ -5952,9 +5836,8 @@ final class ContentObjectRendererTest extends UnitTestCase * - Parameter 2 is $conf['postCObject.']. * - Parameter 3 is '/stdWrap/.postCObject'. * - Returns the return value appended by $content. - * - * @test */ + #[Test] public function stdWrap_postCObject(): void { $debugKey = '/stdWrap/.postCObject'; @@ -5985,9 +5868,8 @@ final class ContentObjectRendererTest extends UnitTestCase * - Parameter 1 is $conf['postUserFunc']. * - Parameter 2 is $conf['postUserFunc.']. * - Returns the return value. - * - * @test */ + #[Test] public function stdWrap_postUserFunc(): void { $content = StringUtility::getUniqueId('content'); @@ -6024,9 +5906,8 @@ final class ContentObjectRendererTest extends UnitTestCase * - type: 'POSTUSERFUNC' * - cObj: serialized content renderer object * - Returns "<!-- $substKey -->". - * - * @test */ + #[Test] public function stdWrap_postUserFuncInt(): void { $uniqueHash = StringUtility::getUniqueId('uniqueHash'); @@ -6075,9 +5956,8 @@ final class ContentObjectRendererTest extends UnitTestCase * - Parameter 2 is $conf['preCObject.']. * - Parameter 3 is '/stdWrap/.preCObject'. * - Returns the return value appended by $content. - * - * @test */ + #[Test] public function stdWrap_preCObject(): void { $debugKey = '/stdWrap/.preCObject'; @@ -6110,9 +5990,8 @@ final class ContentObjectRendererTest extends UnitTestCase * - Parameter 2 is $conf['preIfEmptyListNum']. * - Parameter 3 is $conf['preIfEmptyListNum.']['splitChar']. * - Returns the return value. - * - * @test */ + #[Test] public function stdWrap_preIfEmptyListNum(): void { $content = StringUtility::getUniqueId('content'); @@ -6176,10 +6055,9 @@ final class ContentObjectRendererTest extends UnitTestCase * - Returns $content as is, * - if $conf['prefixComment'] is empty. * - if 'config.disablePrefixComment' is configured by the frontend. - * - * @test - * @dataProvider stdWrap_prefixCommentDataProvider */ + #[DataProvider('stdWrap_prefixCommentDataProvider')] + #[Test] public function stdWrap_prefixComment( string $expect, string $content, @@ -6213,9 +6091,8 @@ final class ContentObjectRendererTest extends UnitTestCase * - Second parameter is $conf['prepend.']. * - Third parameter is '/stdWrap/.prepend'. * - Returns the return value prepended to $content. - * - * @test */ + #[Test] public function stdWrap_prepend(): void { $debugKey = '/stdWrap/.prepend'; @@ -6268,12 +6145,12 @@ final class ContentObjectRendererTest extends UnitTestCase * duplicate the testing of calculateWithParentheses just a few * smoke tests are done here. * - * @test - * @dataProvider stdWrap_prioriCalcDataProvider * @param mixed $expect The expected output. * @param string $content The given content. * @param array $conf The given configuration. */ + #[DataProvider('stdWrap_prioriCalcDataProvider')] + #[Test] public function stdWrap_prioriCalc(mixed $expect, string $content, array $conf): void { $result = $this->subject->stdWrap_prioriCalc($content, $conf); @@ -6290,9 +6167,8 @@ final class ContentObjectRendererTest extends UnitTestCase * - Parameter 2 is $conf['preUserFunc.']. * - Parameter 3 is $content. * - Returns the return value. - * - * @test */ + #[Test] public function stdWrap_preUserFunc(): void { $content = StringUtility::getUniqueId('content'); @@ -6333,11 +6209,11 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Check if rawUrlEncode works properly. * - * @test - * @dataProvider stdWrap_rawUrlEncodeDataProvider * @param string $expect The expected output. * @param string $content The given input. */ + #[DataProvider('stdWrap_rawUrlEncodeDataProvider')] + #[Test] public function stdWrap_rawUrlEncode(string $expect, string $content): void { self::assertSame( @@ -6355,9 +6231,8 @@ final class ContentObjectRendererTest extends UnitTestCase * - Parameter 1 is $content. * - Parameter 2 is $conf['replacement.']. * - Returns the return value. - * - * @test */ + #[Test] public function stdWrap_replacement(): void { $content = StringUtility::getUniqueId('content'); @@ -6412,12 +6287,12 @@ final class ContentObjectRendererTest extends UnitTestCase * - Empty content triggers a stop of further rendering. * - Returns the content as is or '' for empty content. * - * @test - * @dataProvider stdWrap_requiredDataProvider * @param mixed $expect The expected output. * @param bool $stop Expect stop further rendering. * @param mixed $content The given input. */ + #[DataProvider('stdWrap_requiredDataProvider')] + #[Test] public function stdWrap_required(mixed $expect, bool $stop, mixed $content): void { $subject = $this->subject; @@ -6436,9 +6311,8 @@ final class ContentObjectRendererTest extends UnitTestCase * - Parameter 1 is $content. * - Parameter 2 is $conf['round.']. * - Returns the return value. - * - * @test */ + #[Test] public function stdWrap_round(): void { $content = StringUtility::getUniqueId('content'); @@ -6459,9 +6333,8 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Check if stdWrap_setContentToCurrent works properly. - * - * @test */ + #[Test] public function stdWrap_setContentToCurrent(): void { $content = StringUtility::getUniqueId('content'); @@ -6515,11 +6388,11 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Check if stdWrap_setCurrent works properly. * - * @test - * @dataProvider stdWrap_setCurrentDataProvider * @param string $input The input value. * @param array $conf Property: setCurrent */ + #[DataProvider('stdWrap_setCurrentDataProvider')] + #[Test] public function stdWrap_setCurrent(string $input, array $conf): void { if (isset($conf['setCurrent'])) { @@ -6540,9 +6413,8 @@ final class ContentObjectRendererTest extends UnitTestCase * - Parameter 1 is $content. * - Parameter 2 is $conf['split.']. * - Returns the return value. - * - * @test */ + #[Test] public function stdWrap_split(): void { $content = StringUtility::getUniqueId('content'); @@ -6572,9 +6444,8 @@ final class ContentObjectRendererTest extends UnitTestCase * - Parameter 1 is $content. * - Parameter 2 is $conf['stdWrap.']. * - Returns the return value. - * - * @test */ + #[Test] public function stdWrap_stdWrap(): void { $content = StringUtility::getUniqueId('content'); @@ -6661,10 +6532,8 @@ final class ContentObjectRendererTest extends UnitTestCase ]; } - /** - * @dataProvider stdWrap_stdWrapValueDataProvider - * @test - */ + #[DataProvider('stdWrap_stdWrapValueDataProvider')] + #[Test] public function stdWrap_stdWrapValue( string $key, array $configuration, @@ -6786,12 +6655,12 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Check if stdWrap_strPad works properly. * - * @test - * @dataProvider stdWrap_strPadDataProvider * @param string $expect The expected output. * @param string $content The given input. * @param array $conf The configuration of 'strPad.'. */ + #[DataProvider('stdWrap_strPadDataProvider')] + #[Test] public function stdWrap_strPad(string $expect, string $content, array $conf): void { $conf = ['strPad.' => $conf]; @@ -6833,13 +6702,13 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Check if stdWrap_strftime works properly. * - * @test - * @dataProvider stdWrap_strftimeDataProvider * @param string $expect The expected output. * @param mixed $content The given input. * @param array $conf The given configuration. * @param int $now Fictive execution time. */ + #[DataProvider('stdWrap_strftimeDataProvider')] + #[Test] public function stdWrap_strftime(string $expect, mixed $content, array $conf, int $now): void { // Save current timezone and set to UTC to make the system under test @@ -6858,9 +6727,8 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Test for the stdWrap_stripHtml - * - * @test */ + #[Test] public function stdWrap_stripHtml(): void { $content = '<html><p>Hello <span class="inline">inline tag<span>!</p><p>Hello!</p></html>'; @@ -6912,12 +6780,12 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Check if stdWrap_strtotime works properly. * - * @test - * @dataProvider stdWrap_strtotimeDataProvider * @param mixed $expect The expected output. * @param string $content The given input. * @param array $conf The given configuration. */ + #[DataProvider('stdWrap_strtotimeDataProvider')] + #[Test] public function stdWrap_strtotime(mixed $expect, string $content, array $conf): void { // Set exec_time to a hard timestamp @@ -6944,9 +6812,8 @@ final class ContentObjectRendererTest extends UnitTestCase * - Parameter 1 is $content. * - Parameter 2 is $conf['substring']. * - Returns the return value. - * - * @test */ + #[Test] public function stdWrap_substring(): void { $content = StringUtility::getUniqueId('content'); @@ -7020,10 +6887,9 @@ final class ContentObjectRendererTest extends UnitTestCase * - -1 => '-1' * - 1.0 => '1' * - 1.1 => '1.1' - * - * @test - * @dataProvider stdWrap_trimDataProvider */ + #[DataProvider('stdWrap_trimDataProvider')] + #[Test] public function stdWrap_trim(string $expect, mixed $content): void { $result = $this->subject->stdWrap_trim($content); @@ -7038,9 +6904,8 @@ final class ContentObjectRendererTest extends UnitTestCase * - Parameter 1 is $content. * - Parameter 2 is $conf['typolink.']. * - Returns the return value. - * - * @test */ + #[Test] public function stdWrap_typolink(): void { $content = StringUtility::getUniqueId('content'); @@ -7114,9 +6979,9 @@ final class ContentObjectRendererTest extends UnitTestCase * @param string $expected The expected value. * @param string $input The input value. * @param array $conf Properties: wrap, wrap.splitChar - * @test - * @dataProvider stdWrap_wrapDataProvider */ + #[DataProvider('stdWrap_wrapDataProvider')] + #[Test] public function stdWrap_wrap(string $expected, string $input, array $conf): void { self::assertSame( @@ -7180,9 +7045,9 @@ final class ContentObjectRendererTest extends UnitTestCase * @param string $expected The expected value. * @param string $input The input value. * @param array $conf Properties: wrap2, wrap2.splitChar - * @test - * @dataProvider stdWrap_wrap2DataProvider */ + #[DataProvider('stdWrap_wrap2DataProvider')] + #[Test] public function stdWrap_wrap2(string $expected, string $input, array $conf): void { self::assertSame($expected, $this->subject->stdWrap_wrap2($input, $conf)); @@ -7243,9 +7108,9 @@ final class ContentObjectRendererTest extends UnitTestCase * @param string $expected The expected value. * @param string $input The input value. * @param array $conf Properties: wrap3, wrap3.splitChar - * @test - * @dataProvider stdWrap_wrap3DataProvider */ + #[DataProvider('stdWrap_wrap3DataProvider')] + #[Test] public function stdWrap_wrap3(string $expected, string $input, array $conf): void { self::assertSame($expected, $this->subject->stdWrap_wrap3($input, $conf)); @@ -7280,12 +7145,12 @@ final class ContentObjectRendererTest extends UnitTestCase * - Returns the content as is, * - if $conf['wrapAlign'] evals to false after being trimmed. * - * @test - * @dataProvider stdWrap_wrapAlignDataProvider * @param string $expect The expected output. * @param string $content The given content. * @param mixed $wrapAlignConf The given input. */ + #[DataProvider('stdWrap_wrapAlignDataProvider')] + #[Test] public function stdWrap_wrapAlign(string $expect, string $content, mixed $wrapAlignConf): void { $conf = []; @@ -7301,7 +7166,6 @@ final class ContentObjectRendererTest extends UnitTestCase /*************************************************************************** * End of tests of stdWrap in alphabetical order ***************************************************************************/ - /*************************************************************************** * Begin: Mixed tests * @@ -7309,12 +7173,10 @@ final class ContentObjectRendererTest extends UnitTestCase * - Place tests in alphabetical order. * - Place data provider above test method. ***************************************************************************/ - /** * Check if getCurrentTable works properly. - * - * @test */ + #[Test] public function getCurrentTable(): void { self::assertEquals('tt_content', $this->subject->getCurrentTable()); @@ -7386,12 +7248,12 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Check if prefixComment works properly. * - * @test - * @dataProvider prefixCommentDataProvider * @param string $expect The expected output. * @param string $comment The parameter $comment. * @param string $content The parameter $content. */ + #[DataProvider('prefixCommentDataProvider')] + #[Test] public function prefixComment(string $expect, string $comment, string $content): void { // The parameter $conf is never used. Just provide null. @@ -7402,9 +7264,8 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Check setter and getter of currentFile work properly. - * - * @test */ + #[Test] public function setCurrentFile_getCurrentFile(): void { $storageMock = $this->createMock(ResourceStorage::class); @@ -7419,9 +7280,9 @@ final class ContentObjectRendererTest extends UnitTestCase * Show it stored to $this->data[$this->currentValKey]. * (The default value of currentValKey is tested elsewhere.) * - * @test * @see stdWrap_current() */ + #[Test] public function setCurrentVal_getCurrentVal(): void { $key = StringUtility::getUniqueId(); @@ -7434,9 +7295,8 @@ final class ContentObjectRendererTest extends UnitTestCase /** * Check setter and getter of userObjectType work properly. - * - * @test */ + #[Test] public function setUserObjectType_getUserObjectType(): void { $value = StringUtility::getUniqueId(); @@ -7514,10 +7374,8 @@ final class ContentObjectRendererTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider getGlobalDataProvider - */ + #[DataProvider('getGlobalDataProvider')] + #[Test] public function getGlobalReturnsExpectedResult(mixed $expected, string $key, ?array $globals, ?array $source): void { if (isset($globals['HTTP_SERVER_VARS'])) { @@ -7544,7 +7402,7 @@ final class ContentObjectRendererTest extends UnitTestCase public function getContentObject( string $name, - \Psr\Http\Message\ServerRequestInterface $request, + ServerRequestInterface $request, ContentObjectRenderer $contentObjectRenderer ): ?AbstractContentObject { if (is_callable($this->getContentObjectCallbacks[$name] ?? null)) { @@ -7577,9 +7435,7 @@ final class ContentObjectRendererTest extends UnitTestCase }; } - /** - * @test - */ + #[Test] public function mergeTSRefResolvesRecursive(): void { $typoScriptString = @@ -7640,19 +7496,15 @@ final class ContentObjectRendererTest extends UnitTestCase } - /** - * @test - * @dataProvider listNumDataProvider - */ + #[DataProvider('listNumDataProvider')] + #[Test] public function listNum(string $expected, string $content, string $listNum, string $delimeter): void { $contentObjectRenderer = new ContentObjectRenderer(); self::assertEquals($expected, $contentObjectRenderer->listNum($content, $listNum, $delimeter)); } - /** - * @test - */ + #[Test] public function listNumWithListNumRandReturnsString(): void { $contentObjectRenderer = new ContentObjectRenderer(); diff --git a/typo3/sysext/frontend/Tests/Unit/ContentObject/Exception/ProductionExceptionHandlerTest.php b/typo3/sysext/frontend/Tests/Unit/ContentObject/Exception/ProductionExceptionHandlerTest.php index e1357fab6904e73b4b4495e1d296d5d84bf9a05a..74ca20a9a32796eb62c6c593548512646d5ac88e 100644 --- a/typo3/sysext/frontend/Tests/Unit/ContentObject/Exception/ProductionExceptionHandlerTest.php +++ b/typo3/sysext/frontend/Tests/Unit/ContentObject/Exception/ProductionExceptionHandlerTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Frontend\Tests\Unit\ContentObject\Exception; +use PHPUnit\Framework\Attributes\Test; use Psr\Log\NullLogger; use TYPO3\CMS\Core\Context\Context; use TYPO3\CMS\Core\Context\DateTimeAspect; @@ -29,9 +30,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ProductionExceptionHandlerTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function relayPropagateResponseException(): void { $exception = new PropagateResponseException(new HtmlResponse(''), 1607328584); @@ -41,9 +40,7 @@ final class ProductionExceptionHandlerTest extends UnitTestCase $subject->handle($exception); } - /** - * @test - */ + #[Test] public function relayImmediateResponseException(): void { $exception = new ImmediateResponseException(new HtmlResponse(''), 1533939251); @@ -53,9 +50,7 @@ final class ProductionExceptionHandlerTest extends UnitTestCase $subject->handle($exception); } - /** - * @test - */ + #[Test] public function handleReturnsMessageWithResolvedErrorCode(): void { $currentTimestamp = 1629993829; @@ -76,9 +71,7 @@ final class ProductionExceptionHandlerTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function handleReturnsCustomErrorMessageWithResolvedErrorCode(): void { $currentTimestamp = 1629993829; @@ -102,9 +95,7 @@ final class ProductionExceptionHandlerTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function handleReturnsCustomErrorMessageWithResolvedErrorCodeForLegacyPlaceholder(): void { $currentTimestamp = 1629993829; diff --git a/typo3/sysext/frontend/Tests/Unit/ContentObject/ImageContentObjectTest.php b/typo3/sysext/frontend/Tests/Unit/ContentObject/ImageContentObjectTest.php index de5f807ee41895b50e4fe495c4442ea228fe43b3..b69ca64241d5bb6da7c868b651111b5948582064 100644 --- a/typo3/sysext/frontend/Tests/Unit/ContentObject/ImageContentObjectTest.php +++ b/typo3/sysext/frontend/Tests/Unit/ContentObject/ImageContentObjectTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Frontend\Tests\Unit\ContentObject; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Core\Cache\Frontend\NullFrontend; use TYPO3\CMS\Core\Http\ServerRequest; @@ -69,10 +71,9 @@ final class ImageContentObjectTest extends UnitTestCase /** * Make sure that the rendering falls back to the classic <img style if nothing else is found - * - * @test - * @dataProvider getImageTagTemplateFallsBackToDefaultTemplateIfNoTemplateIsFoundDataProvider */ + #[DataProvider('getImageTagTemplateFallsBackToDefaultTemplateIfNoTemplateIsFoundDataProvider')] + #[Test] public function getImageTagTemplateFallsBackToDefaultTemplateIfNoTemplateIsFound(?string $key, ?array $configuration): void { $defaultImgTagTemplate = '<img src="###SRC###" width="###WIDTH###" height="###HEIGHT###" ###PARAMS### ###ALTPARAMS### ###SELFCLOSINGTAGSLASH###>'; @@ -100,10 +101,9 @@ final class ImageContentObjectTest extends UnitTestCase /** * Assure if a layoutKey and layout is given the selected layout is returned - * - * @test - * @dataProvider getImageTagTemplateReturnTemplateElementIdentifiedByKeyDataProvider */ + #[DataProvider('getImageTagTemplateReturnTemplateElementIdentifiedByKeyDataProvider')] + #[Test] public function getImageTagTemplateReturnTemplateElementIdentifiedByKey(string $key, array $configuration, string $expectation): void { $result = $this->subject->_call('getImageTagTemplate', $key, $configuration); @@ -121,10 +121,9 @@ final class ImageContentObjectTest extends UnitTestCase /** * Make sure the source collection is empty if no valid configuration or source collection is defined - * - * @test - * @dataProvider getImageSourceCollectionReturnsEmptyStringIfNoSourcesAreDefinedDataProvider */ + #[DataProvider('getImageSourceCollectionReturnsEmptyStringIfNoSourcesAreDefinedDataProvider')] + #[Test] public function getImageSourceCollectionReturnsEmptyStringIfNoSourcesAreDefined( ?string $layoutKey, ?array $configuration, @@ -136,9 +135,8 @@ final class ImageContentObjectTest extends UnitTestCase /** * Make sure the generation of subimages calls the generation of the subimages and uses the layout -> source template - * - * @test */ + #[Test] public function getImageSourceCollectionRendersDefinedSources(): void { $cObj = $this->getMockBuilder(ContentObjectRenderer::class) @@ -227,10 +225,9 @@ final class ImageContentObjectTest extends UnitTestCase /** * Make sure the generation of subimages renders the expected HTML Code for the sourceset - * - * @test - * @dataProvider getImageSourceCollectionRendersDefinedLayoutKeyDataDefaultProvider */ + #[DataProvider('getImageSourceCollectionRendersDefinedLayoutKeyDataDefaultProvider')] + #[Test] public function getImageSourceCollectionRendersDefinedLayoutKeyDefault(string $layoutKey, array $configuration): void { $cObj = $this->getMockBuilder(ContentObjectRenderer::class) @@ -342,10 +339,9 @@ final class ImageContentObjectTest extends UnitTestCase /** * Make sure the generation of subimages renders the expected HTML Code for the sourceset - * - * @test - * @dataProvider getImageSourceCollectionRendersDefinedLayoutKeyDataDataProvider */ + #[DataProvider('getImageSourceCollectionRendersDefinedLayoutKeyDataDataProvider')] + #[Test] public function getImageSourceCollectionRendersDefinedLayoutKeyData( string $layoutKey, array $configuration, @@ -392,9 +388,8 @@ final class ImageContentObjectTest extends UnitTestCase /** * Make sure the hook in get sourceCollection is called - * - * @test */ + #[Test] public function getImageSourceCollectionHookCalled(): void { $cObj = $this->getAccessibleMock( @@ -518,12 +513,12 @@ final class ImageContentObjectTest extends UnitTestCase /** * Check if linkWrap works properly. * - * @test - * @dataProvider linkWrapDataProvider * @param string $expected The expected output. * @param string $content The parameter $content. * @param string|null $wrap The parameter $wrap. */ + #[DataProvider('linkWrapDataProvider')] + #[Test] public function linkWrap(string $expected, string $content, $wrap): void { $GLOBALS['TSFE']->config = ['rootLine' => [3 => ['uid' => 55]]]; diff --git a/typo3/sysext/frontend/Tests/Unit/ContentObject/Menu/AbstractMenuContentObjectTest.php b/typo3/sysext/frontend/Tests/Unit/ContentObject/Menu/AbstractMenuContentObjectTest.php index 0fe2d887f0b49752e0f124a430f5863b3869a128..2b3c84dfc5f84c514094b5753e99a852b62b811f 100644 --- a/typo3/sysext/frontend/Tests/Unit/ContentObject/Menu/AbstractMenuContentObjectTest.php +++ b/typo3/sysext/frontend/Tests/Unit/ContentObject/Menu/AbstractMenuContentObjectTest.php @@ -18,6 +18,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Frontend\Tests\Unit\ContentObject\Menu; use Doctrine\DBAL\Result; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Core\Cache\CacheManager; use TYPO3\CMS\Core\Cache\Frontend\FrontendInterface; @@ -128,9 +130,7 @@ final class AbstractMenuContentObjectTest extends UnitTestCase GeneralUtility::addInstance(ConnectionPool::class, $connectionPoolMock); } - /** - * @test - */ + #[Test] public function sectionIndexReturnsEmptyArrayIfTheRequestedPageCouldNotBeFetched(): void { $this->prepareSectionIndexTest(); @@ -141,9 +141,7 @@ final class AbstractMenuContentObjectTest extends UnitTestCase self::assertEquals([], $result); } - /** - * @test - */ + #[Test] public function sectionIndexUsesTheInternalIdIfNoPageIdWasGiven(): void { $this->prepareSectionIndexTest(); @@ -155,9 +153,7 @@ final class AbstractMenuContentObjectTest extends UnitTestCase self::assertEquals([], $result); } - /** - * @test - */ + #[Test] public function sectionIndexThrowsAnExceptionIfTheInternalQueryFails(): void { $this->expectException(\UnexpectedValueException::class); @@ -175,9 +171,7 @@ final class AbstractMenuContentObjectTest extends UnitTestCase $this->subject->_call('sectionIndex', 'field'); } - /** - * @test - */ + #[Test] public function sectionIndexReturnsOverlaidRowBasedOnTheLanguageOfTheGivenPage(): void { $statementMock = $this->createMock(Result::class); @@ -243,10 +237,8 @@ final class AbstractMenuContentObjectTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider sectionIndexFiltersDataProvider - */ + #[DataProvider('sectionIndexFiltersDataProvider')] + #[Test] public function sectionIndexFilters(int $expectedAmount, array $dataRow): void { $statementMock = $this->createMock(Result::class); @@ -306,10 +298,8 @@ final class AbstractMenuContentObjectTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider sectionIndexQueriesWithDifferentColPosDataProvider - */ + #[DataProvider('sectionIndexQueriesWithDifferentColPosDataProvider')] + #[Test] public function sectionIndexQueriesWithDifferentColPos(array $configuration, string $colPosFromStdWrapValue, string $whereClausePrefix): void { $statementMock = $this->createMock(Result::class); @@ -428,10 +418,8 @@ final class AbstractMenuContentObjectTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider isItemStateChecksExcludeUidListDataProvider - */ + #[DataProvider('isItemStateChecksExcludeUidListDataProvider')] + #[Test] public function isItemStateChecksExcludeUidList(array $menuItems, string $excludeUidList, bool $expectedResult): void { $subject = $this->getAccessibleMockForAbstractClass(AbstractMenuContentObject::class, [], '', true, true, true, ['getRuntimeCache']); @@ -623,10 +611,8 @@ final class AbstractMenuContentObjectTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider menuTypoLinkCreatesExpectedTypoLinkConfigurationDataProvider - */ + #[DataProvider('menuTypoLinkCreatesExpectedTypoLinkConfigurationDataProvider')] + #[Test] public function menuTypoLinkCreatesExpectedTypoLinkConfiguration(array $expected, array $mconf, array $page, string $oTarget, string|int $addParams = '', string|int $typeOverride = '', int|string|null $overrideId = null): void { $expected['page'] = new Page($page); diff --git a/typo3/sysext/frontend/Tests/Unit/ContentObject/Menu/MenuContentObjectFactoryTest.php b/typo3/sysext/frontend/Tests/Unit/ContentObject/Menu/MenuContentObjectFactoryTest.php index c661b7b88292d6595a649957fb0d5f750a864280..6d4968bc925c640c2255441fa71170d96bbda38f 100644 --- a/typo3/sysext/frontend/Tests/Unit/ContentObject/Menu/MenuContentObjectFactoryTest.php +++ b/typo3/sysext/frontend/Tests/Unit/ContentObject/Menu/MenuContentObjectFactoryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Frontend\Tests\Unit\ContentObject\Menu; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Utility\StringUtility; use TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject; use TYPO3\CMS\Frontend\ContentObject\Menu\Exception\NoSuchMenuTypeException; @@ -25,9 +26,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class MenuContentObjectFactoryTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getMenuObjectByTypeThrowsExceptionForUnknownType(): void { $this->expectException(NoSuchMenuTypeException::class); @@ -36,27 +35,21 @@ final class MenuContentObjectFactoryTest extends UnitTestCase $factory->getMenuObjectByType(StringUtility::getUniqueId('foo_')); } - /** - * @test - */ + #[Test] public function getMenuObjectByTypeReturnsObjectForRegisteredMenuType(): void { $factory = new MenuContentObjectFactory(); self::assertIsObject($factory->getMenuObjectByType('TMENU')); } - /** - * @test - */ + #[Test] public function getMenuObjectByTypeReturnsObjectWithLowercasedMenuType(): void { $factory = new MenuContentObjectFactory(); self::assertIsObject($factory->getMenuObjectByType('tmenu')); } - /** - * @test - */ + #[Test] public function getMenuObjectByTypeReturnsInstanceOfOwnRegisteredTypeInsteadOfInternalType(): void { $factory = new MenuContentObjectFactory(); @@ -67,9 +60,7 @@ final class MenuContentObjectFactoryTest extends UnitTestCase self::assertInstanceOf($selfClassName, $factory->getMenuObjectByType('TMENU')); } - /** - * @test - */ + #[Test] public function getMenuObjectByTypeReturnsInstanceOfNewRegisteredType(): void { $factory = new MenuContentObjectFactory(); diff --git a/typo3/sysext/frontend/Tests/Unit/Controller/ErrorControllerTest.php b/typo3/sysext/frontend/Tests/Unit/Controller/ErrorControllerTest.php index ac0b3b6054543b941501b62e24fa11493e4da961..9e34822ea78eb314808417179d9f6d61789b933d 100644 --- a/typo3/sysext/frontend/Tests/Unit/Controller/ErrorControllerTest.php +++ b/typo3/sysext/frontend/Tests/Unit/Controller/ErrorControllerTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Frontend\Tests\Unit\Controller; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Http\NormalizedParams; use TYPO3\CMS\Core\Http\ServerRequest; use TYPO3\CMS\Core\Information\Typo3Information; @@ -28,9 +29,7 @@ final class ErrorControllerTest extends UnitTestCase { protected bool $resetSingletonInstances = true; - /** - * @test - */ + #[Test] public function pageNotFoundHandlingReturns404ResponseIfNotConfigured(): void { $typo3InformationMock = $this->getMockBuilder(Typo3Information::class)->disableOriginalConstructor()->getMock(); @@ -44,9 +43,7 @@ final class ErrorControllerTest extends UnitTestCase self::assertStringContainsString('This test page was not found!', $response->getBody()->getContents()); } - /** - * @test - */ + #[Test] public function unavailableHandlingReturns503ResponseIfNotConfigured(): void { $typo3InformationMock = $this->getMockBuilder(Typo3Information::class)->disableOriginalConstructor()->getMock(); @@ -60,9 +57,7 @@ final class ErrorControllerTest extends UnitTestCase self::assertStringContainsString('This page is temporarily unavailable.', $response->getBody()->getContents()); } - /** - * @test - */ + #[Test] public function unavailableHandlingDoesNotTriggerDueToDevIpMask(): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['devIPmask'] = '*'; @@ -76,9 +71,7 @@ final class ErrorControllerTest extends UnitTestCase $subject->unavailableAction($request, 'All your system are belong to us!'); } - /** - * @test - */ + #[Test] public function internalErrorHandlingReturns500ResponseIfNotConfigured(): void { $typo3InformationMock = $this->getMockBuilder(Typo3Information::class)->disableOriginalConstructor()->getMock(); @@ -92,9 +85,7 @@ final class ErrorControllerTest extends UnitTestCase self::assertStringContainsString('All your system are belong to us!', $response->getBody()->getContents()); } - /** - * @test - */ + #[Test] public function internalErrorHandlingDoesNotTriggerDueToDevIpMask(): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['devIPmask'] = '*'; @@ -108,9 +99,7 @@ final class ErrorControllerTest extends UnitTestCase $subject->internalErrorAction($request, 'All your system are belong to us!'); } - /** - * @test - */ + #[Test] public function defaultErrorHandlerWithHtmlResponseIsChosenWhenNoSiteConfiguredForPageNotFoundAction(): void { $typo3InformationMock = $this->getMockBuilder(Typo3Information::class)->disableOriginalConstructor()->getMock(); @@ -125,9 +114,7 @@ final class ErrorControllerTest extends UnitTestCase self::assertStringContainsString('Error handler is not configured.', $response->getBody()->getContents()); } - /** - * @test - */ + #[Test] public function defaultErrorHandlerWithJsonResponseIsChosenWhenNoSiteConfiguredForPageNotFoundAction(): void { $request = new ServerRequest(); @@ -140,9 +127,7 @@ final class ErrorControllerTest extends UnitTestCase self::assertEquals(['reason' => 'Error handler is not configured.'], $responseContent); } - /** - * @test - */ + #[Test] public function defaultErrorHandlerWithHtmlResponseIsChosenWhenNoSiteConfiguredForUnavailableAction(): void { $typo3InformationMock = $this->getMockBuilder(Typo3Information::class)->disableOriginalConstructor()->getMock(); @@ -157,9 +142,7 @@ final class ErrorControllerTest extends UnitTestCase self::assertStringContainsString('Error handler is not configured.', $response->getBody()->getContents()); } - /** - * @test - */ + #[Test] public function defaultErrorHandlerWithJsonResponseIsChosenWhenNoSiteConfiguredForUnavailableAction(): void { $request = new ServerRequest(); @@ -172,9 +155,7 @@ final class ErrorControllerTest extends UnitTestCase self::assertEquals(['reason' => 'Error handler is not configured.'], $responseContent); } - /** - * @test - */ + #[Test] public function defaultErrorHandlerWithHtmlResponseIsChosenWhenNoSiteConfiguredForInternalErrorAction(): void { $typo3InformationMock = $this->getMockBuilder(Typo3Information::class)->disableOriginalConstructor()->getMock(); @@ -189,9 +170,7 @@ final class ErrorControllerTest extends UnitTestCase self::assertStringContainsString('Error handler is not configured.', $response->getBody()->getContents()); } - /** - * @test - */ + #[Test] public function defaultErrorHandlerWithJsonResponseIsChosenWhenNoSiteConfiguredForInternalErrorAction(): void { $request = new ServerRequest(); @@ -204,9 +183,7 @@ final class ErrorControllerTest extends UnitTestCase self::assertEquals(['reason' => 'Error handler is not configured.'], $responseContent); } - /** - * @test - */ + #[Test] public function defaultErrorHandlerWithHtmlResponseIsChosenWhenNoSiteConfiguredForAccessDeniedAction(): void { $typo3InformationMock = $this->getMockBuilder(Typo3Information::class)->disableOriginalConstructor()->getMock(); @@ -221,9 +198,7 @@ final class ErrorControllerTest extends UnitTestCase self::assertStringContainsString('Error handler is not configured.', $response->getBody()->getContents()); } - /** - * @test - */ + #[Test] public function defaultErrorHandlerWithJsonResponseIsChosenWhenNoSiteConfiguredForAccessDeniedAction(): void { $request = new ServerRequest(); diff --git a/typo3/sysext/frontend/Tests/Unit/Controller/TypoScriptFrontendControllerTest.php b/typo3/sysext/frontend/Tests/Unit/Controller/TypoScriptFrontendControllerTest.php index 7be3e682f787e70f39146dbceac915a44d192d61..d03c4c4d200d77d0b2512773e9983de0e128a4b8 100644 --- a/typo3/sysext/frontend/Tests/Unit/Controller/TypoScriptFrontendControllerTest.php +++ b/typo3/sysext/frontend/Tests/Unit/Controller/TypoScriptFrontendControllerTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Frontend\Tests\Unit\Controller; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -48,10 +50,8 @@ final class TypoScriptFrontendControllerTest extends UnitTestCase ]; } - /** - * @dataProvider baseUrlWrapHandlesDifferentUrlsDataProvider - * @test - */ + #[DataProvider('baseUrlWrapHandlesDifferentUrlsDataProvider')] + #[Test] public function baseUrlWrapHandlesDifferentUrls(string $baseUrl, string $url, string $expected): void { $subject = $this->getMockBuilder(TypoScriptFrontendController::class)->disableOriginalConstructor()->onlyMethods([])->getMock(); diff --git a/typo3/sysext/frontend/Tests/Unit/DataProcessing/FlexFormProcessorTest.php b/typo3/sysext/frontend/Tests/Unit/DataProcessing/FlexFormProcessorTest.php index 36f9c706b0c3769c84b946f00175a091aa32b11f..881bf0e0c0661eef5fb797a2d9c1c07a645b4a17 100644 --- a/typo3/sysext/frontend/Tests/Unit/DataProcessing/FlexFormProcessorTest.php +++ b/typo3/sysext/frontend/Tests/Unit/DataProcessing/FlexFormProcessorTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Frontend\Tests\Unit\DataProcessing; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Core\Service\FlexFormService; use TYPO3\CMS\Core\Utility\GeneralUtility; @@ -37,9 +38,7 @@ final class FlexFormProcessorTest extends UnitTestCase $this->prepareFlexFormService(); } - /** - * @test - */ + #[Test] public function customFieldNameDoesNotExistsWillReturnUnchangedProcessedData(): void { $processorConfiguration = ['as' => 'myOutputVariable', 'fieldName' => 'non_existing_field']; @@ -65,9 +64,7 @@ final class FlexFormProcessorTest extends UnitTestCase self::assertSame($expected, $processedData); } - /** - * @test - */ + #[Test] public function customFieldNameDoesNotContainFlexFormDataWillReturnUnchangedProcessedData(): void { $processorConfiguration = ['as' => 'myOutputVariable', 'fieldName' => 'custom_field']; @@ -93,9 +90,7 @@ final class FlexFormProcessorTest extends UnitTestCase self::assertSame($expected, $processedData); } - /** - * @test - */ + #[Test] public function customOutputVariableForProcessorWillReturnParsedFlexFormToDataCustomVariable(): void { $processorConfiguration = ['as' => 'myCustomVar']; @@ -121,9 +116,7 @@ final class FlexFormProcessorTest extends UnitTestCase self::assertIsArray($expected['myCustomVar']); } - /** - * @test - */ + #[Test] public function defaultOutputVariableForProcessorWillBeUsed(): void { $processorConfiguration = []; @@ -150,9 +143,7 @@ final class FlexFormProcessorTest extends UnitTestCase self::assertIsArray($expected['flexFormData']); } - /** - * @test - */ + #[Test] public function defaultConfigurationWithCustomFieldNameWillReturnParsedFlexFormToDefaultOutputVariable(): void { $processorConfiguration = ['as' => 'myOutputVariable', 'fieldName' => 'my_flexform']; @@ -178,9 +169,7 @@ final class FlexFormProcessorTest extends UnitTestCase self::assertIsArray($expected['myOutputVariable']); } - /** - * @test - */ + #[Test] public function subDataProcessorIsResolved(): void { $this->prepareFlexFormServiceWithSubDataProcessorData(); diff --git a/typo3/sysext/frontend/Tests/Unit/DataProcessing/SiteLanguageProcessorTest.php b/typo3/sysext/frontend/Tests/Unit/DataProcessing/SiteLanguageProcessorTest.php index b3202cb8b41d8aa32a1562a0a79f6e6bbccedf96..5200e7b31a2786d610c0a366a9336649bf2200ab 100644 --- a/typo3/sysext/frontend/Tests/Unit/DataProcessing/SiteLanguageProcessorTest.php +++ b/typo3/sysext/frontend/Tests/Unit/DataProcessing/SiteLanguageProcessorTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Frontend\Tests\Unit\DataProcessing; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Http\ServerRequest; use TYPO3\CMS\Core\Site\Entity\SiteLanguage; use TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer; @@ -25,9 +26,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class SiteLanguageProcessorTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function siteLanguageIsRetrieved(): void { $expectedName = 'currentLanguage'; @@ -43,9 +42,7 @@ final class SiteLanguageProcessorTest extends UnitTestCase self::assertEquals($siteLanguage->toArray(), $processedData[$expectedName]); } - /** - * @test - */ + #[Test] public function nullIsProvidedIfSiteLanguageCouldNotBeRetrieved(): void { $expectedName = 'currentSiteLanguage'; diff --git a/typo3/sysext/frontend/Tests/Unit/DataProcessing/SiteProcessorTest.php b/typo3/sysext/frontend/Tests/Unit/DataProcessing/SiteProcessorTest.php index d6a8f44d96782cb681cfcdeaaf2587c29c1a3bdb..56d9db51f53795d90d7a36e14cc18a7a0e72b425 100644 --- a/typo3/sysext/frontend/Tests/Unit/DataProcessing/SiteProcessorTest.php +++ b/typo3/sysext/frontend/Tests/Unit/DataProcessing/SiteProcessorTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Frontend\Tests\Unit\DataProcessing; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Http\ServerRequest; use TYPO3\CMS\Core\Site\Entity\Site; use TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer; @@ -25,9 +26,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class SiteProcessorTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function siteIsRetrieved(): void { $expectedName = 'currentSite'; @@ -43,9 +42,7 @@ final class SiteProcessorTest extends UnitTestCase self::assertEquals($site, $processedData[$expectedName]); } - /** - * @test - */ + #[Test] public function nullIsProvidedIfSiteCouldNotBeRetrieved(): void { $expectedName = 'currentSite'; diff --git a/typo3/sysext/frontend/Tests/Unit/Http/RequestHandlerTest.php b/typo3/sysext/frontend/Tests/Unit/Http/RequestHandlerTest.php index a74a8217e429f7e6bec617b544cedc3644599a08..3611320346fb3849955f278d3188faefa34b6324 100644 --- a/typo3/sysext/frontend/Tests/Unit/Http/RequestHandlerTest.php +++ b/typo3/sysext/frontend/Tests/Unit/Http/RequestHandlerTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Frontend\Tests\Unit\Http; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use Symfony\Component\DependencyInjection\Container; use TYPO3\CMS\Core\EventDispatcher\ListenerProvider; use TYPO3\CMS\Core\EventDispatcher\NoopEventDispatcher; @@ -90,10 +92,9 @@ final class RequestHandlerTest extends UnitTestCase /** * Does not test stdWrap functionality. - * - * @test - * @dataProvider generateHtmlTagIncludesAllPossibilitiesDataProvider */ + #[DataProvider('generateHtmlTagIncludesAllPossibilitiesDataProvider')] + #[Test] public function generateHtmlTagIncludesAllPossibilities(array $htmlTagAttributes, array $configuration, string $expectedResult): void { $subject = $this->getAccessibleMock(RequestHandler::class, null, [], '', false); @@ -103,9 +104,7 @@ final class RequestHandlerTest extends UnitTestCase self::assertEquals($expectedResult, $result); } - /** - * @test - */ + #[Test] public function generateMetaTagExpectExceptionOnBogusTags(): void { $stdWrapResult = '10'; @@ -268,10 +267,8 @@ final class RequestHandlerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider generateMetaTagHtmlGeneratesCorrectTagsDataProvider - */ + #[DataProvider('generateMetaTagHtmlGeneratesCorrectTagsDataProvider')] + #[Test] public function generateMetaTagHtmlGeneratesCorrectTags(array $typoScript, string $stdWrapResult, array $expectedTags): void { $siteLanguage = $this->createSiteWithLanguage()->getLanguageById(3); @@ -315,9 +312,7 @@ final class RequestHandlerTest extends UnitTestCase $subject->_call('processHtmlBasedRenderingSettings', $frontendController, $siteLanguage, $request); } - /** - * @test - */ + #[Test] public function generateMetaTagHtmlGenerateNoTagWithEmptyContent(): void { $stdWrapResult = ''; @@ -422,10 +417,8 @@ final class RequestHandlerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider generateMultipleMetaTagsDataProvider - */ + #[DataProvider('generateMultipleMetaTagsDataProvider')] + #[Test] public function generateMultipleMetaTags(array $typoScript, string $stdWrapResult, array $expectedTags): void { $siteLanguage = $this->createSiteWithLanguage()->getLanguageById(3); @@ -485,9 +478,8 @@ final class RequestHandlerTest extends UnitTestCase /** * Test if the method is called, and the globals are still the same after calling the method - * - * @test */ + #[Test] public function resetGlobalsToCurrentRequestDoesNotModifyAnything(): void { $getVars = ['outside' => '1']; @@ -507,9 +499,8 @@ final class RequestHandlerTest extends UnitTestCase /** * Test if the method is called, and the globals are still the same after calling the method - * - * @test */ + #[Test] public function resetGlobalsToCurrentRequestWithModifiedRequestOverridesGlobals(): void { $getVars = ['typical' => '1']; diff --git a/typo3/sysext/frontend/Tests/Unit/Imaging/GifBuilderTest.php b/typo3/sysext/frontend/Tests/Unit/Imaging/GifBuilderTest.php index 28ed78a56e9c48c245524b7b2f6f95408c0ee22d..d8ddca5a8970d83846ea9d18157846e64f755712 100644 --- a/typo3/sysext/frontend/Tests/Unit/Imaging/GifBuilderTest.php +++ b/typo3/sysext/frontend/Tests/Unit/Imaging/GifBuilderTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Frontend\Tests\Unit\Imaging; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Frontend\Imaging\GifBuilder; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -45,11 +47,8 @@ final class GifBuilderTest extends UnitTestCase ]; } - /** - * @test - * - * @dataProvider singleIntegerDataProvider - */ + #[DataProvider('singleIntegerDataProvider')] + #[Test] public function calcOffsetWithSingleIntegerReturnsTheGivenIntegerAsString(string $number): void { $result = $this->subject->calcOffset($number); @@ -57,9 +56,7 @@ final class GifBuilderTest extends UnitTestCase self::assertSame($number, $result); } - /** - * @test - */ + #[Test] public function calcOffsetWithMultipleIntegersReturnsTheGivenIntegerCommaSeparated(): void { $numbers = '1,2,3'; @@ -68,9 +65,7 @@ final class GifBuilderTest extends UnitTestCase self::assertSame($numbers, $result); } - /** - * @test - */ + #[Test] public function calcOffsetTrimsWhitespaceAroundProvidedNumbers(): void { $result = $this->subject->calcOffset(' 1, 2, 3 '); @@ -89,11 +84,8 @@ final class GifBuilderTest extends UnitTestCase ]; } - /** - * @test - * - * @dataProvider roundingDataProvider - */ + #[DataProvider('roundingDataProvider')] + #[Test] public function calcOffsetRoundsNumbersToNearestInteger(string $input, string $expectedResult): void { $result = $this->subject->calcOffset($input); @@ -118,11 +110,8 @@ final class GifBuilderTest extends UnitTestCase ]; } - /** - * @test - * - * @dataProvider calculationDataProvider - */ + #[DataProvider('calculationDataProvider')] + #[Test] public function calcOffsetDoesTheProvidedCalculation(string $input, string $expectedResult): void { $result = $this->subject->calcOffset($input); diff --git a/typo3/sysext/frontend/Tests/Unit/Middleware/PageArgumentValidatorTest.php b/typo3/sysext/frontend/Tests/Unit/Middleware/PageArgumentValidatorTest.php index 19b13f4e8c19f38762b9c3b0e1e1fa36df983ec3..1792a35309c7009b4f6190a3f571af33e5f50fce 100644 --- a/typo3/sysext/frontend/Tests/Unit/Middleware/PageArgumentValidatorTest.php +++ b/typo3/sysext/frontend/Tests/Unit/Middleware/PageArgumentValidatorTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Frontend\Tests\Unit\Middleware; +use PHPUnit\Framework\Attributes\Test; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Server\RequestHandlerInterface; @@ -58,9 +59,7 @@ final class PageArgumentValidatorTest extends UnitTestCase $GLOBALS['TYPO3_CONF_VARS']['SYS']['encryptionKey'] = ''; } - /** - * @test - */ + #[Test] public function givenCacheHashWithoutRequiredParametersTriggersRedirect(): void { $incomingUrl = 'https://example.com/lotus-flower/en/mr-magpie/bloom/?cHash=XYZ'; @@ -79,9 +78,7 @@ final class PageArgumentValidatorTest extends UnitTestCase self::assertEquals($expectedResult, $response->getHeader('Location')[0]); } - /** - * @test - */ + #[Test] public function givenCacheHashNotMatchingCalculatedCacheHashTriggers404(): void { $incomingUrl = 'https://example.com/lotus-flower/en/mr-magpie/bloom/?cHash=YAZ'; @@ -100,9 +97,7 @@ final class PageArgumentValidatorTest extends UnitTestCase self::assertEquals(404, $response->getStatusCode()); } - /** - * @test - */ + #[Test] public function noPageArgumentsReturnsErrorResponse(): void { $incomingUrl = 'https://king.com/lotus-flower/en/mr-magpie/bloom/'; @@ -116,9 +111,7 @@ final class PageArgumentValidatorTest extends UnitTestCase self::assertEquals(404, $response->getStatusCode()); } - /** - * @test - */ + #[Test] public function staticPageArgumentsSkipProcessingAndReturnsSuccess(): void { $incomingUrl = 'https://example.com/lotus-flower/en/mr-magpie/bloom/'; @@ -133,9 +126,7 @@ final class PageArgumentValidatorTest extends UnitTestCase self::assertEquals(200, $response->getStatusCode()); } - /** - * @test - */ + #[Test] public function invalidCacheHashWithDynamicArgumentsTriggers404(): void { $incomingUrl = 'https://example.com/lotus-flower/en/mr-magpie/bloom/'; diff --git a/typo3/sysext/frontend/Tests/Unit/Middleware/SiteBaseRedirectResolverTest.php b/typo3/sysext/frontend/Tests/Unit/Middleware/SiteBaseRedirectResolverTest.php index c6cc712c1c1aadc297f4a8ae7be7a293c8a3f226..22ae69b4f1359f90ac1d00b0e7772613ae1228dd 100644 --- a/typo3/sysext/frontend/Tests/Unit/Middleware/SiteBaseRedirectResolverTest.php +++ b/typo3/sysext/frontend/Tests/Unit/Middleware/SiteBaseRedirectResolverTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Frontend\Tests\Unit\Middleware; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Server\RequestHandlerInterface; @@ -137,10 +139,8 @@ final class SiteBaseRedirectResolverTest extends UnitTestCase ]; } - /** - * @dataProvider doRedirectOnMissingOrSuperfluousRequestUrlDataProvider - * @test - */ + #[DataProvider('doRedirectOnMissingOrSuperfluousRequestUrlDataProvider')] + #[Test] public function doRedirectOnMissingOrSuperfluousRequestUrl( string $incomingUrl, string $expectedRedirectUrl, @@ -168,10 +168,8 @@ final class SiteBaseRedirectResolverTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider checkIf404IsSiteLanguageIsDisabledInFrontendDataProvider - */ + #[DataProvider('checkIf404IsSiteLanguageIsDisabledInFrontendDataProvider')] + #[Test] public function checkIf404IsSiteLanguageIsDisabledInFrontend( string $url, int $expectedStatusCode, @@ -250,10 +248,8 @@ final class SiteBaseRedirectResolverTest extends UnitTestCase ]; } - /** - * @dataProvider doNotRedirectOnBaseWithoutQueryDataProvider - * @test - */ + #[DataProvider('doNotRedirectOnBaseWithoutQueryDataProvider')] + #[Test] public function doNotRedirectOnBaseWithoutQuery( string $incomingUrl, Site $site, @@ -271,9 +267,7 @@ final class SiteBaseRedirectResolverTest extends UnitTestCase self::assertEquals(200, $response->getStatusCode()); } - /** - * @test - */ + #[Test] public function useDefaultLanguageIfNoLanguageIsGiven(): void { $incomingUrl = 'https://twenty.one/'; @@ -308,9 +302,7 @@ final class SiteBaseRedirectResolverTest extends UnitTestCase self::assertEquals('https://twenty.one/en/', $response->getHeader('Location')[0]); } - /** - * @test - */ + #[Test] public function useFirstAvailableLanguageIfDefaultLanguageIsNotEnabledAndLanguageIsGiven(): void { $incomingUrl = 'https://twenty.one/'; diff --git a/typo3/sysext/frontend/Tests/Unit/Middleware/SiteResolverTest.php b/typo3/sysext/frontend/Tests/Unit/Middleware/SiteResolverTest.php index 7ce2891fb8b9a72e15d31cd774617b7620e8dc51..f773c43d788f006dffe6ff5e86d8d1ee4e116219 100644 --- a/typo3/sysext/frontend/Tests/Unit/Middleware/SiteResolverTest.php +++ b/typo3/sysext/frontend/Tests/Unit/Middleware/SiteResolverTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Frontend\Tests\Unit\Middleware; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; @@ -92,9 +94,8 @@ final class SiteResolverTest extends UnitTestCase * Then the site handling gets triggered, and the URL is taken to resolve a site. * * This case tests against a site with no domain or scheme, and successfully finds it. - * - * @test */ + #[Test] public function detectASingleSiteWhenProperRequestIsGiven(): void { $incomingUrl = 'https://a-random-domain.com/mysite/'; @@ -135,9 +136,8 @@ final class SiteResolverTest extends UnitTestCase * The result should be that site 2 is resolved by the router when calling * * www.random-result.com/mysubsite/you-know-why/ - * - * @test */ + #[Test] public function detectSubsiteInsideNestedUrlStructure(): void { $incomingUrl = 'https://www.random-result.com/mysubsite/you-know-why/'; @@ -217,10 +217,9 @@ final class SiteResolverTest extends UnitTestCase * * and site 3 when calling * www.random-result.com/mysubsite/micro-site/oh-yes-you-do/ - * - * @test - * @dataProvider detectSubSubsiteInsideNestedUrlStructureDataProvider */ + #[DataProvider('detectSubSubsiteInsideNestedUrlStructureDataProvider')] + #[Test] public function detectSubSubsiteInsideNestedUrlStructure($incomingUrl, $expectedSiteIdentifier, $expectedRootPageId, $expectedBase): void { $siteFinder = $this->createSiteFinder( @@ -324,10 +323,9 @@ final class SiteResolverTest extends UnitTestCase * Language: 2: / * Site 3: /mysubsite/micro-site/ * Language: 13: /ru/ - * - * @test - * @dataProvider detectProperLanguageByIncomingUrlDataProvider */ + #[DataProvider('detectProperLanguageByIncomingUrlDataProvider')] + #[Test] public function detectProperLanguageByIncomingUrl($incomingUrl, $expectedSiteIdentifier, $expectedRootPageId, $expectedLanguageId, $expectedBase): void { $siteFinder = $this->createSiteFinder( diff --git a/typo3/sysext/frontend/Tests/Unit/Middleware/StaticRouteResolverTest.php b/typo3/sysext/frontend/Tests/Unit/Middleware/StaticRouteResolverTest.php index 5d36c16b99dcbafd11addbccbfffa1dfbddfa2ae..f195dc83ce6e38063726b911e9af3b760a2282bc 100644 --- a/typo3/sysext/frontend/Tests/Unit/Middleware/StaticRouteResolverTest.php +++ b/typo3/sysext/frontend/Tests/Unit/Middleware/StaticRouteResolverTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Frontend\Tests\Unit\Middleware; +use PHPUnit\Framework\Attributes\Test; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Server\RequestHandlerInterface; @@ -45,9 +46,7 @@ final class StaticRouteResolverTest extends UnitTestCase }; } - /** - * @test - */ + #[Test] public function invalidStaticRouteDoesNotWork(): void { $requestFactoryMock = $this->getMockBuilder(RequestFactory::class)->disableOriginalConstructor()->getMock(); diff --git a/typo3/sysext/frontend/Tests/Unit/Page/CacheHashCalculatorTest.php b/typo3/sysext/frontend/Tests/Unit/Page/CacheHashCalculatorTest.php index 14c2c8a7e056d937d5abd8936ec0a82e3acf1b1d..e4526c1bc38589ce8b6a079db0ababc9f8052f49 100644 --- a/typo3/sysext/frontend/Tests/Unit/Page/CacheHashCalculatorTest.php +++ b/typo3/sysext/frontend/Tests/Unit/Page/CacheHashCalculatorTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Frontend\Tests\Unit\Page; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Frontend\Page\CacheHashCalculator; use TYPO3\CMS\Frontend\Page\CacheHashConfiguration; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -46,10 +48,8 @@ final class CacheHashCalculatorTest extends UnitTestCase parent::tearDown(); } - /** - * @dataProvider cacheHashCalculationDataProvider - * @test - */ + #[DataProvider('cacheHashCalculationDataProvider')] + #[Test] public function cacheHashCalculationWorks(array $params, string $expected): void { self::assertEquals($expected, $this->subject->calculateCacheHash($params)); @@ -80,10 +80,8 @@ final class CacheHashCalculatorTest extends UnitTestCase ]; } - /** - * @dataProvider getRelevantParametersDataprovider - * @test - */ + #[DataProvider('getRelevantParametersDataprovider')] + #[Test] public function getRelevantParametersWorks(string $params, array $expected): void { $actual = $this->subject->getRelevantParameters($params); @@ -117,18 +115,14 @@ final class CacheHashCalculatorTest extends UnitTestCase ]; } - /** - * @dataProvider canGenerateForParametersDataProvider - * @test - */ + #[DataProvider('canGenerateForParametersDataProvider')] + #[Test] public function canGenerateForParameters(string $params, string $expected): void { self::assertEquals($expected, $this->subject->generateForParameters($params)); } - /** - * @test - */ + #[Test] public function generateForParametersThrowsExceptionWhenIdIsNotSpecified(): void { $this->expectException(\RuntimeException::class); @@ -153,10 +147,8 @@ final class CacheHashCalculatorTest extends UnitTestCase ]; } - /** - * @dataProvider parametersRequireCacheHashDataprovider - * @test - */ + #[DataProvider('parametersRequireCacheHashDataprovider')] + #[Test] public function parametersRequireCacheHashWorks(string $params, bool $expected): void { self::assertEquals($expected, $this->subject->doParametersRequireCacheHash($params)); @@ -176,10 +168,9 @@ final class CacheHashCalculatorTest extends UnitTestCase /** * In case the $TYPO3_CONF_VARS[FE][cacheHash][cachedParametersWhiteList] is set, other parameters should not * influence the cHash (except the encryption key of course) - * - * @dataProvider canWhitelistParametersDataProvider - * @test */ + #[DataProvider('canWhitelistParametersDataProvider')] + #[Test] public function canWhitelistParameters(string $params, string $expected): void { $this->subject->setConfiguration([ @@ -201,10 +192,8 @@ final class CacheHashCalculatorTest extends UnitTestCase ]; } - /** - * @dataProvider canSkipParametersWithEmptyValuesDataProvider - * @test - */ + #[DataProvider('canSkipParametersWithEmptyValuesDataProvider')] + #[Test] public function canSkipParametersWithEmptyValues(string $params, array $settings, array $expected): void { $this->subject->setConfiguration($settings); diff --git a/typo3/sysext/frontend/Tests/Unit/Page/CacheHashConfigurationTest.php b/typo3/sysext/frontend/Tests/Unit/Page/CacheHashConfigurationTest.php index 65decc3bfbd343d031b3e917078566570a6b7489..e01b04385fb7dba8322bb2f651d47ca9c56644c3 100644 --- a/typo3/sysext/frontend/Tests/Unit/Page/CacheHashConfigurationTest.php +++ b/typo3/sysext/frontend/Tests/Unit/Page/CacheHashConfigurationTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Frontend\Tests\Unit\Page; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\TestCase; use TYPO3\CMS\Core\Utility\PermutationUtility; use TYPO3\CMS\Frontend\Page\CacheHashConfiguration; @@ -36,10 +38,8 @@ final class CacheHashConfigurationTest extends TestCase ]); } - /** - * @test - * @dataProvider nonArrayValueThrowsExceptionDataProvider - */ + #[DataProvider('nonArrayValueThrowsExceptionDataProvider')] + #[Test] public function nonArrayValueThrowsException(string $aspect, mixed $value): void { $this->expectException(\LogicException::class); @@ -60,10 +60,8 @@ final class CacheHashConfigurationTest extends TestCase ]); } - /** - * @test - * @dataProvider nonScalarValueThrowsExceptionDataProvider - */ + #[DataProvider('nonScalarValueThrowsExceptionDataProvider')] + #[Test] public function nonScalarValueThrowsException(string $aspect, mixed $value): void { $this->expectException(\LogicException::class); @@ -84,10 +82,8 @@ final class CacheHashConfigurationTest extends TestCase ]); } - /** - * @test - * @dataProvider emptyIndicatedValueThrowsExceptionDataProvider - */ + #[DataProvider('emptyIndicatedValueThrowsExceptionDataProvider')] + #[Test] public function emptyIndicatedValueThrowsException(string $aspect, string $value): void { $this->expectException(\LogicException::class); @@ -110,10 +106,8 @@ final class CacheHashConfigurationTest extends TestCase ]); } - /** - * @test - * @dataProvider equalsResolvesParameterValueDataProvider - */ + #[DataProvider('equalsResolvesParameterValueDataProvider')] + #[Test] public function equalsResolvesParameterValue(string $aspect, array $values, array $positives, array $negatives): void { $configuration = new CacheHashConfiguration([$aspect => $values]); @@ -140,10 +134,8 @@ final class CacheHashConfigurationTest extends TestCase ]); } - /** - * @test - * @dataProvider startsWithResolvesParameterValueDataProvider - */ + #[DataProvider('startsWithResolvesParameterValueDataProvider')] + #[Test] public function startsWithResolvesParameterValue(string $aspect, array $values, array $positives, array $negatives): void { $configuration = new CacheHashConfiguration([$aspect => $values]); @@ -170,10 +162,8 @@ final class CacheHashConfigurationTest extends TestCase ]); } - /** - * @test - * @dataProvider containsResolvesParameterValueDataProvider - */ + #[DataProvider('containsResolvesParameterValueDataProvider')] + #[Test] public function containsResolvesParameterValue(string $aspect, array $values, array $positives, array $negatives): void { $configuration = new CacheHashConfiguration([$aspect => $values]); @@ -191,10 +181,8 @@ final class CacheHashConfigurationTest extends TestCase return self::containsResolvesParameterValueDataProvider(); } - /** - * @test - * @dataProvider appliesResolvesParameterValueDataProvider - */ + #[DataProvider('appliesResolvesParameterValueDataProvider')] + #[Test] public function appliesResolvesParameterValue(string $aspect, array $values, array $positives, array $negatives): void { $configuration = new CacheHashConfiguration([$aspect => $values]); diff --git a/typo3/sysext/frontend/Tests/Unit/Page/PageAccessFailureReasonsTest.php b/typo3/sysext/frontend/Tests/Unit/Page/PageAccessFailureReasonsTest.php index a23d9bfed972accf9b8f14fedb6f7f18e7dcbce1..ce7b4e97a6d552e1abe32bed679b02fc35f5e672 100644 --- a/typo3/sysext/frontend/Tests/Unit/Page/PageAccessFailureReasonsTest.php +++ b/typo3/sysext/frontend/Tests/Unit/Page/PageAccessFailureReasonsTest.php @@ -17,14 +17,13 @@ declare(strict_types=1); namespace TYPO3\CMS\Frontend\Tests\Unit\Page; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Frontend\Page\PageAccessFailureReasons; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class PageAccessFailureReasonsTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getMessageForReasonReturnsExpectedMessageForCode(): void { $subject = new PageAccessFailureReasons(); @@ -32,9 +31,7 @@ final class PageAccessFailureReasonsTest extends UnitTestCase self::assertEquals('No page on rootlevel found', $message); } - /** - * @test - */ + #[Test] public function getMessageForReasonThrowsExceptionForWrongCode(): void { $this->expectException(\InvalidArgumentException::class); diff --git a/typo3/sysext/frontend/Tests/Unit/Page/PageLayoutResolverTest.php b/typo3/sysext/frontend/Tests/Unit/Page/PageLayoutResolverTest.php index 4ed96e6a42a92e27fa9c3a36cfeceb453a0ee0b4..b34d24079d8588e8939c34d0a78a1052c26c4a83 100644 --- a/typo3/sysext/frontend/Tests/Unit/Page/PageLayoutResolverTest.php +++ b/typo3/sysext/frontend/Tests/Unit/Page/PageLayoutResolverTest.php @@ -17,14 +17,13 @@ declare(strict_types=1); namespace TYPO3\CMS\Frontend\Tests\Unit\Page; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Frontend\Page\PageLayoutResolver; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class PageLayoutResolverTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getLayoutForPageFetchesSelectedPageDirectly(): void { $subject = new PageLayoutResolver(); @@ -32,9 +31,7 @@ final class PageLayoutResolverTest extends UnitTestCase self::assertEquals('1', $result); } - /** - * @test - */ + #[Test] public function getLayoutForPageTreatsSpecialMinusOneValueAsNone(): void { $subject = new PageLayoutResolver(); @@ -42,9 +39,7 @@ final class PageLayoutResolverTest extends UnitTestCase self::assertEquals('none', $result); } - /** - * @test - */ + #[Test] public function getLayoutForPageTreatsSpecialValueZeroOrEmptyAsDefaultWithEmptyRootLine(): void { $subject = new PageLayoutResolver(); @@ -57,9 +52,7 @@ final class PageLayoutResolverTest extends UnitTestCase self::assertEquals('default', $result); } - /** - * @test - */ + #[Test] public function getLayoutForPageTreatsSpecialValueZeroOrEmptyAsDefaultWhenNothingGivenInRootLine(): void { $subject = new PageLayoutResolver(); @@ -70,9 +63,7 @@ final class PageLayoutResolverTest extends UnitTestCase self::assertEquals('default', $result); } - /** - * @test - */ + #[Test] public function getLayoutForPageFetchesRootLinePagesUpUntilSomethingWasFound(): void { $subject = new PageLayoutResolver(); @@ -83,9 +74,7 @@ final class PageLayoutResolverTest extends UnitTestCase self::assertEquals('regular', $result); } - /** - * @test - */ + #[Test] public function getLayoutForPageFetchesRootLinePagesUpWhenNoneWasSelectedExplicitly(): void { $subject = new PageLayoutResolver(); diff --git a/typo3/sysext/frontend/Tests/Unit/Processor/GalleryProcessorTest.php b/typo3/sysext/frontend/Tests/Unit/Processor/GalleryProcessorTest.php index 86366970a9da352fda7e321d3262c44ba4857d10..8b34be5fca6824381819ff01c6f52728b3b70174 100644 --- a/typo3/sysext/frontend/Tests/Unit/Processor/GalleryProcessorTest.php +++ b/typo3/sysext/frontend/Tests/Unit/Processor/GalleryProcessorTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Frontend\Tests\Unit\Processor; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Core\Resource\FileReference; use TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer; @@ -36,9 +38,7 @@ final class GalleryProcessorTest extends UnitTestCase ->getMock(); } - /** - * @test - */ + #[Test] public function processThrowsExceptionWhenFilesProcessedDataKeyIsNotFound(): void { $this->expectException(ContentRenderingException::class); @@ -142,10 +142,8 @@ final class GalleryProcessorTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider galleryPositionDataProvider - */ + #[DataProvider('galleryPositionDataProvider')] + #[Test] public function galleryPositionTest(array $processorConfiguration, array $expected): void { $processor = new GalleryProcessor(); @@ -159,9 +157,7 @@ final class GalleryProcessorTest extends UnitTestCase self::assertEquals($expected, $processedData['gallery']['position']); } - /** - * @test - */ + #[Test] public function maxGalleryWidthTest(): void { $processor = new GalleryProcessor(); @@ -175,9 +171,7 @@ final class GalleryProcessorTest extends UnitTestCase self::assertEquals(200, $processedData['gallery']['width']); } - /** - * @test - */ + #[Test] public function maxGalleryWidthWhenInTextTest(): void { $processor = new GalleryProcessor(); @@ -242,10 +236,8 @@ final class GalleryProcessorTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider countDataProvider - */ + #[DataProvider('countDataProvider')] + #[Test] public function countResultTest(int $numberOfFiles, array $data, array $processorConfiguration, array $expected): void { $files = []; @@ -427,10 +419,8 @@ final class GalleryProcessorTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider calculateMediaWidthsAndHeightsDataProvider - */ + #[DataProvider('calculateMediaWidthsAndHeightsDataProvider')] + #[Test] public function calculateMediaWidthsAndHeightsTest(array $testFiles, array $processorConfiguration, array $expected): void { $files = []; diff --git a/typo3/sysext/frontend/Tests/Unit/Resource/FilePathSanitizerTest.php b/typo3/sysext/frontend/Tests/Unit/Resource/FilePathSanitizerTest.php index 176e04b63148f1e08ca5848f80f841ad2ff91fd2..b4dcc496d5df8cad7ed5d609aea4e17878321e9d 100644 --- a/typo3/sysext/frontend/Tests/Unit/Resource/FilePathSanitizerTest.php +++ b/typo3/sysext/frontend/Tests/Unit/Resource/FilePathSanitizerTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Frontend\Tests\Unit\Resource; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Core\Environment; use TYPO3\CMS\Core\Resource\Exception\FileDoesNotExistException; use TYPO3\CMS\Core\Resource\Exception\InvalidFileException; @@ -55,9 +57,7 @@ final class FilePathSanitizerTest extends UnitTestCase $this->testFilesToDelete[] = $fakePublicDir . '/index.php'; } - /** - * @test - */ + #[Test] public function tryingToResolvePrivateResourcesFromComposerPackagesThrowsException(): void { $this->simulateWebRequestInComposerMode(); @@ -66,9 +66,7 @@ final class FilePathSanitizerTest extends UnitTestCase $subject->sanitize('EXT:frontend/Resources/Private/Templates/MainPage.html'); } - /** - * @test - */ + #[Test] public function settingSecondArgumentToFalseIsNotAllowed(): void { $this->expectException(\BadMethodCallException::class); @@ -117,10 +115,8 @@ final class FilePathSanitizerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider publicAssetsInComposerModeResolvedCorrectlyDataProvider - */ + #[DataProvider('publicAssetsInComposerModeResolvedCorrectlyDataProvider')] + #[Test] public function publicAssetsInComposerModeResolvedCorrectly(string $givenPathOrUrl, string $expectedPathOrUrl, ?bool $allowExtensionPath = null): void { $this->simulateWebRequestInComposerMode(); @@ -170,19 +166,15 @@ final class FilePathSanitizerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider sanitizeCorrectlyResolvesPathsAndUrlsDataProvider - */ + #[DataProvider('sanitizeCorrectlyResolvesPathsAndUrlsDataProvider')] + #[Test] public function sanitizeCorrectlyResolvesPathsAndUrls(string $givenPathOrUrl, string $expectedPathOrUrl, ?bool $allowExtensionPath = null): void { $subject = new FilePathSanitizer(); self::assertSame($expectedPathOrUrl, $subject->sanitize($givenPathOrUrl, $allowExtensionPath)); } - /** - * @test - */ + #[Test] public function sanitizeFailsIfDirectoryGiven(): void { $this->expectException(FileDoesNotExistException::class); @@ -190,9 +182,7 @@ final class FilePathSanitizerTest extends UnitTestCase $subject->sanitize(__DIR__); } - /** - * @test - */ + #[Test] public function sanitizeThrowsExceptionWithInvalidFileName(): void { $this->expectException(InvalidFileNameException::class); diff --git a/typo3/sysext/frontend/Tests/Unit/Typolink/AbstractTypolinkBuilderTest.php b/typo3/sysext/frontend/Tests/Unit/Typolink/AbstractTypolinkBuilderTest.php index 9bc334f160d2292dca11b569fd5992c5e0bc0c4a..5d55f4ff5aa2d72fd2fd5212f2251d5e15c03654 100644 --- a/typo3/sysext/frontend/Tests/Unit/Typolink/AbstractTypolinkBuilderTest.php +++ b/typo3/sysext/frontend/Tests/Unit/Typolink/AbstractTypolinkBuilderTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Frontend\Tests\Unit\Typolink; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use Psr\Log\LoggerInterface; use Symfony\Component\DependencyInjection\Container; @@ -51,7 +53,6 @@ final class AbstractTypolinkBuilderTest extends UnitTestCase ////////////////////// // Utility functions ////////////////////// - /** * Avoid logging to the file system (file writer is currently the only configured writer) */ @@ -165,9 +166,9 @@ final class AbstractTypolinkBuilderTest extends UnitTestCase * @param string $expected The expected URL * @param string $url The URL to parse and manipulate * @param array $configuration The configuration array - * @test - * @dataProvider forceAbsoluteUrlReturnsCorrectAbsoluteUrlDataProvider */ + #[DataProvider('forceAbsoluteUrlReturnsCorrectAbsoluteUrlDataProvider')] + #[Test] public function forceAbsoluteUrlReturnsCorrectAbsoluteUrl(string $expected, string $url, array $configuration): void { Environment::initialize( @@ -201,9 +202,7 @@ final class AbstractTypolinkBuilderTest extends UnitTestCase self::assertEquals($expected, $subject->_call('forceAbsoluteUrl', $url, $configuration)); } - /** - * @test - */ + #[Test] public function forceAbsoluteUrlReturnsCorrectAbsoluteUrlWithSubfolder(): void { Environment::initialize( @@ -276,10 +275,8 @@ final class AbstractTypolinkBuilderTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider resolveTargetAttributeDataProvider - */ + #[DataProvider('resolveTargetAttributeDataProvider')] + #[Test] public function canResolveTheTargetAttribute( string $expected, array $conf, diff --git a/typo3/sysext/frontend/Tests/Unit/Typolink/DatabaseRecordLinkBuilderTest.php b/typo3/sysext/frontend/Tests/Unit/Typolink/DatabaseRecordLinkBuilderTest.php index 0ec7469fc2280402383311ada6fb07967e0452d5..2bdd9ae4ac4d46125cb2813566159756ff0ea6b6 100644 --- a/typo3/sysext/frontend/Tests/Unit/Typolink/DatabaseRecordLinkBuilderTest.php +++ b/typo3/sysext/frontend/Tests/Unit/Typolink/DatabaseRecordLinkBuilderTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Frontend\Tests\Unit\Typolink; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Backend\LinkHandler\RecordLinkHandler; use TYPO3\CMS\Core\Context\Context; use TYPO3\CMS\Core\Domain\Repository\PageRepository; @@ -88,10 +90,9 @@ final class DatabaseRecordLinkBuilderTest extends UnitTestCase * in the default link handler configuration * * Note that the TypolinkCodecService is not mocked on purpose to get the full unit tested. - * - * @test - * @dataProvider attributesSetInRecordLinkOverwriteConfiguredAttributesDataProvider */ + #[DataProvider('attributesSetInRecordLinkOverwriteConfiguredAttributesDataProvider')] + #[Test] public function attributesSetInRecordLinkOverwriteConfiguredAttributes(string $parameterFromTypoScript, string $parameterFromDb, string $expectedParameter): void { $confFromDb = [ diff --git a/typo3/sysext/frontend/Tests/Unit/Typolink/LinkVarsCalculatorTest.php b/typo3/sysext/frontend/Tests/Unit/Typolink/LinkVarsCalculatorTest.php index c8a7b08fe8b77e4240a14f11378ebf9aaea1ab23..2312513bf70950845853359d44ec568d1e2d5f0b 100644 --- a/typo3/sysext/frontend/Tests/Unit/Typolink/LinkVarsCalculatorTest.php +++ b/typo3/sysext/frontend/Tests/Unit/Typolink/LinkVarsCalculatorTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Frontend\Tests\Unit\Typolink; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Context\Context; use TYPO3\CMS\Frontend\Typolink\LinkVarsCalculator; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -62,10 +64,8 @@ final class LinkVarsCalculatorTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider calculateLinkVarsDataProvider - */ + #[DataProvider('calculateLinkVarsDataProvider')] + #[Test] public function calculateLinkVarsConsidersCorrectVariables(string $linkVars, array $getVars, string $expected): void { $subject = new LinkVarsCalculator(); @@ -177,10 +177,8 @@ final class LinkVarsCalculatorTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider splitLinkVarsDataProvider - */ + #[DataProvider('splitLinkVarsDataProvider')] + #[Test] public function splitLinkVarsStringSplitsStringByComma(string $string, array $expected): void { $subject = $this->getAccessibleMock(LinkVarsCalculator::class, null); diff --git a/typo3/sysext/frontend/Tests/Unit/Typolink/PageLinkBuilderTest.php b/typo3/sysext/frontend/Tests/Unit/Typolink/PageLinkBuilderTest.php index 0804e821e8c18654bddb3c2c03c6b5e1fdbd36f8..0b251c623746bb992d6e9e8f6e07b9911f5364ec 100644 --- a/typo3/sysext/frontend/Tests/Unit/Typolink/PageLinkBuilderTest.php +++ b/typo3/sysext/frontend/Tests/Unit/Typolink/PageLinkBuilderTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Frontend\Tests\Unit\Typolink; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Http\ServerRequest; use TYPO3\CMS\Core\Routing\PageArguments; use TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer; @@ -47,10 +49,8 @@ final class PageLinkBuilderTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider getQueryArgumentsExcludesParametersDataProvider - */ + #[DataProvider('getQueryArgumentsExcludesParametersDataProvider')] + #[Test] public function getQueryArgumentsExcludesParameters(string $queryString, string $queryInformation, array $configuration, string $expectedResult): void { parse_str($queryString, $queryParameters); diff --git a/typo3/sysext/frontend/Tests/UnitDeprecated/Resource/FilePathSanitizerTest.php b/typo3/sysext/frontend/Tests/UnitDeprecated/Resource/FilePathSanitizerTest.php index ca5c18e990946acf4e96036c16fcbdc12ac8af54..7af1720249d088c5b00f5408e057ec578f0c7c90 100644 --- a/typo3/sysext/frontend/Tests/UnitDeprecated/Resource/FilePathSanitizerTest.php +++ b/typo3/sysext/frontend/Tests/UnitDeprecated/Resource/FilePathSanitizerTest.php @@ -17,14 +17,13 @@ declare(strict_types=1); namespace TYPO3\CMS\Frontend\Tests\UnitDeprecated\Resource; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Frontend\Resource\FilePathSanitizer; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class FilePathSanitizerTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function sanitizeCorrectlyResolvesPathsForLegacySystemsEvenForPrivateResources(): void { $subject = new FilePathSanitizer(); diff --git a/typo3/sysext/impexp/Tests/Unit/ExportTest.php b/typo3/sysext/impexp/Tests/Unit/ExportTest.php index 8f1a442785cceb52f8eb7c117aa7c3cf400f659b..6089c444dcdc70c6c9646658d162eb8e4613aeba 100644 --- a/typo3/sysext/impexp/Tests/Unit/ExportTest.php +++ b/typo3/sysext/impexp/Tests/Unit/ExportTest.php @@ -15,6 +15,8 @@ namespace TYPO3\CMS\Impexp\Tests\Unit; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Core\Core\Environment; use TYPO3\CMS\Core\Resource\File; @@ -37,10 +39,8 @@ final class ExportTest extends UnitTestCase $this->exportMock->_set('compressionAvailable', true); } - /** - * @test - * @dataProvider setExportFileNameSanitizesFileNameProvider - */ + #[DataProvider('setExportFileNameSanitizesFileNameProvider')] + #[Test] public function setExportFileNameSanitizesFileName(string $fileName, string $expected): void { $this->exportMock->setExportFileName($fileName); @@ -59,9 +59,7 @@ final class ExportTest extends UnitTestCase ]; } - /** - * @test - */ + #[Test] public function getOrGenerateExportFileNameWithFileExtensionConsidersPidAndLevels(): void { $this->exportMock->setPid(1); @@ -70,9 +68,7 @@ final class ExportTest extends UnitTestCase self::assertMatchesRegularExpression("/T3D_tree_PID1_L2_$patternDateTime.xml/", $this->exportMock->getOrGenerateExportFileNameWithFileExtension()); } - /** - * @test - */ + #[Test] public function getOrGenerateExportFileNameWithFileExtensionConsidersRecords(): void { $this->exportMock->setRecord(['page:1', 'tt_content:1']); @@ -80,9 +76,7 @@ final class ExportTest extends UnitTestCase self::assertMatchesRegularExpression("/T3D_recs_page_1-tt_conte_$patternDateTime.xml/", $this->exportMock->getOrGenerateExportFileNameWithFileExtension()); } - /** - * @test - */ + #[Test] public function getOrGenerateExportFileNameWithFileExtensionConsidersLists(): void { $this->exportMock->setList(['sys_news:0', 'news:12']); @@ -99,28 +93,22 @@ final class ExportTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider setExportFileTypeSucceedsWithSupportedFileTypeProvider - */ + #[DataProvider('setExportFileTypeSucceedsWithSupportedFileTypeProvider')] + #[Test] public function setExportFileTypeSucceedsWithSupportedFileType(string $fileType): void { $this->exportMock->setExportFileType($fileType); self::assertEquals($fileType, $this->exportMock->getExportFileType()); } - /** - * @test - */ + #[Test] public function setExportFileTypeFailsWithUnsupportedFileType(): void { $this->expectException(\Exception::class); $this->exportMock->setExportFileType('json'); } - /** - * @test - */ + #[Test] public function fixFileIdInRelationsProcessesOriginalRelationsArray(): void { $relations = [ @@ -188,10 +176,8 @@ final class ExportTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider removeRedundantSoftRefsInRelationsProcessesOriginalRelationsArrayDataProvider - */ + #[DataProvider('removeRedundantSoftRefsInRelationsProcessesOriginalRelationsArrayDataProvider')] + #[Test] public function removeRedundantSoftRefsInRelationsProcessesOriginalRelationsArray(array $relations, array $expected): void { $resourceFactoryMock = $this->getAccessibleMock( @@ -344,10 +330,9 @@ final class ExportTest extends UnitTestCase /** * Temporary test until there is a complex functional test which tests exportAddFilesFromRelations() implicitly. - * - * @test - * @dataProvider exportAddFilesFromRelationsSucceedsDataProvider */ + #[DataProvider('exportAddFilesFromRelationsSucceedsDataProvider')] + #[Test] public function exportAddFilesFromRelationsSucceeds(array $dat, array $expected): void { $exportMock = $this->getAccessibleMock( diff --git a/typo3/sysext/indexed_search/Tests/Unit/IndexerTest.php b/typo3/sysext/indexed_search/Tests/Unit/IndexerTest.php index bdc69dff987c169b944149acc915e1bc3d174d4b..704b0502188cafe55167056a2f4ebbf2317755f4 100644 --- a/typo3/sysext/indexed_search/Tests/Unit/IndexerTest.php +++ b/typo3/sysext/indexed_search/Tests/Unit/IndexerTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\IndexedSearch\Tests\Unit; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Core\Environment; use TYPO3\CMS\Core\Http\NormalizedParams; use TYPO3\CMS\Core\Http\ServerRequest; @@ -38,9 +39,7 @@ final class IndexerTest extends UnitTestCase $GLOBALS['TYPO3_REQUEST'] = $request; } - /** - * @test - */ + #[Test] public function extractHyperLinksDoesNotReturnNonExistingLocalPath(): void { $html = 'test <a href="' . StringUtility::getUniqueId() . '">test</a> test'; @@ -50,9 +49,7 @@ final class IndexerTest extends UnitTestCase self::assertEquals('', $result[0]['localPath']); } - /** - * @test - */ + #[Test] public function extractHyperLinksReturnsCorrectPathWithBaseUrl(): void { $baseURL = $GLOBALS['TYPO3_REQUEST']->getAttribute('normalizedParams')->getSiteUrl(); @@ -63,9 +60,7 @@ final class IndexerTest extends UnitTestCase self::assertEquals(Environment::getPublicPath() . '/index.php', $result[0]['localPath']); } - /** - * @test - */ + #[Test] public function extractHyperLinksFindsCorrectPathWithAbsolutePath(): void { $html = 'test <a href="index.php">test</a> test'; @@ -75,9 +70,7 @@ final class IndexerTest extends UnitTestCase self::assertEquals(Environment::getPublicPath() . '/index.php', $result[0]['localPath']); } - /** - * @test - */ + #[Test] public function extractHyperLinksFindsCorrectPathForPathWithinTypo3Directory(): void { $html = 'test <a href="typo3/index.php">test</a> test'; @@ -87,9 +80,7 @@ final class IndexerTest extends UnitTestCase self::assertEquals(Environment::getPublicPath() . '/typo3/index.php', $result[0]['localPath']); } - /** - * @test - */ + #[Test] public function extractHyperLinksFindsCorrectPathUsingAbsRefPrefix(): void { $absRefPrefix = '/' . StringUtility::getUniqueId(); @@ -107,9 +98,7 @@ final class IndexerTest extends UnitTestCase self::assertEquals(Environment::getPublicPath() . '/index.php', $result[0]['localPath']); } - /** - * @test - */ + #[Test] public function extractBaseHrefExtractsBaseHref(): void { $baseHref = 'http://example.com/'; @@ -121,9 +110,8 @@ final class IndexerTest extends UnitTestCase /** * Tests whether indexer can extract content between "TYPO3SEARCH_begin" and "TYPO3SEARCH_end" markers - * - * @test */ + #[Test] public function typoSearchTagsRemovesBodyContentOutsideMarkers(): void { $body = <<<EOT @@ -165,9 +153,8 @@ EOT; /** * Tests whether indexer can extract content between multiple pairs of "TYPO3SEARCH" markers - * - * @test */ + #[Test] public function typoSearchTagsHandlesMultipleMarkerPairs(): void { $body = <<<EOT diff --git a/typo3/sysext/install/Tests/Unit/Controller/UpgradeControllerTest.php b/typo3/sysext/install/Tests/Unit/Controller/UpgradeControllerTest.php index 5f072f567894393e81921218df0a7efb4cee8c64..62506527f6768b9a27e4b022a6652ae3cdfb971c 100644 --- a/typo3/sysext/install/Tests/Unit/Controller/UpgradeControllerTest.php +++ b/typo3/sysext/install/Tests/Unit/Controller/UpgradeControllerTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Install\Tests\Unit\Controller; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Http\ServerRequest; use TYPO3\CMS\Core\View\ViewInterface; use TYPO3\CMS\Install\Controller\UpgradeController; @@ -46,10 +48,8 @@ final class UpgradeControllerTest extends UnitTestCase ]; } - /** - * @dataProvider versionDataProvider - * @test - */ + #[DataProvider('versionDataProvider')] + #[Test] public function versionIsAsserted(string $version, bool $expectsException): void { if ($expectsException) { diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/CodeStatisticsTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/CodeStatisticsTest.php index eeae82123607b9dbad97625f1dfbeed2f0acad6c..f35a8867e4ec8e25025be5a4c6630e9908f22289 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/CodeStatisticsTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/CodeStatisticsTest.php @@ -19,14 +19,13 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php; use PhpParser\NodeTraverser; use PhpParser\ParserFactory; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\CodeStatistics; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class CodeStatisticsTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function enterNodeSumsStatistics(): void { $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/GeneratorClassesResolverTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/GeneratorClassesResolverTest.php index e899cfda6304f2a879aa2241710758b2fbd5e1f3..3aa535367c6ffa6ef7099e8289c14a2caf065163 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/GeneratorClassesResolverTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/GeneratorClassesResolverTest.php @@ -24,15 +24,14 @@ use PhpParser\Node\Expr\StaticCall; use PhpParser\Node\Name\FullyQualified; use PhpParser\NodeTraverser; use PhpParser\ParserFactory; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\GeneratorClassesResolver; use TYPO3\CMS\Install\ExtensionScanner\Php\Matcher\AbstractCoreMatcher; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class GeneratorClassesResolverTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function visitorCreatesFullyQualifiedNameFromStringArgumentInMakeInstance(): void { $phpCode = <<<'EOC' @@ -53,9 +52,7 @@ EOC; self::assertInstanceOf(New_::class, $node->getAttribute(AbstractCoreMatcher::NODE_RESOLVED_AS)); } - /** - * @test - */ + #[Test] public function visitorDoesNotTransformDynamicallyCreatesFullyQualifiedNameFromStringArgumentInMakeInstance(): void { $phpCode = <<<'EOC' diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/AbstractCoreMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/AbstractCoreMatcherTest.php index d7d100ae51578a299719286c5d2c41ee12a986ec..fbab6f0a1ee8dff4099255eec244319aa355bafb 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/AbstractCoreMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/AbstractCoreMatcherTest.php @@ -17,14 +17,13 @@ declare(strict_types=1); namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\Matcher\AbstractCoreMatcher; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class AbstractCoreMatcherTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function validateMatcherDefinitionsRunsFineWithProperDefinition(): void { $matcher = $this->getAccessibleMockForAbstractClass(AbstractCoreMatcher::class, [], '', false); @@ -40,9 +39,7 @@ final class AbstractCoreMatcherTest extends UnitTestCase $matcher->_call('validateMatcherDefinitions', ['requiredArg1']); } - /** - * @test - */ + #[Test] public function validateMatcherDefinitionsThrowsIfRequiredArgIsNotInConfig(): void { $matcher = $this->getAccessibleMockForAbstractClass(AbstractCoreMatcher::class, [], '', false); @@ -60,9 +57,7 @@ final class AbstractCoreMatcherTest extends UnitTestCase $matcher->_call('validateMatcherDefinitions', ['requiredArg1']); } - /** - * @test - */ + #[Test] public function validateMatcherDefinitionsThrowsWithMissingRestFiles(): void { $matcher = $this->getAccessibleMockForAbstractClass(AbstractCoreMatcher::class, [], '', false); @@ -77,9 +72,7 @@ final class AbstractCoreMatcherTest extends UnitTestCase $matcher->_call('validateMatcherDefinitions', []); } - /** - * @test - */ + #[Test] public function validateMatcherDefinitionsThrowsWithEmptySingleRestFile(): void { $matcher = $this->getAccessibleMockForAbstractClass(AbstractCoreMatcher::class, [], '', false); @@ -97,9 +90,7 @@ final class AbstractCoreMatcherTest extends UnitTestCase $matcher->_call('validateMatcherDefinitions', []); } - /** - * @test - */ + #[Test] public function initializeMethodNameArrayThrowsWithInvalidKeys(): void { $matcher = $this->getAccessibleMockForAbstractClass(AbstractCoreMatcher::class, [], '', false); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ArrayDimensionMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ArrayDimensionMatcherTest.php index 9f0f25101a977c3050d6dd9372d8ff55d730b840..264678db60ef649fe1570d6facbff6bc7081bf86 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ArrayDimensionMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ArrayDimensionMatcherTest.php @@ -20,14 +20,14 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\Matcher\ArrayDimensionMatcher; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ArrayDimensionMatcherTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function hitsFromFixtureAreFound(): void { $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); @@ -118,10 +118,8 @@ final class ArrayDimensionMatcherTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider matchesReturnsExpectedRestFilesDataProvider - */ + #[DataProvider('matchesReturnsExpectedRestFilesDataProvider')] + #[Test] public function matchesReturnsExpectedRestFiles(array $configuration, string $phpCode, array $expected): void { $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ArrayGlobalMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ArrayGlobalMatcherTest.php index dad1a5012a187a0da9c866b8ae22d7eed6eb6627..4e4aad346126126079f3af2bdc77ab4d0cc479ac 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ArrayGlobalMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ArrayGlobalMatcherTest.php @@ -20,14 +20,14 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\Matcher\ArrayGlobalMatcher; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ArrayGlobalMatcherTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function hitsFromFixtureAreFound(): void { $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); @@ -83,10 +83,8 @@ final class ArrayGlobalMatcherTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider matchesReturnsExpectedRestFilesDataProvider - */ + #[DataProvider('matchesReturnsExpectedRestFilesDataProvider')] + #[Test] public function matchesReturnsExpectedRestFiles(array $configuration, string $phpCode, array $expected): void { $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ClassConstantMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ClassConstantMatcherTest.php index 1b003af86698349ee3ae512a8847eabf748b8cc9..b6d144818e53234183463a96eb8a319fe067f091 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ClassConstantMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ClassConstantMatcherTest.php @@ -20,15 +20,15 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\GeneratorClassesResolver; use TYPO3\CMS\Install\ExtensionScanner\Php\Matcher\ClassConstantMatcher; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ClassConstantMatcherTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function hitsFromFixtureAreFound(): void { $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); @@ -92,10 +92,8 @@ final class ClassConstantMatcherTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider matchesReturnsExpectedRestFilesDataProvider - */ + #[DataProvider('matchesReturnsExpectedRestFilesDataProvider')] + #[Test] public function matchesReturnsExpectedRestFiles(array $configuration, string $phpCode, array $expected): void { $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ClassNameMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ClassNameMatcherTest.php index 2fa4180b48bbf3e61971607e752e4b653a6b7d4e..8e46a0831c5d8a0d6835afdf96c2a1e1114d848e 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ClassNameMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ClassNameMatcherTest.php @@ -20,15 +20,14 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\GeneratorClassesResolver; use TYPO3\CMS\Install\ExtensionScanner\Php\Matcher\ClassNameMatcher; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ClassNameMatcherTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function hitsFromFixtureAreFound(): void { $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ConstantMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ConstantMatcherTest.php index 5ca0762515e893794ca06b28b5b63d67e6360a95..337f18d334db4057cbd12dcf51e709327988885c 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ConstantMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ConstantMatcherTest.php @@ -20,15 +20,15 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\GeneratorClassesResolver; use TYPO3\CMS\Install\ExtensionScanner\Php\Matcher\ConstantMatcher; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ConstantMatcherTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function hitsFromFixtureAreFound(): void { $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); @@ -85,10 +85,8 @@ final class ConstantMatcherTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider matchesReturnsExpectedRestFilesDataProvider - */ + #[DataProvider('matchesReturnsExpectedRestFilesDataProvider')] + #[Test] public function matchesReturnsExpectedRestFiles(array $configuration, string $phpCode, array $expected): void { $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ConstructorArgumentMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ConstructorArgumentMatcherTest.php index c1bc543451c349282b37eed1d3cdec392d24c3c8..040ca6a2ab249532e400a239d91b617f22cfb408 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ConstructorArgumentMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ConstructorArgumentMatcherTest.php @@ -20,6 +20,8 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\TestCase; use TYPO3\CMS\Install\ExtensionScanner\Php\GeneratorClassesResolver; use TYPO3\CMS\Install\ExtensionScanner\Php\Matcher\ConstructorArgumentMatcher; @@ -72,10 +74,8 @@ final class ConstructorArgumentMatcherTest extends TestCase ]; } - /** - * @test - * @dataProvider hitsFromFixtureAreFoundDataProvider - */ + #[DataProvider('hitsFromFixtureAreFoundDataProvider')] + #[Test] public function hitsFromFixtureAreFound(array $configuration, array $expectation): void { $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/FunctionCallMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/FunctionCallMatcherTest.php index 8e19b4254a610724d4d9d2db74d322c32d67aeb1..7e7259d74525f2e96c14f72c1e6b755bea462d5e 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/FunctionCallMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/FunctionCallMatcherTest.php @@ -20,14 +20,13 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\Matcher\FunctionCallMatcher; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class FunctionCallMatcherTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function hitsFromFixtureAreFound(): void { $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); @@ -59,9 +58,7 @@ final class FunctionCallMatcherTest extends UnitTestCase self::assertEquals($expectedHitLineNumbers, $actualHitLineNumbers); } - /** - * @test - */ + #[Test] public function matchIsIgnoredIfIgnoreFileIsSet(): void { $phpCode = <<<'EOC' diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/InterfaceMethodChangedMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/InterfaceMethodChangedMatcherTest.php index 5648bc3238efbf24c6a467855957f928ff9f1e88..c69ac7d974148cdc186d68cea7eacc27ca113870 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/InterfaceMethodChangedMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/InterfaceMethodChangedMatcherTest.php @@ -20,14 +20,13 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\Matcher\InterfaceMethodChangedMatcher; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class InterfaceMethodChangedMatcherTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function hitsFromFixtureAreFound(): void { $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodAnnotationMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodAnnotationMatcherTest.php index 215758941d6c40279c3d015e79a23aabd97c92c3..f2ed09bc07f93e0aea991b3d5870c55612dad54f 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodAnnotationMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodAnnotationMatcherTest.php @@ -20,14 +20,13 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\Matcher\MethodAnnotationMatcher; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class MethodAnnotationMatcherTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function hitsFromFixtureAreFound(): void { $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentDroppedMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentDroppedMatcherTest.php index 11a9f5e70f436df7a8130904f136d1024f8aacc3..78d0e0c428f99406f2b2be61bb4b3d9067ec94ea 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentDroppedMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentDroppedMatcherTest.php @@ -20,14 +20,14 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\Matcher\MethodArgumentDroppedMatcher; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class MethodArgumentDroppedMatcherTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function hitsFromFixtureAreFound(): void { $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); @@ -219,10 +219,8 @@ final class MethodArgumentDroppedMatcherTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider matchesReturnsExpectedRestFilesDataProvider - */ + #[DataProvider('matchesReturnsExpectedRestFilesDataProvider')] + #[Test] public function matchesReturnsExpectedRestFiles(array $configuration, string $phpCode, array $expected): void { $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentDroppedStaticMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentDroppedStaticMatcherTest.php index 6f96a75057d2f6fb91bca3ff666076746520e6a5..083b114e480a86b366f3f31d248f3b5a6e2e08f2 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentDroppedStaticMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentDroppedStaticMatcherTest.php @@ -20,14 +20,14 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\Matcher\MethodArgumentDroppedStaticMatcher; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class MethodArgumentDroppedStaticMatcherTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function hitsFromFixtureAreFound(): void { $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); @@ -222,10 +222,8 @@ final class MethodArgumentDroppedStaticMatcherTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider matchesReturnsExpectedRestFilesDataProvider - */ + #[DataProvider('matchesReturnsExpectedRestFilesDataProvider')] + #[Test] public function matchesReturnsExpectedRestFiles(array $configuration, string $phpCode, array $expected): void { $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentRequiredMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentRequiredMatcherTest.php index 5444e65826a8644636206a5cd387bcc6e1086ad1..c6ac7a2b0455f2937da884b8cf858345dda96e1b 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentRequiredMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentRequiredMatcherTest.php @@ -20,14 +20,14 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\Matcher\MethodArgumentRequiredMatcher; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class MethodArgumentRequiredMatcherTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function hitsFromFixtureAreFound(): void { $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); @@ -212,10 +212,8 @@ final class MethodArgumentRequiredMatcherTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider matchesReturnsExpectedRestFilesDataProvider - */ + #[DataProvider('matchesReturnsExpectedRestFilesDataProvider')] + #[Test] public function matchesReturnsExpectedRestFiles(array $configuration, string $phpCode, array $expected): void { $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentRequiredStaticMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentRequiredStaticMatcherTest.php index d384c1e622c7946aecb178601aef1d56340b5075..9c92c6cc8e8152d38a99c3615a51a4ff264f1928 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentRequiredStaticMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentRequiredStaticMatcherTest.php @@ -20,14 +20,14 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\Matcher\MethodArgumentRequiredStaticMatcher; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class MethodArgumentRequiredStaticMatcherTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function hitsFromFixtureAreFound(): void { $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); @@ -190,10 +190,8 @@ final class MethodArgumentRequiredStaticMatcherTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider matchesReturnsExpectedRestFilesDataProvider - */ + #[DataProvider('matchesReturnsExpectedRestFilesDataProvider')] + #[Test] public function matchesReturnsExpectedRestFiles(array $configuration, string $phpCode, array $expected): void { $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentUnusedMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentUnusedMatcherTest.php index a09815bc7cd58f2ffa38da84fee1b0aa1328db95..f57591b5fa2b1f15323416c3bc8eda5cefca66b6 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentUnusedMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentUnusedMatcherTest.php @@ -20,14 +20,14 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\Matcher\MethodArgumentUnusedMatcher; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class MethodArgumentUnusedMatcherTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function hitsFromFixtureAreFound(): void { $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); @@ -208,10 +208,8 @@ final class MethodArgumentUnusedMatcherTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider matchesReturnsExpectedRestFilesDataProvider - */ + #[DataProvider('matchesReturnsExpectedRestFilesDataProvider')] + #[Test] public function matchesReturnsExpectedRestFiles(array $configuration, string $phpCode, array $expected): void { $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodCallMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodCallMatcherTest.php index 97062abfeb1ebfc5f35bb4e1faac1e13adc50d5c..172af55b7a8f73f32830181465d1281b3b49aaa4 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodCallMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodCallMatcherTest.php @@ -20,14 +20,14 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\Matcher\MethodCallMatcher; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class MethodCallMatcherTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function hitsFromFixtureAreFound(): void { $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); @@ -62,9 +62,7 @@ final class MethodCallMatcherTest extends UnitTestCase self::assertEquals($expectedHitLineNumbers, $actualHitLineNumbers); } - /** - * @test - */ + #[Test] public function matchIsIgnoredIfIgnoreFileIsSet(): void { $phpCode = <<<'EOC' @@ -302,10 +300,8 @@ EOC; ]; } - /** - * @test - * @dataProvider matchesReturnsExpectedRestFilesDataProvider - */ + #[DataProvider('matchesReturnsExpectedRestFilesDataProvider')] + #[Test] public function matchesReturnsExpectedRestFiles(array $configuration, string $phpCode, array $expected): void { $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodCallStaticMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodCallStaticMatcherTest.php index 77125199e0a150042ca0ac76d6891cbb32882395..616fbb561caa81e2ce1dd41481c19c1d15036202 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodCallStaticMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodCallStaticMatcherTest.php @@ -20,15 +20,15 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\GeneratorClassesResolver; use TYPO3\CMS\Install\ExtensionScanner\Php\Matcher\MethodCallStaticMatcher; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class MethodCallStaticMatcherTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function hitsFromFixtureAreFound(): void { $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); @@ -263,10 +263,8 @@ final class MethodCallStaticMatcherTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider matchesReturnsExpectedRestFilesDataProvider - */ + #[DataProvider('matchesReturnsExpectedRestFilesDataProvider')] + #[Test] public function matchesReturnsExpectedRestFiles(array $configuration, string $phpCode, array $expected): void { $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/PropertyAnnotationMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/PropertyAnnotationMatcherTest.php index 50e91dcdbd45304357c3f5e2a200708562e578da..22c74b51437a51c6c375153faa064f4886fa806f 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/PropertyAnnotationMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/PropertyAnnotationMatcherTest.php @@ -20,14 +20,13 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\Matcher\PropertyAnnotationMatcher; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class PropertyAnnotationMatcherTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function hitsFromFixtureAreFound(): void { $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/PropertyExistsStaticMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/PropertyExistsStaticMatcherTest.php index 676e3764f85dbf42f2d5f905e495ba0f64008230..e62155b7d9039738bc63f35afc1fc7495f7df84b 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/PropertyExistsStaticMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/PropertyExistsStaticMatcherTest.php @@ -20,14 +20,13 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\Matcher\PropertyExistsStaticMatcher; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class PropertyExistsStaticMatcherTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function hitsFromFixtureAreFound(): void { $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/PropertyProtectedMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/PropertyProtectedMatcherTest.php index 77180b2258447d4a24b0203dfc2273a90f1dd631..bd4235a7d36e39b57f79e88615e6c37c19888327 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/PropertyProtectedMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/PropertyProtectedMatcherTest.php @@ -20,14 +20,14 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\Matcher\PropertyProtectedMatcher; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class PropertyProtectedMatcherTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function hitsFromFixtureAreFound(): void { $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); @@ -117,10 +117,8 @@ final class PropertyProtectedMatcherTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider matchesReturnsExpectedRestFilesDataProvider - */ + #[DataProvider('matchesReturnsExpectedRestFilesDataProvider')] + #[Test] public function matchesReturnsExpectedRestFiles(array $configuration, string $phpCode, array $expected): void { $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/PropertyPublicMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/PropertyPublicMatcherTest.php index f1077840c46e6707f8123cb816c374fcd7a41e78..0f6142226237dce6726c8bfb7f05edab14b97519 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/PropertyPublicMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/PropertyPublicMatcherTest.php @@ -20,14 +20,14 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\Matcher\PropertyPublicMatcher; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class PropertyPublicMatcherTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function hitsFromFixtureAreFound(): void { $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); @@ -117,10 +117,8 @@ final class PropertyPublicMatcherTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider matchesReturnsExpectedRestFilesDataProvider - */ + #[DataProvider('matchesReturnsExpectedRestFilesDataProvider')] + #[Test] public function matchesReturnsExpectedRestFiles(array $configuration, string $phpCode, array $expected): void { $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/MatcherFactoryTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/MatcherFactoryTest.php index 5da6a8a51104639b6a9ced695e059c1a5b659143..0e3329a5c8babf9cc9fb104323ef03e41edd9ea0 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/MatcherFactoryTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/MatcherFactoryTest.php @@ -17,14 +17,13 @@ declare(strict_types=1); namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\MatcherFactory; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class MatcherFactoryTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function createAllThrowWithMissingClass(): void { $subject = new MatcherFactory(); @@ -38,9 +37,7 @@ final class MatcherFactoryTest extends UnitTestCase $subject->createAll($configuration); } - /** - * @test - */ + #[Test] public function createAllThrowsWithMissingConfiguration(): void { $subject = new MatcherFactory(); @@ -54,9 +51,7 @@ final class MatcherFactoryTest extends UnitTestCase $subject->createAll($configuration); } - /** - * @test - */ + #[Test] public function createAllThrowsWithBothConfigurationFileAndConfigurationArray(): void { $subject = new MatcherFactory(); @@ -72,9 +67,7 @@ final class MatcherFactoryTest extends UnitTestCase $subject->createAll($configuration); } - /** - * @test - */ + #[Test] public function createAllThrowsIfConfigurationFileDoesNotExist(): void { $subject = new MatcherFactory(); @@ -89,9 +82,7 @@ final class MatcherFactoryTest extends UnitTestCase $subject->createAll($configuration); } - /** - * @test - */ + #[Test] public function createAllThrowsIfConfigurationFileDoesNotReturnArray(): void { $subject = new MatcherFactory(); @@ -106,9 +97,7 @@ final class MatcherFactoryTest extends UnitTestCase $subject->createAll($configuration); } - /** - * @test - */ + #[Test] public function createAllThrowsIfConfigurationArrayIsNotAnArray(): void { $subject = new MatcherFactory(); @@ -123,9 +112,7 @@ final class MatcherFactoryTest extends UnitTestCase $subject->createAll($configuration); } - /** - * @test - */ + #[Test] public function createAllThrowIfMatcherDoesNotImplementCodeScannerInterface(): void { $subject = new MatcherFactory(); diff --git a/typo3/sysext/install/Tests/Unit/FolderStructure/AbstractNodeTest.php b/typo3/sysext/install/Tests/Unit/FolderStructure/AbstractNodeTest.php index c0191e292c107945b7fb1c679075e8b622310548..58afce216278db56c88ed5a92aac01fc5fb1ff8e 100644 --- a/typo3/sysext/install/Tests/Unit/FolderStructure/AbstractNodeTest.php +++ b/typo3/sysext/install/Tests/Unit/FolderStructure/AbstractNodeTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Install\Tests\Unit\FolderStructure; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Core\Environment; use TYPO3\CMS\Core\Type\ContextualFeedbackSeverity; use TYPO3\CMS\Core\Utility\GeneralUtility; @@ -29,9 +30,7 @@ use TYPO3\CMS\Install\FolderStructure\RootNodeInterface; final class AbstractNodeTest extends AbstractFolderStructureTestCase { - /** - * @test - */ + #[Test] public function getNameReturnsSetName(): void { $node = $this->getAccessibleMock(AbstractNode::class, null, [], '', false); @@ -40,9 +39,7 @@ final class AbstractNodeTest extends AbstractFolderStructureTestCase self::assertSame($name, $node->getName()); } - /** - * @test - */ + #[Test] public function getTargetPermissionReturnsSetTargetPermission(): void { $node = $this->getAccessibleMock(AbstractNode::class, null, [], '', false); @@ -51,9 +48,7 @@ final class AbstractNodeTest extends AbstractFolderStructureTestCase self::assertSame($permission, $node->_call('getTargetPermission')); } - /** - * @test - */ + #[Test] public function getChildrenReturnsSetChildren(): void { $node = $this->getAccessibleMock(AbstractNode::class, null, [], '', false); @@ -62,9 +57,7 @@ final class AbstractNodeTest extends AbstractFolderStructureTestCase self::assertSame($children, $node->_call('getChildren')); } - /** - * @test - */ + #[Test] public function getParentReturnsSetParent(): void { $node = $this->getAccessibleMock(AbstractNode::class, null, [], '', false); @@ -73,9 +66,7 @@ final class AbstractNodeTest extends AbstractFolderStructureTestCase self::assertSame($parent, $node->_call('getParent')); } - /** - * @test - */ + #[Test] public function getAbsolutePathCallsParentForPathAndAppendsOwnName(): void { $node = $this->getAccessibleMock(AbstractNode::class, null, [], '', false); @@ -88,9 +79,7 @@ final class AbstractNodeTest extends AbstractFolderStructureTestCase self::assertSame($parentPath . '/' . $name, $node->getAbsolutePath()); } - /** - * @test - */ + #[Test] public function isWritableCallsParentIsWritable(): void { $node = $this->getAccessibleMock(AbstractNode::class, null, [], '', false); @@ -100,9 +89,7 @@ final class AbstractNodeTest extends AbstractFolderStructureTestCase $node->isWritable(); } - /** - * @test - */ + #[Test] public function isWritableReturnsWritableStatusOfParent(): void { $node = $this->getAccessibleMock(AbstractNode::class, null, [], '', false); @@ -112,9 +99,7 @@ final class AbstractNodeTest extends AbstractFolderStructureTestCase self::assertTrue($node->isWritable()); } - /** - * @test - */ + #[Test] public function existsReturnsTrueIfNodeExists(): void { $node = $this->getAccessibleMock(AbstractNode::class, ['getAbsolutePath'], [], '', false); @@ -123,9 +108,7 @@ final class AbstractNodeTest extends AbstractFolderStructureTestCase self::assertTrue($node->_call('exists')); } - /** - * @test - */ + #[Test] public function existsReturnsTrueIfIsLinkAndTargetIsDead(): void { $node = $this->getAccessibleMock(AbstractNode::class, ['getAbsolutePath'], [], '', false); @@ -141,9 +124,7 @@ final class AbstractNodeTest extends AbstractFolderStructureTestCase self::assertTrue($node->_call('exists')); } - /** - * @test - */ + #[Test] public function existsReturnsFalseIfNodeNotExists(): void { $node = $this->getAccessibleMock(AbstractNode::class, ['getAbsolutePath'], [], '', false); @@ -152,9 +133,7 @@ final class AbstractNodeTest extends AbstractFolderStructureTestCase self::assertFalse($node->_call('exists')); } - /** - * @test - */ + #[Test] public function fixPermissionThrowsExceptionIfPermissionAreAlreadyCorrect(): void { $node = $this->getAccessibleMock( @@ -171,9 +150,7 @@ final class AbstractNodeTest extends AbstractFolderStructureTestCase $node->_call('fixPermission'); } - /** - * @test - */ + #[Test] public function fixPermissionReturnsOkStatusIfPermissionCanBeFixedAndSetsPermissionToCorrectValue(): void { $node = $this->getAccessibleMock( @@ -196,9 +173,7 @@ final class AbstractNodeTest extends AbstractFolderStructureTestCase self::assertSame('2770', $resultDirectoryPermissions); } - /** - * @test - */ + #[Test] public function isPermissionCorrectReturnsTrueOnWindowsOs(): void { $node = $this->getAccessibleMock(AbstractNode::class, ['isWindowsOs'], [], '', false); @@ -206,9 +181,7 @@ final class AbstractNodeTest extends AbstractFolderStructureTestCase self::assertTrue($node->_call('isPermissionCorrect')); } - /** - * @test - */ + #[Test] public function isPermissionCorrectReturnsFalseIfTargetPermissionAndCurrentPermissionAreNotIdentical(): void { $node = $this->getAccessibleMock(AbstractNode::class, ['isWindowsOs', 'getCurrentPermission'], [], '', false); @@ -218,9 +191,7 @@ final class AbstractNodeTest extends AbstractFolderStructureTestCase self::assertFalse($node->_call('isPermissionCorrect')); } - /** - * @test - */ + #[Test] public function getCurrentPermissionReturnsCurrentDirectoryPermission(): void { $node = $this->getAccessibleMock(AbstractNode::class, ['getAbsolutePath'], [], '', false); @@ -231,9 +202,7 @@ final class AbstractNodeTest extends AbstractFolderStructureTestCase self::assertSame('0444', $node->_call('getCurrentPermission')); } - /** - * @test - */ + #[Test] public function getCurrentPermissionReturnsCurrentFilePermission(): void { $node = $this->getAccessibleMock(AbstractNode::class, ['getAbsolutePath'], [], '', false); @@ -245,9 +214,7 @@ final class AbstractNodeTest extends AbstractFolderStructureTestCase self::assertSame('0770', $node->_call('getCurrentPermission')); } - /** - * @test - */ + #[Test] public function getRelativePathBelowSiteRootThrowsExceptionIfGivenPathIsNotBelowPathSiteConstant(): void { $this->expectException(InvalidArgumentException::class); @@ -256,9 +223,7 @@ final class AbstractNodeTest extends AbstractFolderStructureTestCase $node->_call('getRelativePathBelowSiteRoot', '/tmp'); } - /** - * @test - */ + #[Test] public function getRelativePathCallsGetAbsolutePathIfPathIsNull(): void { $node = $this->getAccessibleMock( @@ -272,9 +237,7 @@ final class AbstractNodeTest extends AbstractFolderStructureTestCase $node->_call('getRelativePathBelowSiteRoot', null); } - /** - * @test - */ + #[Test] public function getRelativePathBelowSiteRootReturnsSingleForwardSlashIfGivenPathEqualsPathSiteConstant(): void { $node = $this->getAccessibleMock(AbstractNode::class, null, [], '', false); @@ -282,9 +245,7 @@ final class AbstractNodeTest extends AbstractFolderStructureTestCase self::assertSame('/', $result); } - /** - * @test - */ + #[Test] public function getRelativePathBelowSiteRootReturnsSubPath(): void { $node = $this->getAccessibleMock(AbstractNode::class, null, [], '', false); diff --git a/typo3/sysext/install/Tests/Unit/FolderStructure/DefaultFactoryTest.php b/typo3/sysext/install/Tests/Unit/FolderStructure/DefaultFactoryTest.php index 92ecad0b40bdafd28f1ba70616986d8551ae0693..4123eb9efc14041d3e6663e723bc713cb51d6f13 100644 --- a/typo3/sysext/install/Tests/Unit/FolderStructure/DefaultFactoryTest.php +++ b/typo3/sysext/install/Tests/Unit/FolderStructure/DefaultFactoryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Install\Tests\Unit\FolderStructure; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\FolderStructure\DefaultFactory; use TYPO3\CMS\Install\FolderStructure\StructureFacadeInterface; use TYPO3\CMS\Install\WebserverType; @@ -24,9 +25,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class DefaultFactoryTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getStructureReturnsInstanceOfStructureFacadeInterface(): void { $webserverType = WebserverType::fromType('i-dont-care'); diff --git a/typo3/sysext/install/Tests/Unit/FolderStructure/DirectoryNodeTest.php b/typo3/sysext/install/Tests/Unit/FolderStructure/DirectoryNodeTest.php index 347eaf30cfdb8bbcf9ab27ee405d29865dacf2c9..71729b0fb0855cca80a392e78d6e4db818f59d49 100644 --- a/typo3/sysext/install/Tests/Unit/FolderStructure/DirectoryNodeTest.php +++ b/typo3/sysext/install/Tests/Unit/FolderStructure/DirectoryNodeTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Install\Tests\Unit\FolderStructure; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Core\Environment; use TYPO3\CMS\Core\Messaging\FlashMessage; use TYPO3\CMS\Core\Type\ContextualFeedbackSeverity; @@ -30,9 +31,7 @@ use TYPO3\CMS\Install\FolderStructure\RootNodeInterface; final class DirectoryNodeTest extends AbstractFolderStructureTestCase { - /** - * @test - */ + #[Test] public function constructorThrowsExceptionIfParentIsNull(): void { $this->expectException(InvalidArgumentException::class); @@ -40,9 +39,7 @@ final class DirectoryNodeTest extends AbstractFolderStructureTestCase new DirectoryNode([], null); } - /** - * @test - */ + #[Test] public function constructorThrowsExceptionIfNameContainsForwardSlash(): void { $this->expectException(InvalidArgumentException::class); @@ -54,9 +51,7 @@ final class DirectoryNodeTest extends AbstractFolderStructureTestCase new DirectoryNode($structure, $parent); } - /** - * @test - */ + #[Test] public function constructorCallsCreateChildrenIfChildrenAreSet(): void { $parent = $this->createMock(NodeInterface::class); @@ -75,9 +70,7 @@ final class DirectoryNodeTest extends AbstractFolderStructureTestCase $node->__construct($structure, $parent); } - /** - * @test - */ + #[Test] public function constructorSetsParent(): void { $parent = $this->createMock(NodeInterface::class); @@ -89,9 +82,7 @@ final class DirectoryNodeTest extends AbstractFolderStructureTestCase self::assertSame($parent, $node->_call('getParent')); } - /** - * @test - */ + #[Test] public function constructorSetsTargetPermission(): void { $parent = $this->createMock(NodeInterface::class); @@ -105,9 +96,7 @@ final class DirectoryNodeTest extends AbstractFolderStructureTestCase self::assertSame($targetPermission, $node->_call('getTargetPermission')); } - /** - * @test - */ + #[Test] public function constructorSetsName(): void { $parent = $this->createMock(RootNodeInterface::class); @@ -116,9 +105,7 @@ final class DirectoryNodeTest extends AbstractFolderStructureTestCase self::assertSame($name, $node->getName()); } - /** - * @test - */ + #[Test] public function getStatusReturnsArray(): void { $node = $this->getAccessibleMock( @@ -138,9 +125,7 @@ final class DirectoryNodeTest extends AbstractFolderStructureTestCase self::assertIsArray($node->getStatus()); } - /** - * @test - */ + #[Test] public function getStatusReturnsArrayWithWarningStatusIfDirectoryNotExists(): void { $node = $this->getAccessibleMock( @@ -161,9 +146,7 @@ final class DirectoryNodeTest extends AbstractFolderStructureTestCase self::assertSame(ContextualFeedbackSeverity::WARNING, $statusArray[0]->getSeverity()); } - /** - * @test - */ + #[Test] public function getStatusReturnsArrayWithErrorStatusIfNodeIsNotADirectory(): void { $node = $this->getAccessibleMock( @@ -185,9 +168,7 @@ final class DirectoryNodeTest extends AbstractFolderStructureTestCase self::assertSame(ContextualFeedbackSeverity::ERROR, $statusArray[0]->getSeverity()); } - /** - * @test - */ + #[Test] public function getStatusReturnsArrayWithErrorStatusIfDirectoryExistsButIsNotWritable(): void { $node = $this->getAccessibleMock( @@ -209,9 +190,7 @@ final class DirectoryNodeTest extends AbstractFolderStructureTestCase self::assertSame(ContextualFeedbackSeverity::ERROR, $statusArray[0]->getSeverity()); } - /** - * @test - */ + #[Test] public function getStatusReturnsArrayWithNoticeStatusIfDirectoryExistsButPermissionAreNotCorrect(): void { $node = $this->getAccessibleMock( @@ -233,9 +212,7 @@ final class DirectoryNodeTest extends AbstractFolderStructureTestCase self::assertSame(ContextualFeedbackSeverity::NOTICE, $statusArray[0]->getSeverity()); } - /** - * @test - */ + #[Test] public function getStatusReturnsArrayWithOkStatusIfDirectoryExistsAndPermissionAreCorrect(): void { $node = $this->getAccessibleMock( @@ -257,9 +234,7 @@ final class DirectoryNodeTest extends AbstractFolderStructureTestCase self::assertSame(ContextualFeedbackSeverity::OK, $statusArray[0]->getSeverity()); } - /** - * @test - */ + #[Test] public function getStatusCallsGetStatusOnChildren(): void { $node = $this->getAccessibleMock( @@ -281,9 +256,7 @@ final class DirectoryNodeTest extends AbstractFolderStructureTestCase $node->getStatus(); } - /** - * @test - */ + #[Test] public function getStatusReturnsArrayWithOwnStatusAndStatusOfChild(): void { $node = $this->getAccessibleMock( @@ -308,9 +281,7 @@ final class DirectoryNodeTest extends AbstractFolderStructureTestCase self::assertSame($childMessage, $statusOfChild); } - /** - * @test - */ + #[Test] public function fixCallsFixSelfAndReturnsItsResult(): void { $node = $this->getMockBuilder(DirectoryNode::class) @@ -322,9 +293,7 @@ final class DirectoryNodeTest extends AbstractFolderStructureTestCase self::assertSame($uniqueReturn, $node->fix()); } - /** - * @test - */ + #[Test] public function fixCallsFixOnChildrenAndReturnsMergedResult(): void { $node = $this->getAccessibleMock(DirectoryNode::class, ['fixSelf'], [], '', false); @@ -344,9 +313,7 @@ final class DirectoryNodeTest extends AbstractFolderStructureTestCase self::assertSame([$uniqueReturnSelf, $uniqueReturnChild1, $uniqueReturnChild2], $node->fix()); } - /** - * @test - */ + #[Test] public function fixSelfCallsCreateDirectoryIfDirectoryDoesNotExistAndReturnsResult(): void { $node = $this->getAccessibleMock( @@ -363,9 +330,7 @@ final class DirectoryNodeTest extends AbstractFolderStructureTestCase self::assertSame([$uniqueReturn], $node->_call('fixSelf')); } - /** - * @test - */ + #[Test] public function fixSelfReturnsErrorStatusIfNodeExistsButIsNotADirectoryAndReturnsResult(): void { $node = $this->getAccessibleMock( @@ -384,9 +349,7 @@ final class DirectoryNodeTest extends AbstractFolderStructureTestCase self::assertSame(ContextualFeedbackSeverity::ERROR, $result[0]->getSeverity()); } - /** - * @test - */ + #[Test] public function fixSelfCallsFixPermissionIfDirectoryExistsButIsNotWritable(): void { $node = $this->getAccessibleMock( @@ -403,9 +366,7 @@ final class DirectoryNodeTest extends AbstractFolderStructureTestCase self::assertSame([$message], $node->_call('fixSelf')); } - /** - * @test - */ + #[Test] public function createDirectoryThrowsExceptionIfNodeExists(): void { $this->expectException(Exception::class); @@ -416,9 +377,7 @@ final class DirectoryNodeTest extends AbstractFolderStructureTestCase $node->_call('createDirectory'); } - /** - * @test - */ + #[Test] public function createDirectoryCreatesDirectory(): void { $node = $this->getAccessibleMock(DirectoryNode::class, ['exists', 'getAbsolutePath', 'getRelativePathBelowSiteRoot'], [], '', false); @@ -430,9 +389,7 @@ final class DirectoryNodeTest extends AbstractFolderStructureTestCase self::assertDirectoryExists($path); } - /** - * @test - */ + #[Test] public function createDirectoryReturnsOkStatusIfDirectoryWasCreated(): void { $node = $this->getAccessibleMock(DirectoryNode::class, ['exists', 'getAbsolutePath', 'getRelativePathBelowSiteRoot'], [], '', false); @@ -443,9 +400,7 @@ final class DirectoryNodeTest extends AbstractFolderStructureTestCase self::assertSame(ContextualFeedbackSeverity::OK, $node->_call('createDirectory')->getSeverity()); } - /** - * @test - */ + #[Test] public function createChildrenThrowsExceptionIfAChildTypeIsNotSet(): void { $this->expectException(InvalidArgumentException::class); @@ -459,9 +414,7 @@ final class DirectoryNodeTest extends AbstractFolderStructureTestCase $node->_call('createChildren', $brokenStructure); } - /** - * @test - */ + #[Test] public function createChildrenThrowsExceptionIfAChildNameIsNotSet(): void { $this->expectException(InvalidArgumentException::class); @@ -475,9 +428,7 @@ final class DirectoryNodeTest extends AbstractFolderStructureTestCase $node->_call('createChildren', $brokenStructure); } - /** - * @test - */ + #[Test] public function createChildrenThrowsExceptionForMultipleChildrenWithSameName(): void { $this->expectException(InvalidArgumentException::class); @@ -496,9 +447,7 @@ final class DirectoryNodeTest extends AbstractFolderStructureTestCase $node->_call('createChildren', $brokenStructure); } - /** - * @test - */ + #[Test] public function getChildrenReturnsCreatedChild(): void { $node = $this->getAccessibleMock(DirectoryNode::class, null, [], '', false); @@ -522,9 +471,7 @@ final class DirectoryNodeTest extends AbstractFolderStructureTestCase self::assertSame($childName, $child->getName()); } - /** - * @test - */ + #[Test] public function isWritableReturnsFalseIfNodeDoesNotExist(): void { $node = $this->getAccessibleMock(DirectoryNode::class, ['getAbsolutePath'], [], '', false); @@ -533,9 +480,7 @@ final class DirectoryNodeTest extends AbstractFolderStructureTestCase self::assertFalse($node->isWritable()); } - /** - * @test - */ + #[Test] public function isWritableReturnsTrueIfNodeExistsAndFileCanBeCreated(): void { $node = $this->getAccessibleMock(DirectoryNode::class, ['getAbsolutePath'], [], '', false); @@ -544,9 +489,7 @@ final class DirectoryNodeTest extends AbstractFolderStructureTestCase self::assertTrue($node->isWritable()); } - /** - * @test - */ + #[Test] public function isDirectoryReturnsTrueIfNameIsADirectory(): void { $node = $this->getAccessibleMock(DirectoryNode::class, ['getAbsolutePath'], [], '', false); @@ -555,9 +498,7 @@ final class DirectoryNodeTest extends AbstractFolderStructureTestCase self::assertTrue($node->_call('isDirectory')); } - /** - * @test - */ + #[Test] public function isDirectoryReturnsFalseIfNameIsALinkToADirectory(): void { $node = $this->getAccessibleMock(DirectoryNode::class, ['getAbsolutePath'], [], '', false); diff --git a/typo3/sysext/install/Tests/Unit/FolderStructure/FileNodeTest.php b/typo3/sysext/install/Tests/Unit/FolderStructure/FileNodeTest.php index fd2cd4de2f548bc65e8e7a10f03e1b7a449f5ced..63c28c71a4124288ccf6df11a984bbfa0b8aede7 100644 --- a/typo3/sysext/install/Tests/Unit/FolderStructure/FileNodeTest.php +++ b/typo3/sysext/install/Tests/Unit/FolderStructure/FileNodeTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Install\Tests\Unit\FolderStructure; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Core\Environment; use TYPO3\CMS\Core\Messaging\FlashMessage; use TYPO3\CMS\Core\Type\ContextualFeedbackSeverity; @@ -30,9 +31,7 @@ use TYPO3\CMS\Install\FolderStructure\RootNodeInterface; final class FileNodeTest extends AbstractFolderStructureTestCase { - /** - * @test - */ + #[Test] public function constructorThrowsExceptionIfParentIsNull(): void { $this->expectException(InvalidArgumentException::class); @@ -41,9 +40,7 @@ final class FileNodeTest extends AbstractFolderStructureTestCase $node->__construct([], null); } - /** - * @test - */ + #[Test] public function constructorThrowsExceptionIfNameContainsForwardSlash(): void { $this->expectException(InvalidArgumentException::class); @@ -56,9 +53,7 @@ final class FileNodeTest extends AbstractFolderStructureTestCase $node->__construct($structure, $parent); } - /** - * @test - */ + #[Test] public function constructorSetsParent(): void { $parent = $this->createMock(NodeInterface::class); @@ -70,9 +65,7 @@ final class FileNodeTest extends AbstractFolderStructureTestCase self::assertSame($parent, $node->_call('getParent')); } - /** - * @test - */ + #[Test] public function constructorSetsTargetPermission(): void { $parent = $this->createMock(NodeInterface::class); @@ -86,9 +79,7 @@ final class FileNodeTest extends AbstractFolderStructureTestCase self::assertSame($targetPermission, $node->_call('getTargetPermission')); } - /** - * @test - */ + #[Test] public function constructorSetsName(): void { $node = $this->getAccessibleMock(FileNode::class, null, [], '', false); @@ -98,9 +89,7 @@ final class FileNodeTest extends AbstractFolderStructureTestCase self::assertSame($name, $node->getName()); } - /** - * @test - */ + #[Test] public function constructorThrowsExceptionIfBothTargetContentAndTargetContentFileAreSet(): void { $this->expectException(InvalidArgumentException::class); @@ -115,9 +104,7 @@ final class FileNodeTest extends AbstractFolderStructureTestCase $node->__construct($structure, $parent); } - /** - * @test - */ + #[Test] public function constructorSetsTargetContent(): void { $node = $this->getAccessibleMock(FileNode::class, null, [], '', false); @@ -131,9 +118,7 @@ final class FileNodeTest extends AbstractFolderStructureTestCase self::assertSame($targetContent, $node->_get('targetContent')); } - /** - * @test - */ + #[Test] public function constructorSetsTargetContentToContentOfTargetContentFile(): void { $node = $this->getAccessibleMock(FileNode::class, null, [], '', false); @@ -149,9 +134,7 @@ final class FileNodeTest extends AbstractFolderStructureTestCase self::assertSame($targetContent, $node->_get('targetContent')); } - /** - * @test - */ + #[Test] public function constructorThrowsExceptionIfTargetContentFileDoesNotExist(): void { $this->expectException(InvalidArgumentException::class); @@ -166,9 +149,7 @@ final class FileNodeTest extends AbstractFolderStructureTestCase $node->__construct($structure, $parent); } - /** - * @test - */ + #[Test] public function targetContentIsNullIfNotGiven(): void { $node = $this->getAccessibleMock(FileNode::class, null, [], '', false); @@ -180,9 +161,7 @@ final class FileNodeTest extends AbstractFolderStructureTestCase self::assertNull($node->_get('targetContent')); } - /** - * @test - */ + #[Test] public function getStatusReturnsArray(): void { $node = $this->getAccessibleMock( @@ -206,9 +185,7 @@ final class FileNodeTest extends AbstractFolderStructureTestCase self::assertIsArray($node->getStatus()); } - /** - * @test - */ + #[Test] public function getStatusReturnsArrayWithWarningStatusIFileNotExists(): void { $node = $this->getAccessibleMock( @@ -230,9 +207,7 @@ final class FileNodeTest extends AbstractFolderStructureTestCase self::assertSame(ContextualFeedbackSeverity::WARNING, $statusArray[0]->getSeverity()); } - /** - * @test - */ + #[Test] public function getStatusReturnsArrayWithErrorStatusIfNodeIsNotAFile(): void { $node = $this->getAccessibleMock( @@ -255,9 +230,7 @@ final class FileNodeTest extends AbstractFolderStructureTestCase self::assertSame(ContextualFeedbackSeverity::ERROR, $statusArray[0]->getSeverity()); } - /** - * @test - */ + #[Test] public function getStatusReturnsArrayNoticeStatusIfFileExistsButIsNotWritable(): void { $node = $this->getAccessibleMock( @@ -280,9 +253,7 @@ final class FileNodeTest extends AbstractFolderStructureTestCase self::assertSame(ContextualFeedbackSeverity::NOTICE, $statusArray[0]->getSeverity()); } - /** - * @test - */ + #[Test] public function getStatusReturnsArrayWithNoticeStatusIfFileExistsButPermissionAreNotCorrect(): void { $node = $this->getAccessibleMock( @@ -305,9 +276,7 @@ final class FileNodeTest extends AbstractFolderStructureTestCase self::assertSame(ContextualFeedbackSeverity::NOTICE, $statusArray[0]->getSeverity()); } - /** - * @test - */ + #[Test] public function getStatusReturnsArrayWithNoticeStatusIfFileExistsButContentIsNotCorrect(): void { $node = $this->getAccessibleMock( @@ -330,9 +299,7 @@ final class FileNodeTest extends AbstractFolderStructureTestCase self::assertSame(ContextualFeedbackSeverity::NOTICE, $statusArray[0]->getSeverity()); } - /** - * @test - */ + #[Test] public function getStatusReturnsArrayWithOkStatusIfFileExistsAndPermissionAreCorrect(): void { $node = $this->getAccessibleMock( @@ -355,9 +322,7 @@ final class FileNodeTest extends AbstractFolderStructureTestCase self::assertSame(ContextualFeedbackSeverity::OK, $statusArray[0]->getSeverity()); } - /** - * @test - */ + #[Test] public function fixCallsFixSelfAndReturnsItsResult(): void { $node = $this->getAccessibleMock( @@ -372,9 +337,7 @@ final class FileNodeTest extends AbstractFolderStructureTestCase self::assertSame($uniqueReturn, $node->fix()); } - /** - * @test - */ + #[Test] public function fixSelfCallsCreateFileIfFileDoesNotExistAndReturnsResult(): void { $node = $this->getAccessibleMock( @@ -394,9 +357,7 @@ final class FileNodeTest extends AbstractFolderStructureTestCase self::assertSame($message, $actualReturn); } - /** - * @test - */ + #[Test] public function fixSelfCallsSetsContentIfFileCreationWasSuccessfulAndTargetContentIsNotNullAndReturnsResult(): void { $node = $this->getAccessibleMock( @@ -419,9 +380,7 @@ final class FileNodeTest extends AbstractFolderStructureTestCase self::assertSame($message2, $actualReturn); } - /** - * @test - */ + #[Test] public function fixSelfDoesNotCallSetContentIfFileCreationFailed(): void { $node = $this->getAccessibleMock( @@ -441,9 +400,7 @@ final class FileNodeTest extends AbstractFolderStructureTestCase $node->_call('fixSelf'); } - /** - * @test - */ + #[Test] public function fixSelfDoesNotCallSetContentIfFileTargetContentIsNull(): void { $node = $this->getAccessibleMock( @@ -463,9 +420,7 @@ final class FileNodeTest extends AbstractFolderStructureTestCase $node->_call('fixSelf'); } - /** - * @test - */ + #[Test] public function fixSelfReturnsErrorStatusIfNodeExistsButIsNotAFileAndReturnsResult(): void { $node = $this->getAccessibleMock( @@ -483,9 +438,7 @@ final class FileNodeTest extends AbstractFolderStructureTestCase self::assertSame([$message], $node->_call('fixSelf')); } - /** - * @test - */ + #[Test] public function fixSelfCallsFixPermissionIfFileExistsButPermissionAreWrong(): void { $node = $this->getAccessibleMock( @@ -501,9 +454,7 @@ final class FileNodeTest extends AbstractFolderStructureTestCase $node->_call('fixSelf'); } - /** - * @test - */ + #[Test] public function fixSelfReturnsArrayOfStatusMessages(): void { $node = $this->getAccessibleMock( @@ -519,9 +470,7 @@ final class FileNodeTest extends AbstractFolderStructureTestCase self::assertIsArray($node->_call('fixSelf')); } - /** - * @test - */ + #[Test] public function createFileThrowsExceptionIfNodeExists(): void { $this->expectException(Exception::class); @@ -532,9 +481,7 @@ final class FileNodeTest extends AbstractFolderStructureTestCase $node->_call('createFile'); } - /** - * @test - */ + #[Test] public function createFileReturnsOkStatusIfFileWasCreated(): void { $node = $this->getAccessibleMock(FileNode::class, ['exists', 'getAbsolutePath', 'getRelativePathBelowSiteRoot'], [], '', false); @@ -545,9 +492,7 @@ final class FileNodeTest extends AbstractFolderStructureTestCase self::assertSame(ContextualFeedbackSeverity::OK, $node->_call('createFile')->getSeverity()); } - /** - * @test - */ + #[Test] public function createFileCreatesFile(): void { $node = $this->getAccessibleMock(FileNode::class, ['exists', 'getAbsolutePath', 'getRelativePathBelowSiteRoot'], [], '', false); @@ -559,9 +504,7 @@ final class FileNodeTest extends AbstractFolderStructureTestCase self::assertTrue(is_file($path)); } - /** - * @test - */ + #[Test] public function isContentCorrectThrowsExceptionIfTargetIsNotAFile(): void { $this->expectException(Exception::class); @@ -572,9 +515,7 @@ final class FileNodeTest extends AbstractFolderStructureTestCase $node->_call('isContentCorrect'); } - /** - * @test - */ + #[Test] public function isContentCorrectReturnsTrueIfTargetContentPropertyIsNull(): void { $node = $this->getAccessibleMock(FileNode::class, ['getAbsolutePath'], [], '', false); @@ -585,9 +526,7 @@ final class FileNodeTest extends AbstractFolderStructureTestCase self::assertTrue($node->_call('isContentCorrect')); } - /** - * @test - */ + #[Test] public function isContentCorrectReturnsTrueIfTargetContentEqualsCurrentContent(): void { $node = $this->getAccessibleMock(FileNode::class, ['getAbsolutePath'], [], '', false); @@ -599,9 +538,7 @@ final class FileNodeTest extends AbstractFolderStructureTestCase self::assertTrue($node->_call('isContentCorrect')); } - /** - * @test - */ + #[Test] public function isContentCorrectReturnsFalseIfTargetContentNotEqualsCurrentContent(): void { $node = $this->getAccessibleMock(FileNode::class, ['getAbsolutePath'], [], '', false); @@ -614,9 +551,7 @@ final class FileNodeTest extends AbstractFolderStructureTestCase self::assertFalse($node->_call('isContentCorrect')); } - /** - * @test - */ + #[Test] public function isPermissionCorrectReturnsTrueIfTargetPermissionAndCurrentPermissionAreIdentical(): void { $parent = $this->createMock(NodeInterface::class); @@ -632,9 +567,7 @@ final class FileNodeTest extends AbstractFolderStructureTestCase self::assertTrue($node->_call('isPermissionCorrect')); } - /** - * @test - */ + #[Test] public function setContentThrowsExceptionIfTargetIsNotAFile(): void { $this->expectException(Exception::class); @@ -646,9 +579,7 @@ final class FileNodeTest extends AbstractFolderStructureTestCase $node->_call('setContent'); } - /** - * @test - */ + #[Test] public function setContentThrowsExceptionIfTargetContentIsNull(): void { $this->expectException(Exception::class); @@ -661,9 +592,7 @@ final class FileNodeTest extends AbstractFolderStructureTestCase $node->_call('setContent'); } - /** - * @test - */ + #[Test] public function setContentSetsContentToFile(): void { $node = $this->getAccessibleMock(FileNode::class, ['getAbsolutePath', 'getRelativePathBelowSiteRoot'], [], '', false); @@ -677,9 +606,7 @@ final class FileNodeTest extends AbstractFolderStructureTestCase self::assertSame($targetContent, $resultContent); } - /** - * @test - */ + #[Test] public function setContentReturnsOkStatusIfContentWasSuccessfullySet(): void { $node = $this->getAccessibleMock(FileNode::class, ['getAbsolutePath', 'getRelativePathBelowSiteRoot'], [], '', false); @@ -691,9 +618,7 @@ final class FileNodeTest extends AbstractFolderStructureTestCase self::assertSame(ContextualFeedbackSeverity::OK, $node->_call('setContent')->getSeverity()); } - /** - * @test - */ + #[Test] public function isFileReturnsTrueIfNameIsFile(): void { $node = $this->getAccessibleMock(FileNode::class, ['getAbsolutePath', 'getRelativePathBelowSiteRoot'], [], '', false); @@ -703,9 +628,7 @@ final class FileNodeTest extends AbstractFolderStructureTestCase self::assertTrue($node->_call('isFile')); } - /** - * @test - */ + #[Test] public function isFileReturnsFalseIfNameIsALinkFile(): void { $node = $this->getAccessibleMock(FileNode::class, ['getAbsolutePath'], [], '', false); diff --git a/typo3/sysext/install/Tests/Unit/FolderStructure/LinkNodeTest.php b/typo3/sysext/install/Tests/Unit/FolderStructure/LinkNodeTest.php index 3455d04e9af34570553658f9e23b1743a6615ee9..8a65612ed29719149f395f3eda114e497e32136b 100644 --- a/typo3/sysext/install/Tests/Unit/FolderStructure/LinkNodeTest.php +++ b/typo3/sysext/install/Tests/Unit/FolderStructure/LinkNodeTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Install\Tests\Unit\FolderStructure; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Core\Environment; use TYPO3\CMS\Core\Type\ContextualFeedbackSeverity; use TYPO3\CMS\Core\Utility\GeneralUtility; @@ -40,9 +41,7 @@ final class LinkNodeTest extends UnitTestCase GeneralUtility::mkdir_deep($this->testRoot); } - /** - * @test - */ + #[Test] public function constructorThrowsExceptionIfParentIsNull(): void { $this->expectException(InvalidArgumentException::class); @@ -51,9 +50,7 @@ final class LinkNodeTest extends UnitTestCase $node->__construct([], null); } - /** - * @test - */ + #[Test] public function constructorThrowsExceptionIfNameContainsForwardSlash(): void { $this->expectException(InvalidArgumentException::class); @@ -66,9 +63,7 @@ final class LinkNodeTest extends UnitTestCase $node->__construct($structure, $parent); } - /** - * @test - */ + #[Test] public function constructorSetsParent(): void { $parent = $this->createMock(NodeInterface::class); @@ -80,9 +75,7 @@ final class LinkNodeTest extends UnitTestCase self::assertSame($parent, $node->_call('getParent')); } - /** - * @test - */ + #[Test] public function constructorSetsName(): void { $node = $this->getAccessibleMock(LinkNode::class, null, [], '', false); @@ -92,9 +85,7 @@ final class LinkNodeTest extends UnitTestCase self::assertSame($name, $node->getName()); } - /** - * @test - */ + #[Test] public function constructorSetsNameAndTarget(): void { $node = $this->getAccessibleMock(LinkNode::class, null, [], '', false); @@ -105,9 +96,7 @@ final class LinkNodeTest extends UnitTestCase self::assertSame($target, $node->_call('getTarget')); } - /** - * @test - */ + #[Test] public function getStatusReturnsArray(): void { $node = $this->getAccessibleMock( @@ -122,9 +111,7 @@ final class LinkNodeTest extends UnitTestCase self::assertIsArray($node->getStatus()); } - /** - * @test - */ + #[Test] public function getStatusReturnsArrayWithInformationStatusIfRunningOnWindows(): void { $node = $this->getAccessibleMock( @@ -141,9 +128,7 @@ final class LinkNodeTest extends UnitTestCase self::assertSame(ContextualFeedbackSeverity::INFO, $statusArray[0]->getSeverity()); } - /** - * @test - */ + #[Test] public function getStatusReturnsArrayWithErrorStatusIfLinkNotExists(): void { $node = $this->getAccessibleMock( @@ -161,9 +146,7 @@ final class LinkNodeTest extends UnitTestCase self::assertSame(ContextualFeedbackSeverity::ERROR, $statusArray[0]->getSeverity()); } - /** - * @test - */ + #[Test] public function getStatusReturnsArrayWithWarningStatusIfNodeIsNotALink(): void { $node = $this->getAccessibleMock( @@ -180,9 +163,7 @@ final class LinkNodeTest extends UnitTestCase self::assertSame(ContextualFeedbackSeverity::WARNING, $statusArray[0]->getSeverity()); } - /** - * @test - */ + #[Test] public function getStatusReturnsErrorStatusIfLinkTargetIsNotCorrect(): void { $node = $this->getAccessibleMock( @@ -201,9 +182,7 @@ final class LinkNodeTest extends UnitTestCase self::assertSame(ContextualFeedbackSeverity::ERROR, $statusArray[0]->getSeverity()); } - /** - * @test - */ + #[Test] public function getStatusReturnsOkStatusIfLinkExistsAndTargetIsCorrect(): void { $node = $this->getAccessibleMock( @@ -222,9 +201,7 @@ final class LinkNodeTest extends UnitTestCase self::assertSame(ContextualFeedbackSeverity::OK, $statusArray[0]->getSeverity()); } - /** - * @test - */ + #[Test] public function fixReturnsEmptyArray(): void { $node = $this->getAccessibleMock( @@ -238,9 +215,7 @@ final class LinkNodeTest extends UnitTestCase self::assertEmpty($statusArray); } - /** - * @test - */ + #[Test] public function isLinkThrowsExceptionIfLinkNotExists(): void { $this->expectException(InvalidArgumentException::class); @@ -250,9 +225,7 @@ final class LinkNodeTest extends UnitTestCase self::assertFalse($node->_call('isLink')); } - /** - * @test - */ + #[Test] public function isLinkReturnsTrueIfNameIsLink(): void { $node = $this->getAccessibleMock(LinkNode::class, ['exists', 'getAbsolutePath'], [], '', false); @@ -265,9 +238,7 @@ final class LinkNodeTest extends UnitTestCase self::assertTrue($node->_call('isLink')); } - /** - * @test - */ + #[Test] public function isFileReturnsFalseIfNameIsAFile(): void { $node = $this->getAccessibleMock(LinkNode::class, ['exists', 'getAbsolutePath'], [], '', false); @@ -278,9 +249,7 @@ final class LinkNodeTest extends UnitTestCase self::assertFalse($node->_call('isLink')); } - /** - * @test - */ + #[Test] public function isTargetCorrectThrowsExceptionIfLinkNotExists(): void { $this->expectException(InvalidArgumentException::class); @@ -290,9 +259,7 @@ final class LinkNodeTest extends UnitTestCase self::assertFalse($node->_call('isTargetCorrect')); } - /** - * @test - */ + #[Test] public function isTargetCorrectThrowsExceptionIfNodeIsNotALink(): void { $this->expectException(InvalidArgumentException::class); @@ -303,9 +270,7 @@ final class LinkNodeTest extends UnitTestCase self::assertTrue($node->_call('isTargetCorrect')); } - /** - * @test - */ + #[Test] public function isTargetCorrectReturnsTrueIfNoExpectedLinkTargetIsSpecified(): void { $node = $this->getAccessibleMock(LinkNode::class, ['exists', 'isLink', 'getTarget'], [], '', false); @@ -315,9 +280,7 @@ final class LinkNodeTest extends UnitTestCase self::assertTrue($node->_call('isTargetCorrect')); } - /** - * @test - */ + #[Test] public function isTargetCorrectAcceptsATargetWithATrailingSlash(): void { $node = $this->getAccessibleMock(LinkNode::class, ['exists', 'isLink', 'getCurrentTarget', 'getTarget'], [], '', false); @@ -328,9 +291,7 @@ final class LinkNodeTest extends UnitTestCase self::assertTrue($node->_call('isTargetCorrect')); } - /** - * @test - */ + #[Test] public function isTargetCorrectReturnsTrueIfActualTargetIsIdenticalToSpecifiedTarget(): void { $path = $this->testRoot . StringUtility::getUniqueId('link_'); @@ -351,9 +312,7 @@ final class LinkNodeTest extends UnitTestCase self::assertTrue($node->_call('isTargetCorrect')); } - /** - * @test - */ + #[Test] public function isTargetCorrectReturnsFalseIfActualTargetIsNotIdenticalToSpecifiedTarget(): void { $path = $this->testRoot . StringUtility::getUniqueId('link_'); diff --git a/typo3/sysext/install/Tests/Unit/FolderStructure/RootNodeTest.php b/typo3/sysext/install/Tests/Unit/FolderStructure/RootNodeTest.php index 10120ee611548989295e54007e3ed657a66603e8..c4dd6a3e97f451ff130e84bb3493a0e71ec3b0e2 100644 --- a/typo3/sysext/install/Tests/Unit/FolderStructure/RootNodeTest.php +++ b/typo3/sysext/install/Tests/Unit/FolderStructure/RootNodeTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Install\Tests\Unit\FolderStructure; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Core\Environment; use TYPO3\CMS\Core\Messaging\FlashMessage; use TYPO3\CMS\Core\Type\ContextualFeedbackSeverity; @@ -32,9 +33,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class RootNodeTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function constructorThrowsExceptionIfParentIsNotNull(): void { $this->expectException(RootNodeException::class); @@ -44,9 +43,7 @@ final class RootNodeTest extends UnitTestCase $node->__construct([], $falseParent); } - /** - * @test - */ + #[Test] public function constructorThrowsExceptionIfAbsolutePathIsNotSet(): void { $this->expectException(InvalidArgumentException::class); @@ -58,9 +55,7 @@ final class RootNodeTest extends UnitTestCase $node->__construct($structure, null); } - /** - * @test - */ + #[Test] public function constructorThrowsExceptionIfAbsolutePathIsNotAbsoluteOnWindows(): void { $this->expectException(InvalidArgumentException::class); @@ -75,9 +70,7 @@ final class RootNodeTest extends UnitTestCase $node->__construct($structure, null); } - /** - * @test - */ + #[Test] public function constructorThrowsExceptionIfAbsolutePathIsNotAbsoluteOnUnix(): void { $this->expectException(InvalidArgumentException::class); @@ -92,9 +85,7 @@ final class RootNodeTest extends UnitTestCase $node->__construct($structure, null); } - /** - * @test - */ + #[Test] public function constructorSetsParentToNull(): void { $node = $this->getAccessibleMock(RootNode::class, ['isWindowsOs'], [], '', false); @@ -108,9 +99,7 @@ final class RootNodeTest extends UnitTestCase self::assertNull($node->_call('getParent')); } - /** - * @test - */ + #[Test] public function getChildrenReturnsChildCreatedByConstructor(): void { $node = $this->getAccessibleMock(RootNode::class, ['isWindowsOs'], [], '', false); @@ -135,9 +124,7 @@ final class RootNodeTest extends UnitTestCase self::assertSame($childName, $child->getName()); } - /** - * @test - */ + #[Test] public function constructorSetsTargetPermission(): void { $node = $this->getAccessibleMock(RootNode::class, ['isWindowsOs'], [], '', false); @@ -153,9 +140,7 @@ final class RootNodeTest extends UnitTestCase self::assertSame($targetPermission, $node->_call('getTargetPermission')); } - /** - * @test - */ + #[Test] public function constructorSetsName(): void { $node = $this->getAccessibleMock(RootNode::class, ['isWindowsOs'], [], '', false); @@ -167,9 +152,7 @@ final class RootNodeTest extends UnitTestCase self::assertSame($name, $node->getName()); } - /** - * @test - */ + #[Test] public function getStatusReturnsArrayWithOkStatusAndCallsOwnStatusMethods(): void { $node = $this->getAccessibleMock( @@ -193,9 +176,7 @@ final class RootNodeTest extends UnitTestCase self::assertSame(ContextualFeedbackSeverity::OK, $statusArray[0]->getSeverity()); } - /** - * @test - */ + #[Test] public function getStatusCallsGetChildrenStatusForStatus(): void { $node = $this->getAccessibleMock( @@ -224,9 +205,7 @@ final class RootNodeTest extends UnitTestCase self::assertSame($childStatus, $statusOfChild); } - /** - * @test - */ + #[Test] public function getAbsolutePathReturnsGivenName(): void { $node = $this->getAccessibleMock(RootNode::class, ['isWindowsOs'], [], '', false); diff --git a/typo3/sysext/install/Tests/Unit/FolderStructure/StructureFacadeTest.php b/typo3/sysext/install/Tests/Unit/FolderStructure/StructureFacadeTest.php index 79db7e17f51e97dfd17f676a6211d1fdd49dbf8d..d9fef0b0d892e10f19a3c1c621055ba2600c7152 100644 --- a/typo3/sysext/install/Tests/Unit/FolderStructure/StructureFacadeTest.php +++ b/typo3/sysext/install/Tests/Unit/FolderStructure/StructureFacadeTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Install\Tests\Unit\FolderStructure; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Messaging\FlashMessageQueue; use TYPO3\CMS\Install\FolderStructure\RootNode; use TYPO3\CMS\Install\FolderStructure\StructureFacade; @@ -24,9 +25,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class StructureFacadeTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getStatusReturnsStatusOfStructureAndReturnsItsResult(): void { $facade = $this->getAccessibleMock(StructureFacade::class, null, [], '', false); @@ -37,9 +36,7 @@ final class StructureFacadeTest extends UnitTestCase self::assertInstanceOf(FlashMessageQueue::class, $status); } - /** - * @test - */ + #[Test] public function fixCallsFixOfStructureAndReturnsItsResult(): void { $facade = $this->getAccessibleMock(StructureFacade::class, null, [], '', false); diff --git a/typo3/sysext/install/Tests/Unit/Service/ClearTableServiceTest.php b/typo3/sysext/install/Tests/Unit/Service/ClearTableServiceTest.php index 455a74c462fc7295bc7bdf169c54f558497aa3e6..b6efbfe20685234acd25bf4a8119526c394ea89b 100644 --- a/typo3/sysext/install/Tests/Unit/Service/ClearTableServiceTest.php +++ b/typo3/sysext/install/Tests/Unit/Service/ClearTableServiceTest.php @@ -17,14 +17,13 @@ declare(strict_types=1); namespace TYPO3\CMS\Install\Tests\Unit\Service; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\Service\ClearTableService; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ClearTableServiceTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function clearSelectedTableThrowsWithInvalidTableName(): void { $this->expectException(\RuntimeException::class); diff --git a/typo3/sysext/install/Tests/Unit/Service/CoreUpdateServiceTest.php b/typo3/sysext/install/Tests/Unit/Service/CoreUpdateServiceTest.php index 730b5c12d11ec034d8515b09e614cd20f713c73e..273e00c660b1ec204c45bf772e31739a0d2dbf76 100644 --- a/typo3/sysext/install/Tests/Unit/Service/CoreUpdateServiceTest.php +++ b/typo3/sysext/install/Tests/Unit/Service/CoreUpdateServiceTest.php @@ -17,15 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Install\Tests\Unit\Service; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Messaging\FlashMessageQueue; use TYPO3\CMS\Install\Service\CoreUpdateService; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class CoreUpdateServiceTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getMessagesReturnsPreviouslySetMessage(): void { $instance = $this->getAccessibleMock(CoreUpdateService::class, null, [], '', false); @@ -34,9 +33,7 @@ final class CoreUpdateServiceTest extends UnitTestCase self::assertSame($aMessage, $instance->getMessages()); } - /** - * @test - */ + #[Test] public function isCoreUpdateEnabledReturnsTrueForEnvironmentVariableNotSet(): void { if (defined('TYPO3_COMPOSER_MODE') && TYPO3_COMPOSER_MODE) { @@ -48,9 +45,7 @@ final class CoreUpdateServiceTest extends UnitTestCase self::assertTrue($instance->isCoreUpdateEnabled()); } - /** - * @test - */ + #[Test] public function isCoreUpdateEnabledReturnsFalseFor_TYPO3_DISABLE_CORE_UPDATER_EnvironmentVariableSet(): void { $instance = $this->getAccessibleMock(CoreUpdateService::class, null, [], '', false); @@ -59,9 +54,7 @@ final class CoreUpdateServiceTest extends UnitTestCase self::assertFalse($instance->isCoreUpdateEnabled()); } - /** - * @test - */ + #[Test] public function isCoreUpdateEnabledReturnsFalseFor_REDIRECT_TYPO3_DISABLE_CORE_UPDATER_EnvironmentVariableSet(): void { $instance = $this->getAccessibleMock(CoreUpdateService::class, null, [], '', false); diff --git a/typo3/sysext/install/Tests/Unit/Service/CoreVersionServiceTest.php b/typo3/sysext/install/Tests/Unit/Service/CoreVersionServiceTest.php index c93639a3d65cf2536e73d48165ea9926326ac2c3..9e160470edf34490b09d433a2f09e4de2da14bd1 100644 --- a/typo3/sysext/install/Tests/Unit/Service/CoreVersionServiceTest.php +++ b/typo3/sysext/install/Tests/Unit/Service/CoreVersionServiceTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Install\Tests\Unit\Service; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Http\JsonResponse; use TYPO3\CMS\Core\Http\RequestFactory; use TYPO3\CMS\Core\Utility\GeneralUtility; @@ -36,9 +38,7 @@ final class CoreVersionServiceTest extends UnitTestCase GeneralUtility::addInstance(RequestFactory::class, $requestFactoryMock); } - /** - * @test - */ + #[Test] public function isVersionActivelyCommunityMaintainedReturnsFalseIfMaintainedUntilIsNotSet(): void { $this->setUpApiResponse( @@ -58,9 +58,7 @@ final class CoreVersionServiceTest extends UnitTestCase self::assertFalse($result); } - /** - * @test - */ + #[Test] public function isVersionActivelyCommunityMaintainedReturnsTrueIfMaintainedUntilIsAfterToday(): void { $this->setUpApiResponse( @@ -81,9 +79,7 @@ final class CoreVersionServiceTest extends UnitTestCase self::assertTrue($result); } - /** - * @test - */ + #[Test] public function isVersionActivelyCommunityMaintainedReturnsFalseIfMaintainedUntilWasBeforeToday(): void { $this->setUpApiResponse( @@ -104,9 +100,7 @@ final class CoreVersionServiceTest extends UnitTestCase self::assertFalse($result); } - /** - * @test - */ + #[Test] public function isVersionActivelyEltsMaintainedReturnsFalseIfEltsUntilIsNotSet(): void { $this->setUpApiResponse( @@ -126,9 +120,7 @@ final class CoreVersionServiceTest extends UnitTestCase self::assertFalse($result); } - /** - * @test - */ + #[Test] public function isVersionActivelyEltsMaintainedReturnsTrueIfEltsUntilIsAfterToday(): void { $this->setUpApiResponse( @@ -149,9 +141,7 @@ final class CoreVersionServiceTest extends UnitTestCase self::assertTrue($result); } - /** - * @test - */ + #[Test] public function isVersionActivelyEltsMaintainedReturnsFalseIfEltsUntilWasBeforeToday(): void { $this->setUpApiResponse( @@ -174,8 +164,8 @@ final class CoreVersionServiceTest extends UnitTestCase /** * The maintenance date ranges are built relatively to avoid the need to adjust them once the dates passed - * @test */ + #[Test] public function getSupportedMajorReleasesReturnsListOfVersions(): void { $this->setUpApiResponse( @@ -235,9 +225,7 @@ final class CoreVersionServiceTest extends UnitTestCase self::assertSame($expectation, $result); } - /** - * @test - */ + #[Test] public function isPatchReleaseSuitableForUpdateReturnsTrueIfNewerVersionExists(): void { $this->setUpApiResponse( @@ -262,9 +250,7 @@ final class CoreVersionServiceTest extends UnitTestCase self::assertTrue($result); } - /** - * @test - */ + #[Test] public function isPatchReleaseSuitableForUpdateReturnsFalseIfNoNewerVersionExists(): void { $this->setUpApiResponse( @@ -289,9 +275,7 @@ final class CoreVersionServiceTest extends UnitTestCase self::assertFalse($result); } - /** - * @test - */ + #[Test] public function isUpdateSecurityRelevantReturnsTrueIfNewerSecurityUpdateExists(): void { $coreRelease = new CoreRelease('8.7.5', new \DateTimeImmutable('2017-09-05T10:54:18+00:00'), 'security', 'e79466bffc81f270f5c262d01a125e82b2e1989a'); @@ -335,9 +319,7 @@ final class CoreVersionServiceTest extends UnitTestCase self::assertTrue($result); } - /** - * @test - */ + #[Test] public function isUpdateSecurityRelevantReturnsFalseIfNewerSecurityUpdateExistsButCannotGetUpgraded(): void { $coreRelease = new CoreRelease('8.7.6', new \DateTimeImmutable('2017-09-05T10:54:18+00:00'), 'security', 'e79466bffc81f270f5c262d01a125e82b2e1989a'); @@ -381,9 +363,7 @@ final class CoreVersionServiceTest extends UnitTestCase self::assertFalse($result); } - /** - * @test - */ + #[Test] public function isUpdateSecurityRelevantReturnsFalseIfNoNewerSecurityUpdatesExist(): void { $coreRelease = new CoreRelease('8.7.6', new \DateTimeImmutable('2017-09-05T10:54:18+00:00'), 'security', 'e79466bffc81f270f5c262d01a125e82b2e1989a'); @@ -419,10 +399,8 @@ final class CoreVersionServiceTest extends UnitTestCase self::assertFalse($result); } - /** - * @test - * @dataProvider isCurrentInstalledVersionEltsReturnsExpectedResultDataProvider - */ + #[DataProvider('isCurrentInstalledVersionEltsReturnsExpectedResultDataProvider')] + #[Test] public function isCurrentInstalledVersionEltsReturnsExpectedResult(string $major, string $version, bool $expectation): void { $this->setUpApiResponse( @@ -473,10 +451,8 @@ final class CoreVersionServiceTest extends UnitTestCase ]; } - /** - * @dataProvider getYoungestPatchReleaseReturnsLatestReleaseForCurrentMajorVersionDataProvider - * @test - */ + #[DataProvider('getYoungestPatchReleaseReturnsLatestReleaseForCurrentMajorVersionDataProvider')] + #[Test] public function getYoungestPatchReleaseReturnsLatestReleaseForCurrentMajorVersion(string $major, array $response): void { $this->setUpApiResponse( @@ -526,9 +502,7 @@ final class CoreVersionServiceTest extends UnitTestCase ]; } - /** - * @test - */ + #[Test] public function getYoungestCommunityPatchReleaseReturnsLatestNonEltsRelease(): void { $this->setUpApiResponse( @@ -581,9 +555,7 @@ final class CoreVersionServiceTest extends UnitTestCase self::assertSame('8.7.30', $result->getVersion()); } - /** - * @test - */ + #[Test] public function isInstalledVersionAReleasedVersionReturnsTrueForNonDevelopmentVersion(): void { $instance = $this->getAccessibleMock(CoreVersionService::class, ['getInstalledVersion'], [], '', false); @@ -591,9 +563,7 @@ final class CoreVersionServiceTest extends UnitTestCase self::assertTrue($instance->isInstalledVersionAReleasedVersion()); } - /** - * @test - */ + #[Test] public function isInstalledVersionAReleasedVersionReturnsFalseForDevelopmentVersion(): void { $instance = $this->getAccessibleMock(CoreVersionService::class, ['getInstalledVersion'], [], '', false); diff --git a/typo3/sysext/install/Tests/Unit/Service/Typo3tempFileServiceTest.php b/typo3/sysext/install/Tests/Unit/Service/Typo3tempFileServiceTest.php index 7917d6457e24ac3688add991313ea3ed468fa65b..60de68d08da5a95f8930cf9cd4d6ddc3e3e97e76 100644 --- a/typo3/sysext/install/Tests/Unit/Service/Typo3tempFileServiceTest.php +++ b/typo3/sysext/install/Tests/Unit/Service/Typo3tempFileServiceTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Install\Tests\Unit\Service; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Resource\ProcessedFileRepository; use TYPO3\CMS\Core\Resource\StorageRepository; use TYPO3\CMS\Install\Service\Typo3tempFileService; @@ -24,9 +25,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class Typo3tempFileServiceTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function clearAssetsFolderThrowsWithInvalidPath(): void { $this->expectException(\RuntimeException::class); @@ -37,9 +36,7 @@ final class Typo3tempFileServiceTest extends UnitTestCase $subject->clearAssetsFolder('../foo'); } - /** - * @test - */ + #[Test] public function clearAssetsFolderThrowsIfPathDoesNotStartWithTypotempAssets(): void { $this->expectException(\RuntimeException::class); diff --git a/typo3/sysext/install/Tests/Unit/SystemEnvironment/DatabaseCheck/Platform/MySqlTest.php b/typo3/sysext/install/Tests/Unit/SystemEnvironment/DatabaseCheck/Platform/MySqlTest.php index 869860f3357c256637b43bd02db01cf7fcf524f9..f2f89fed5297ed1d6b4811951fe8aeaf287def34 100644 --- a/typo3/sysext/install/Tests/Unit/SystemEnvironment/DatabaseCheck/Platform/MySqlTest.php +++ b/typo3/sysext/install/Tests/Unit/SystemEnvironment/DatabaseCheck/Platform/MySqlTest.php @@ -20,6 +20,8 @@ namespace TYPO3\CMS\Install\Tests\Unit\SystemEnvironment\DatabaseCheck\Platform; use Doctrine\DBAL\Platforms\AbstractPlatform; use Doctrine\DBAL\Platforms\MariaDBPlatform; use Doctrine\DBAL\Platforms\MySQLPlatform; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Database\Connection; use TYPO3\CMS\Core\Messaging\FlashMessage; use TYPO3\CMS\Core\Type\ContextualFeedbackSeverity; @@ -79,10 +81,8 @@ final class MySqlTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider checkMySQLOrMariaDBVersionReportsExpectedStatusDataProvider - */ + #[DataProvider('checkMySQLOrMariaDBVersionReportsExpectedStatusDataProvider')] + #[Test] public function checkMySQLOrMariaDBVersionReportsExpectedStatus( AbstractPlatform $platform, string $serverVersionString, diff --git a/typo3/sysext/install/Tests/Unit/SystemEnvironment/ServerResponse/ContentSecurityPolicyHeaderTest.php b/typo3/sysext/install/Tests/Unit/SystemEnvironment/ServerResponse/ContentSecurityPolicyHeaderTest.php index 3a828ec9613ffd1da233795065e1fdf52a1c121d..05002b44a569ad243638beda97ae9e3ca07e3948 100644 --- a/typo3/sysext/install/Tests/Unit/SystemEnvironment/ServerResponse/ContentSecurityPolicyHeaderTest.php +++ b/typo3/sysext/install/Tests/Unit/SystemEnvironment/ServerResponse/ContentSecurityPolicyHeaderTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Install\Tests\Unit\SystemEnvironment\ServerResponse; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\TestCase; use TYPO3\CMS\Install\SystemEnvironment\ServerResponse\ContentSecurityPolicyHeader; @@ -93,10 +95,8 @@ final class ContentSecurityPolicyHeaderTest extends TestCase ]; } - /** - * @test - * @dataProvider mitigatesCrossSiteScriptingDataProvider - */ + #[DataProvider('mitigatesCrossSiteScriptingDataProvider')] + #[Test] public function mitigatesCrossSiteScripting(string $header, ?string $fileName, $expectation): void { $subject = new ContentSecurityPolicyHeader($header); diff --git a/typo3/sysext/install/Tests/Unit/Updates/RowUpdater/L18nDiffsourceToJsonMigrationTest.php b/typo3/sysext/install/Tests/Unit/Updates/RowUpdater/L18nDiffsourceToJsonMigrationTest.php index 0518bf8a648c21a0dcd13536ea09fedfdc98b61c..56f2fbf13bacad9a1d331499606b5ca88a932a58 100644 --- a/typo3/sysext/install/Tests/Unit/Updates/RowUpdater/L18nDiffsourceToJsonMigrationTest.php +++ b/typo3/sysext/install/Tests/Unit/Updates/RowUpdater/L18nDiffsourceToJsonMigrationTest.php @@ -17,23 +17,21 @@ declare(strict_types=1); namespace TYPO3\CMS\Install\Tests\Unit\Updates\RowUpdater; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\Updates\RowUpdater\L18nDiffsourceToJsonMigration; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class L18nDiffsourceToJsonMigrationTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function hasPotentialUpdateForTableReturnsFalseIfTableIsNotLocalizable(): void { $GLOBALS['TCA']['testTable'] = []; self::assertFalse((new L18nDiffsourceToJsonMigration())->hasPotentialUpdateForTable('testTable')); } - /** - * @test - */ + #[Test] public function hasPotentialUpdateForTableReturnsTrueIfTableIsLocalizable(): void { $GLOBALS['TCA']['testTable'] = [ @@ -46,9 +44,7 @@ final class L18nDiffsourceToJsonMigrationTest extends UnitTestCase self::assertTrue((new L18nDiffsourceToJsonMigration())->hasPotentialUpdateForTable('testTable')); } - /** - * @test - */ + #[Test] public function updateTableRowDoesNothingIfFieldIsNotSet(): void { $GLOBALS['TCA']['testTable'] = [ @@ -107,12 +103,11 @@ final class L18nDiffsourceToJsonMigrationTest extends UnitTestCase } /** - * @test - * @dataProvider updateTableRowUpdatesFieldDataProvider - * * @param mixed $input * @param mixed $expected */ + #[DataProvider('updateTableRowUpdatesFieldDataProvider')] + #[Test] public function updateTableRowUpdatesField($input, $expected): void { $GLOBALS['TCA']['testTable'] = [ diff --git a/typo3/sysext/linkvalidator/Tests/Unit/Linktype/ExternalLinktypeTest.php b/typo3/sysext/linkvalidator/Tests/Unit/Linktype/ExternalLinktypeTest.php index 048cec02a9a83b380da85453ac7ecd67fa41e474..545c1861f9f8f6ee4898643fa69339f895b9c38f 100644 --- a/typo3/sysext/linkvalidator/Tests/Unit/Linktype/ExternalLinktypeTest.php +++ b/typo3/sysext/linkvalidator/Tests/Unit/Linktype/ExternalLinktypeTest.php @@ -20,6 +20,8 @@ namespace TYPO3\CMS\Linkvalidator\Tests\Unit\Linktype; use GuzzleHttp\Cookie\CookieJar; use GuzzleHttp\Exception\ClientException; use GuzzleHttp\Psr7\Response; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Core\Http\Client\GuzzleClientFactory; use TYPO3\CMS\Core\Http\RequestFactory; @@ -42,9 +44,7 @@ final class ExternalLinktypeTest extends UnitTestCase return $languageServiceMock; } - /** - * @test - */ + #[Test] public function checkLinkWithExternalUrlNotFoundReturnsFalse(): void { $response = new Response(404); @@ -68,9 +68,7 @@ final class ExternalLinktypeTest extends UnitTestCase self::assertFalse($result); } - /** - * @test - */ + #[Test] public function checkLinkWithExternalUrlNotFoundResultsNotFoundErrorType(): void { $response = new Response(404); @@ -172,10 +170,8 @@ final class ExternalLinktypeTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider preprocessUrlsDataProvider - */ + #[DataProvider('preprocessUrlsDataProvider')] + #[Test] public function preprocessUrlReturnsCorrectString(string $inputUrl, $expectedResult): void { $subject = new ExternalLinktype(new RequestFactory(new GuzzleClientFactory())); @@ -184,9 +180,7 @@ final class ExternalLinktypeTest extends UnitTestCase self::assertEquals($result, $expectedResult); } - /** - * @test - */ + #[Test] public function setAdditionalConfigMergesHeaders(): void { $requestFactoryMock = $this->getMockBuilder(RequestFactory::class)->disableOriginalConstructor()->getMock(); @@ -213,8 +207,8 @@ final class ExternalLinktypeTest extends UnitTestCase /** * If the timeout is not set via TSconfig, core $GLOBALS['TYPO3_CONF_VARS']['HTTP']['timeout'] should * be used. Which is the case if timeout is not passed to the request() function. - * @test */ + #[Test] public function requestWithNoTimeoutIsCalledIfTimeoutNotSetByTsConfig(): void { $requestFactoryMock = $this->getMockBuilder(RequestFactory::class)->disableOriginalConstructor()->getMock(); @@ -238,9 +232,7 @@ final class ExternalLinktypeTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function setAdditionalConfigOverwritesUserAgent(): void { $requestFactoryMock = $this->getMockBuilder(RequestFactory::class)->disableOriginalConstructor()->getMock(); @@ -264,9 +256,7 @@ final class ExternalLinktypeTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function setAdditionalConfigAppendsAgentUrlIfConfigured(): void { $requestFactoryMock = $this->getMockBuilder(RequestFactory::class)->disableOriginalConstructor()->getMock(); @@ -290,9 +280,7 @@ final class ExternalLinktypeTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function setAdditionalConfigAppendsEmailIfConfigured(): void { $requestFactoryMock = $this->getMockBuilder(RequestFactory::class)->disableOriginalConstructor()->getMock(); @@ -316,9 +304,7 @@ final class ExternalLinktypeTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function setAdditionalConfigAppendsEmailFromGlobalsIfConfigured(): void { $requestFactoryMock = $this->getMockBuilder(RequestFactory::class)->disableOriginalConstructor()->getMock(); @@ -342,9 +328,7 @@ final class ExternalLinktypeTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function setAdditionalConfigSetsRangeAndMethod(): void { $requestFactoryMock = $this->getMockBuilder(RequestFactory::class)->disableOriginalConstructor()->getMock(); diff --git a/typo3/sysext/linkvalidator/Tests/Unit/Linktype/LinktypeRegistryTest.php b/typo3/sysext/linkvalidator/Tests/Unit/Linktype/LinktypeRegistryTest.php index 0342055d1ff8acb0ffb232bcf2cdf1e66a6b67cc..cdfe5597a9ddf9206012a6f9bf3892c926327c58 100644 --- a/typo3/sysext/linkvalidator/Tests/Unit/Linktype/LinktypeRegistryTest.php +++ b/typo3/sysext/linkvalidator/Tests/Unit/Linktype/LinktypeRegistryTest.php @@ -17,15 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Linkvalidator\Tests\Unit\Linktype; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Linkvalidator\Linktype\LinktypeInterface; use TYPO3\CMS\Linkvalidator\Linktype\LinktypeRegistry; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class LinktypeRegistryTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function registrationRequiresInterface(): void { $linktypes = [ @@ -40,9 +39,7 @@ final class LinktypeRegistryTest extends UnitTestCase self::assertEquals(['valid-identifier'], $linkTypeRegistry->getIdentifiers()); } - /** - * @test - */ + #[Test] public function registrationThrowsExceptionOnEmptyIdentifier(): void { $linktypes = [ @@ -55,9 +52,7 @@ final class LinktypeRegistryTest extends UnitTestCase new LinktypeRegistry($linktypes); } - /** - * @test - */ + #[Test] public function registrationThrowsExceptionOnDuplicateIdentifier(): void { $linktypes = [ diff --git a/typo3/sysext/linkvalidator/Tests/Unit/Repository/PagesRepositoryTest.php b/typo3/sysext/linkvalidator/Tests/Unit/Repository/PagesRepositoryTest.php index e7e50ce333978d2b5ff70a9cc353187fb94503f3..991181cc3e50a60a44bbea78478c33a985fde327 100644 --- a/typo3/sysext/linkvalidator/Tests/Unit/Repository/PagesRepositoryTest.php +++ b/typo3/sysext/linkvalidator/Tests/Unit/Repository/PagesRepositoryTest.php @@ -17,14 +17,13 @@ declare(strict_types=1); namespace TYPO3\CMS\Linkvalidator\Tests\Unit\Repository; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Linkvalidator\Repository\PagesRepository; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class PagesRepositoryTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function doesRootLineContainHiddenPagesReturnTrueForCurrentPage(): void { $subject = new PagesRepository(); diff --git a/typo3/sysext/lowlevel/Tests/Unit/Controller/DatabaseIntegrityControllerTest.php b/typo3/sysext/lowlevel/Tests/Unit/Controller/DatabaseIntegrityControllerTest.php index 33edf0366ded45386d9777d039eac3853dc3342d..c25692e21af3f6c5c0433b2d0eae6740f33a77dc 100644 --- a/typo3/sysext/lowlevel/Tests/Unit/Controller/DatabaseIntegrityControllerTest.php +++ b/typo3/sysext/lowlevel/Tests/Unit/Controller/DatabaseIntegrityControllerTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Lowlevel\Tests\Unit\Controller; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Lowlevel\Controller\DatabaseIntegrityController; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -104,10 +106,8 @@ final class DatabaseIntegrityControllerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider getSubscriptReturnsExpectedValuesDataProvider - */ + #[DataProvider('getSubscriptReturnsExpectedValuesDataProvider')] + #[Test] public function getSubscriptReturnsExpectedValues($input, array $expectedArray): void { $subject = $this->getAccessibleMock(DatabaseIntegrityController::class, null, [], '', false); diff --git a/typo3/sysext/lowlevel/Tests/Unit/Event/ModifyBlindedConfigurationOptionsEventTest.php b/typo3/sysext/lowlevel/Tests/Unit/Event/ModifyBlindedConfigurationOptionsEventTest.php index 192643b3a2cda004c12d8a752699664f986d03ca..0042e941a991044be0dd84fc44ab21cfaf9b1c2f 100644 --- a/typo3/sysext/lowlevel/Tests/Unit/Event/ModifyBlindedConfigurationOptionsEventTest.php +++ b/typo3/sysext/lowlevel/Tests/Unit/Event/ModifyBlindedConfigurationOptionsEventTest.php @@ -17,14 +17,13 @@ declare(strict_types=1); namespace TYPO3\CMS\Lowlevel\Tests\Unit\Event; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Lowlevel\Event\ModifyBlindedConfigurationOptionsEvent; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ModifyBlindedConfigurationOptionsEventTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function gettersReturnInitializedObjects(): void { $identifier = 'myidentifier'; diff --git a/typo3/sysext/opendocs/Tests/Unit/Service/OpenDocumentServiceTest.php b/typo3/sysext/opendocs/Tests/Unit/Service/OpenDocumentServiceTest.php index ee355c7da85036ab18628161dcf1a595f30891d1..c91cf0153a12a2eb56a23951ed331ccfbea710b0 100644 --- a/typo3/sysext/opendocs/Tests/Unit/Service/OpenDocumentServiceTest.php +++ b/typo3/sysext/opendocs/Tests/Unit/Service/OpenDocumentServiceTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Opendocs\Tests\Unit\Service; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; use TYPO3\CMS\Opendocs\Service\OpenDocumentService; @@ -33,9 +34,7 @@ final class OpenDocumentServiceTest extends UnitTestCase $GLOBALS['BE_USER'] = $this->backendUser; } - /** - * @test - */ + #[Test] public function getsOpenDocumentsFromUserSession(): void { $this->backendUser->method('getModuleData')->with('FormEngine', 'ses')->willReturn([ @@ -54,9 +53,7 @@ final class OpenDocumentServiceTest extends UnitTestCase self::assertEquals($expected, $openDocuments); } - /** - * @test - */ + #[Test] public function handlesUserSessionWithoutOpenDocuments(): void { $this->backendUser->method('getModuleData')->with('FormEngine', 'ses')->willReturn(null); @@ -65,9 +62,7 @@ final class OpenDocumentServiceTest extends UnitTestCase self::assertEquals([], $openDocuments); } - /** - * @test - */ + #[Test] public function getsRecentDocumentsFromUserSession(): void { $this->backendUser->method('getModuleData')->with('opendocs::recent')->willReturn([ @@ -81,9 +76,7 @@ final class OpenDocumentServiceTest extends UnitTestCase self::assertEquals($expected, $recentDocuments); } - /** - * @test - */ + #[Test] public function handlesUserSessionWithoutRecentDocuments(): void { $this->backendUser->method('getModuleData')->with('opendocs::recent')->willReturn(null); @@ -92,9 +85,7 @@ final class OpenDocumentServiceTest extends UnitTestCase self::assertEquals([], $recentDocuments); } - /** - * @test - */ + #[Test] public function closesDocument(): void { $this->backendUser->method('getModuleData')->willReturnMap([ diff --git a/typo3/sysext/redirects/Tests/Unit/Evaluation/SourceHostTest.php b/typo3/sysext/redirects/Tests/Unit/Evaluation/SourceHostTest.php index f2b5096ad482d6159a7720f31e2137567923801e..e22ee39153840e754d05da4d208b3cf8e292dd53 100644 --- a/typo3/sysext/redirects/Tests/Unit/Evaluation/SourceHostTest.php +++ b/typo3/sysext/redirects/Tests/Unit/Evaluation/SourceHostTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Redirects\Tests\Unit\Evaluation; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Redirects\Evaluation\SourceHost; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -66,10 +68,8 @@ final class SourceHostTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider evaluateFieldValueWorksWithDifferentInputsDataProvider - */ + #[DataProvider('evaluateFieldValueWorksWithDifferentInputsDataProvider')] + #[Test] public function evaluateFieldValueWorksWithDifferentInputs(string $input, string $expected): void { $subject = new SourceHost(); diff --git a/typo3/sysext/redirects/Tests/Unit/Event/AfterAutoCreateRedirectHasBeenPersistedEventTest.php b/typo3/sysext/redirects/Tests/Unit/Event/AfterAutoCreateRedirectHasBeenPersistedEventTest.php index 0a96449f1da3d089dcc06de3bfc60946f6af4e08..339bb5252b4724a70daffb56a99f926c078bdc63 100644 --- a/typo3/sysext/redirects/Tests/Unit/Event/AfterAutoCreateRedirectHasBeenPersistedEventTest.php +++ b/typo3/sysext/redirects/Tests/Unit/Event/AfterAutoCreateRedirectHasBeenPersistedEventTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Redirects\Tests\Unit\Event; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Site\Entity\Site; use TYPO3\CMS\Core\Site\Entity\SiteLanguage; use TYPO3\CMS\Redirects\Event\AfterAutoCreateRedirectHasBeenPersistedEvent; @@ -27,9 +28,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class AfterAutoCreateRedirectHasBeenPersistedEventTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function afterAutoCreateRedirectHasBeenPersistedGettersReturnsCreationValues(): void { $source = new PlainSlugReplacementRedirectSource( diff --git a/typo3/sysext/redirects/Tests/Unit/Event/BeforeRedirectMatchDomainEventTest.php b/typo3/sysext/redirects/Tests/Unit/Event/BeforeRedirectMatchDomainEventTest.php index 62e3cb0e77327d918e3a928c4863eedacf8551dc..a4f541f8ff9975b3b58ef5646e2788c202157e26 100644 --- a/typo3/sysext/redirects/Tests/Unit/Event/BeforeRedirectMatchDomainEventTest.php +++ b/typo3/sysext/redirects/Tests/Unit/Event/BeforeRedirectMatchDomainEventTest.php @@ -17,14 +17,13 @@ declare(strict_types=1); namespace TYPO3\CMS\Redirects\Tests\Unit\Event; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Redirects\Event\BeforeRedirectMatchDomainEvent; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class BeforeRedirectMatchDomainEventTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function getterReturnsConstructorSetValues(): void { $event = new BeforeRedirectMatchDomainEvent('acme.com', '/some-path', '?param=value', '*'); @@ -36,9 +35,7 @@ final class BeforeRedirectMatchDomainEventTest extends UnitTestCase self::assertNull($event->getMatchedRedirect()); } - /** - * @test - */ + #[Test] public function matchedRedirectSetterReturnsSetMatchedRedirectAndCanBeSetToNull(): void { $redirect = ['some-redirect']; diff --git a/typo3/sysext/redirects/Tests/Unit/Event/ModifyAutoCreateRedirectRecordBeforePersistingEventTest.php b/typo3/sysext/redirects/Tests/Unit/Event/ModifyAutoCreateRedirectRecordBeforePersistingEventTest.php index 0edd3b3d34b1978b7c701376e35acfba678e816e..d7a8c107a2fa96907cc713137a0ccaa4a1cdcc47 100644 --- a/typo3/sysext/redirects/Tests/Unit/Event/ModifyAutoCreateRedirectRecordBeforePersistingEventTest.php +++ b/typo3/sysext/redirects/Tests/Unit/Event/ModifyAutoCreateRedirectRecordBeforePersistingEventTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Redirects\Tests\Unit\Event; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Site\Entity\Site; use TYPO3\CMS\Core\Site\Entity\SiteLanguage; use TYPO3\CMS\Redirects\Event\ModifyAutoCreateRedirectRecordBeforePersistingEvent; @@ -56,9 +57,7 @@ final class ModifyAutoCreateRedirectRecordBeforePersistingEventTest extends Unit self::assertSame($redirectRecord, $event->getRedirectRecord()); } - /** - * @test - */ + #[Test] public function modifyAutoCreateRedirectRecordBeforePersistingRedirectRecordCanBeSet(): void { $source = new PlainSlugReplacementRedirectSource( diff --git a/typo3/sysext/redirects/Tests/Unit/Event/ModifyRedirectManagementControllerViewDataEventTest.php b/typo3/sysext/redirects/Tests/Unit/Event/ModifyRedirectManagementControllerViewDataEventTest.php index 63976acb0f9d5e72c8115b589d73966a2f62e583..9c5cde8ca76963abbbe5f0b81c90cc219bd7a53c 100644 --- a/typo3/sysext/redirects/Tests/Unit/Event/ModifyRedirectManagementControllerViewDataEventTest.php +++ b/typo3/sysext/redirects/Tests/Unit/Event/ModifyRedirectManagementControllerViewDataEventTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Redirects\Tests\Unit\Event; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Http\ServerRequest; use TYPO3\CMS\Core\View\ViewInterface; use TYPO3\CMS\Redirects\Event\ModifyRedirectManagementControllerViewDataEvent; @@ -25,9 +26,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ModifyRedirectManagementControllerViewDataEventTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function gettersReturnsSetValues(): void { $demand = $this->createMock(Demand::class); diff --git a/typo3/sysext/redirects/Tests/Unit/Event/SlugRedirectChangeItemCreatedEventTest.php b/typo3/sysext/redirects/Tests/Unit/Event/SlugRedirectChangeItemCreatedEventTest.php index 32b810e03bdd0db95186ddbdb276e22175d47250..07eeadef78f7b1786b331ffe8c1c7b214d44343f 100644 --- a/typo3/sysext/redirects/Tests/Unit/Event/SlugRedirectChangeItemCreatedEventTest.php +++ b/typo3/sysext/redirects/Tests/Unit/Event/SlugRedirectChangeItemCreatedEventTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Redirects\Tests\Unit\Event; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Site\Entity\Site; use TYPO3\CMS\Core\Site\Entity\SiteLanguage; use TYPO3\CMS\Redirects\Event\SlugRedirectChangeItemCreatedEvent; @@ -26,9 +27,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class SlugRedirectChangeItemCreatedEventTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function slugRedirectChangeItemGetterReturnsChangeItemUsedForInstantiation(): void { $changeItem = new SlugRedirectChangeItem( @@ -46,9 +45,7 @@ final class SlugRedirectChangeItemCreatedEventTest extends UnitTestCase self::assertSame($changeItem, $event->getSlugRedirectChangeItem()); } - /** - * @test - */ + #[Test] public function slugRedirectChangeItemGetterReturnsChangedItemSetBySetter(): void { $changeItem = new SlugRedirectChangeItem( diff --git a/typo3/sysext/redirects/Tests/Unit/FormDataProvider/ValuePickerItemDataProviderTest.php b/typo3/sysext/redirects/Tests/Unit/FormDataProvider/ValuePickerItemDataProviderTest.php index e9f483b4d94f14b19011a6abca1eb58582f35691..42008ad7151dd857d24ef470038b76e90bef41c2 100644 --- a/typo3/sysext/redirects/Tests/Unit/FormDataProvider/ValuePickerItemDataProviderTest.php +++ b/typo3/sysext/redirects/Tests/Unit/FormDataProvider/ValuePickerItemDataProviderTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Redirects\Tests\Unit\FormDataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Site\Entity\Site; use TYPO3\CMS\Core\Site\SiteFinder; use TYPO3\CMS\Redirects\FormDataProvider\ValuePickerItemDataProvider; @@ -39,9 +40,7 @@ final class ValuePickerItemDataProviderTest extends UnitTestCase ], ]; - /** - * @test - */ + #[Test] public function addDataDoesNothingIfNoRedirectDataGiven(): void { $result = [ @@ -54,9 +53,7 @@ final class ValuePickerItemDataProviderTest extends UnitTestCase self::assertSame($result, $actualResult); } - /** - * @test - */ + #[Test] public function addDataAddsHostsAsKeyAndValueToRedirectValuePicker(): void { // no results for now @@ -75,9 +72,7 @@ final class ValuePickerItemDataProviderTest extends UnitTestCase self::assertSame($expected, $actualResult); } - /** - * @test - */ + #[Test] public function addDataDoesNotChangeResultSetIfNoSitesAreFound(): void { $siteFinderMock = $this->getMockBuilder(SiteFinder::class)->disableOriginalConstructor()->getMock(); diff --git a/typo3/sysext/redirects/Tests/Unit/RedirectUpdate/RedirectSourceCollectionTest.php b/typo3/sysext/redirects/Tests/Unit/RedirectUpdate/RedirectSourceCollectionTest.php index 8e44201bb00327448164457d6e3312310308cce5..6d0656703a1be234f4eb45de8b94873eeb742d2b 100644 --- a/typo3/sysext/redirects/Tests/Unit/RedirectUpdate/RedirectSourceCollectionTest.php +++ b/typo3/sysext/redirects/Tests/Unit/RedirectUpdate/RedirectSourceCollectionTest.php @@ -17,24 +17,21 @@ declare(strict_types=1); namespace TYPO3\CMS\Redirects\Tests\Unit\RedirectUpdate; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Redirects\RedirectUpdate\RedirectSourceCollection; use TYPO3\CMS\Redirects\RedirectUpdate\RedirectSourceInterface; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class RedirectSourceCollectionTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function countReturnsZeroIfNoItemsAdded(): void { $count = (new RedirectSourceCollection())->count(); self::assertSame(0, $count); } - /** - * @test - */ + #[Test] public function countReturnsCorrectCountOfItemsAdded(): void { $item = $this->createMock(RedirectSourceInterface::class); @@ -42,9 +39,7 @@ final class RedirectSourceCollectionTest extends UnitTestCase self::assertSame(3, $subject->count()); } - /** - * @test - */ + #[Test] public function allReturnsItemsInTheSameOrderTheyHaveBeenAdded(): void { $item1 = $this->createMock(RedirectSourceInterface::class); @@ -54,9 +49,7 @@ final class RedirectSourceCollectionTest extends UnitTestCase self::assertSame([$item3, $item1, $item2], $subject->all()); } - /** - * @test - */ + #[Test] public function throwsTypeExceptionIfInvalidItemIsAdded(): void { $this->expectException(\TypeError::class); diff --git a/typo3/sysext/redirects/Tests/Unit/RedirectUpdate/SlugRedirectChangeItemTest.php b/typo3/sysext/redirects/Tests/Unit/RedirectUpdate/SlugRedirectChangeItemTest.php index a8702d1b61971bc7070738ae8c749ed285c6372f..61dfc88d55d428ede663eb1b76aeb90a1fddfca9 100644 --- a/typo3/sysext/redirects/Tests/Unit/RedirectUpdate/SlugRedirectChangeItemTest.php +++ b/typo3/sysext/redirects/Tests/Unit/RedirectUpdate/SlugRedirectChangeItemTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Redirects\Tests\Unit\RedirectUpdate; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Site\Entity\Site; use TYPO3\CMS\Core\Site\Entity\SiteLanguage; use TYPO3\CMS\Redirects\RedirectUpdate\RedirectSourceCollection; @@ -25,9 +26,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class SlugRedirectChangeItemTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function withChangedReturnsNewInstanceWithChangedSet(): void { $changeItem = $this->createInitialChangeItem(); @@ -36,9 +35,7 @@ final class SlugRedirectChangeItemTest extends UnitTestCase self::assertSame('/changed', $extendedChangeItem->getChanged()['slug'] ?? null); } - /** - * @test - */ + #[Test] public function withSourcesCollectionReturnsNewInstanceWithCorrectSourcesCollection(): void { $changeItem = $this->createInitialChangeItem(); diff --git a/typo3/sysext/redirects/Tests/Unit/Repository/DemandTest.php b/typo3/sysext/redirects/Tests/Unit/Repository/DemandTest.php index 40011c67d98738d2f52c94e3fc914e68b25b64d7..7a0f8ad5d3a2ba2a9688ca18230458fba0afcde9 100644 --- a/typo3/sysext/redirects/Tests/Unit/Repository/DemandTest.php +++ b/typo3/sysext/redirects/Tests/Unit/Repository/DemandTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Redirects\Tests\Unit\Repository; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Redirects\Repository\Demand; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -36,10 +38,8 @@ final class DemandTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider getParametersRespectsDemandStateStateDataProvider - */ + #[DataProvider('getParametersRespectsDemandStateStateDataProvider')] + #[Test] public function getParametersRespectsDemandState(array $input, array $expected): void { self::assertEquals($expected, (new Demand(...$input))->getParameters()); diff --git a/typo3/sysext/redirects/Tests/Unit/Service/RedirectServiceTest.php b/typo3/sysext/redirects/Tests/Unit/Service/RedirectServiceTest.php index 4805bcd4b8b36b97eb3e2fd6da97402d5faa5ba6..148b7d7f59de09853c84b71cdcb789420de89188 100644 --- a/typo3/sysext/redirects/Tests/Unit/Service/RedirectServiceTest.php +++ b/typo3/sysext/redirects/Tests/Unit/Service/RedirectServiceTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Redirects\Tests\Unit\Service; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use Psr\Log\NullLogger; use TYPO3\CMS\Core\EventDispatcher\NoopEventDispatcher; @@ -61,9 +63,7 @@ final class RedirectServiceTest extends UnitTestCase $GLOBALS['SIM_ACCESS_TIME'] = 42; } - /** - * @test - */ + #[Test] public function matchRedirectReturnsNullIfNoRedirectsExist(): void { $this->redirectCacheServiceMock->method('getRedirects')->willReturnMap([ @@ -76,10 +76,8 @@ final class RedirectServiceTest extends UnitTestCase self::assertNull($result); } - /** - * @test - * @dataProvider matchRedirectReturnsRedirectOnFlatMatchDataProvider - */ + #[DataProvider('matchRedirectReturnsRedirectOnFlatMatchDataProvider')] + #[Test] public function matchRedirectReturnsRedirectOnFlatMatch(string $path = ''): void { $row = [ @@ -137,9 +135,7 @@ final class RedirectServiceTest extends UnitTestCase ]; } - /** - * @test - */ + #[Test] public function matchRedirectReturnsRedirectOnRespectQueryParametersMatch(): void { $row = [ @@ -174,9 +170,7 @@ final class RedirectServiceTest extends UnitTestCase self::assertSame($row, $result); } - /** - * @test - */ + #[Test] public function matchRedirectReturnsRedirectOnRespectQueryParametersMatchWithSlash(): void { $row = [ @@ -211,9 +205,7 @@ final class RedirectServiceTest extends UnitTestCase self::assertSame($row, $result); } - /** - * @test - */ + #[Test] public function matchRedirectReturnsRedirectOnFullRespectQueryParametersMatch(): void { $row = [ @@ -248,9 +240,7 @@ final class RedirectServiceTest extends UnitTestCase self::assertSame($row, $result); } - /** - * @test - */ + #[Test] public function matchRedirectReturnsNullOnPartialRespectQueryParametersMatch(): void { $row = [ @@ -285,9 +275,7 @@ final class RedirectServiceTest extends UnitTestCase self::assertNull($result); } - /** - * @test - */ + #[Test] public function matchRedirectReturnsMatchingRedirectWithMatchingQueryParametersOverMatchingPath(): void { $row1 = [ @@ -338,9 +326,7 @@ final class RedirectServiceTest extends UnitTestCase self::assertSame($row2, $result); } - /** - * @test - */ + #[Test] public function matchRedirectReturnsRedirectSpecificToDomainOnFlatMatchIfSpecificAndNonSpecificExist(): void { $row1 = [ @@ -390,9 +376,7 @@ final class RedirectServiceTest extends UnitTestCase self::assertSame($row1, $result); } - /** - * @test - */ + #[Test] public function matchRedirectReturnsRedirectOnRegexMatch(): void { $row = [ @@ -427,9 +411,7 @@ final class RedirectServiceTest extends UnitTestCase self::assertSame($row, $result); } - /** - * @test - */ + #[Test] public function matchRedirectReturnsOnlyActiveRedirects(): void { $row1 = [ @@ -473,9 +455,7 @@ final class RedirectServiceTest extends UnitTestCase self::assertSame($row2, $result); } - /** - * @test - */ + #[Test] public function getTargetUrlReturnsNullIfUrlCouldNotBeResolved(): void { $this->linkServiceMock->method('resolve')->with(self::anything())->willThrowException(new InvalidPathException('', 1516531195)); @@ -485,9 +465,7 @@ final class RedirectServiceTest extends UnitTestCase self::assertNull($result); } - /** - * @test - */ + #[Test] public function getTargetUrlReturnsUrlForTypeUrl(): void { $redirectTargetMatch = [ @@ -510,9 +488,7 @@ final class RedirectServiceTest extends UnitTestCase self::assertEquals($uri, $result); } - /** - * @test - */ + #[Test] public function getTargetUrlReturnsUrlForTypeFile(): void { $fileMock = $this->getMockBuilder(File::class)->disableOriginalConstructor()->getMock(); @@ -537,9 +513,7 @@ final class RedirectServiceTest extends UnitTestCase self::assertEquals($uri, $result); } - /** - * @test - */ + #[Test] public function getTargetUrlReturnsUrlForTypeFolder(): void { $folderMock = $this->getMockBuilder(Folder::class)->disableOriginalConstructor()->getMock(); @@ -565,9 +539,7 @@ final class RedirectServiceTest extends UnitTestCase self::assertEquals($uri, $result); } - /** - * @test - */ + #[Test] public function getTargetUrlRespectsForceHttps(): void { $redirectTargetMatch = [ @@ -590,9 +562,7 @@ final class RedirectServiceTest extends UnitTestCase self::assertEquals($uri, $result); } - /** - * @test - */ + #[Test] public function getTargetUrlAddsExistingQueryParams(): void { $redirectTargetMatch = [ @@ -616,9 +586,7 @@ final class RedirectServiceTest extends UnitTestCase self::assertEquals($uri, $result); } - /** - * @test - */ + #[Test] public function getTargetUrlRespectsAdditionalParametersFromTypolink(): void { $redirectService = $this->getAccessibleMock( @@ -663,9 +631,7 @@ final class RedirectServiceTest extends UnitTestCase self::assertEquals($uri, $result); } - /** - * @test - */ + #[Test] public function getTargetUrlReplaceRegExpCaptureGroup(): void { $redirectTargetMatch = [ @@ -733,10 +699,8 @@ final class RedirectServiceTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider getTargetUrlWithQueryReplaceRegExpCaptureGroupDataProvider - */ + #[DataProvider('getTargetUrlWithQueryReplaceRegExpCaptureGroupDataProvider')] + #[Test] public function getTargetUrlWithQueryReplaceRegExpCaptureGroup( string $redirectSourcePath, string $redirectTarget, @@ -814,10 +778,8 @@ final class RedirectServiceTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider getTargetUrlWithQueryAndSlashReplaceRegExpCaptureGroupDataProvider - */ + #[DataProvider('getTargetUrlWithQueryAndSlashReplaceRegExpCaptureGroupDataProvider')] + #[Test] public function getTargetUrlWithQueryAndSlashReplaceRegExpCaptureGroup( string $redirectSourcePath, string $redirectTarget, diff --git a/typo3/sysext/redirects/Tests/Unit/ViewHelpers/TargetPageIdViewHelperTest.php b/typo3/sysext/redirects/Tests/Unit/ViewHelpers/TargetPageIdViewHelperTest.php index 67eb486e6d8977d28967ff02a555bc2a3bf9f138..85a7083cbee69c5ce32f91792f94850d46b6ddf2 100644 --- a/typo3/sysext/redirects/Tests/Unit/ViewHelpers/TargetPageIdViewHelperTest.php +++ b/typo3/sysext/redirects/Tests/Unit/ViewHelpers/TargetPageIdViewHelperTest.php @@ -17,15 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Redirects\Tests\Unit\ViewHelpers; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Fluid\Core\Rendering\RenderingContext; use TYPO3\CMS\Redirects\ViewHelpers\TargetPageIdViewHelper; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class TargetPageIdViewHelperTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function nonTypo3TargetInRenderStaticReturnsEmptyString(): void { $renderingContext = new class () extends RenderingContext { @@ -35,9 +34,7 @@ final class TargetPageIdViewHelperTest extends UnitTestCase self::assertSame('', TargetPageIdViewHelper::renderStatic($args, static fn() => '', $renderingContext)); } - /** - * @test - */ + #[Test] public function emptyTargetInRenderStaticReturnsEmptyString(): void { $renderingContext = new class () extends RenderingContext { diff --git a/typo3/sysext/reports/Tests/Unit/Report/Status/StatusTest.php b/typo3/sysext/reports/Tests/Unit/Report/Status/StatusTest.php index c213eb401f3add9a6a34bb289a8ab3ab4f7ddaac..39d2e6a0062a652e77613a2d7b80d20bc807bcee 100644 --- a/typo3/sysext/reports/Tests/Unit/Report/Status/StatusTest.php +++ b/typo3/sysext/reports/Tests/Unit/Report/Status/StatusTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Reports\Tests\Unit\Report\Status; +use PHPUnit\Framework\Attributes\Test; use Psr\Container\ContainerInterface; use Psr\Http\Message\ServerRequestInterface; use TYPO3\CMS\Backend\View\BackendViewFactory; @@ -43,9 +44,7 @@ final class StatusTest extends UnitTestCase $GLOBALS['LANG'] = $mockLanguageService; } - /** - * @test - */ + #[Test] public function getSystemStatusCollectsAllStatusProvider(): void { $statusProviderArguments = [ @@ -87,9 +86,7 @@ final class StatusTest extends UnitTestCase self::assertSame($httpHeader[1], $result[$statusProviderArguments[2][1]][0]->getValue()); } - /** - * @test - */ + #[Test] public function getDetailedSystemStatusReturnsOnlyExtendedStatuses(): void { $statusProviderArguments = [ diff --git a/typo3/sysext/reports/Tests/Unit/Report/Status/Typo3StatusTest.php b/typo3/sysext/reports/Tests/Unit/Report/Status/Typo3StatusTest.php index 4cf6ead46819bbef4ab2672430baebcec48b4e19..5c374c60b6f3d36e3233de83496ea6ebe9cfc753 100644 --- a/typo3/sysext/reports/Tests/Unit/Report/Status/Typo3StatusTest.php +++ b/typo3/sysext/reports/Tests/Unit/Report/Status/Typo3StatusTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Reports\Tests\Unit\Report\Status; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Localization\LanguageService; use TYPO3\CMS\Core\Type\ContextualFeedbackSeverity; use TYPO3\CMS\Reports\Report\Status\Typo3Status; @@ -31,9 +32,7 @@ final class Typo3StatusTest extends UnitTestCase $GLOBALS['LANG'] = $mockLanguageService; } - /** - * @test - */ + #[Test] public function getStatusReturnsXclassStatusObjectWithSeverityOkIfNoXclassExists(): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['Objects'] = []; @@ -43,9 +42,7 @@ final class Typo3StatusTest extends UnitTestCase self::assertSame(ContextualFeedbackSeverity::OK, $statusObject->getSeverity()); } - /** - * @test - */ + #[Test] public function getStatusReturnsXclassStatusObjectWithSeverityNoticeIfXclassExists(): void { $GLOBALS['TYPO3_CONF_VARS']['SYS']['Objects'] = [ diff --git a/typo3/sysext/scheduler/Tests/Unit/CronCommand/CronCommandTest.php b/typo3/sysext/scheduler/Tests/Unit/CronCommand/CronCommandTest.php index bb43db833119b5154f5091536b13612ae27a2158..abb340deffb34490104a75541eb7af7daf34f4eb 100644 --- a/typo3/sysext/scheduler/Tests/Unit/CronCommand/CronCommandTest.php +++ b/typo3/sysext/scheduler/Tests/Unit/CronCommand/CronCommandTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Scheduler\Tests\Unit\CronCommand; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Scheduler\CronCommand\CronCommand; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -51,18 +53,14 @@ final class CronCommandTest extends UnitTestCase parent::tearDown(); } - /** - * @test - */ + #[Test] public function constructorSetsNormalizedCronCommandSections(): void { $instance = new CronCommand('2-3 * * * *'); self::assertSame(['2,3', '*', '*', '*', '*'], $instance->getCronCommandSections()); } - /** - * @test - */ + #[Test] public function constructorThrowsExceptionForInvalidCronCommand(): void { $this->expectException(\InvalidArgumentException::class); @@ -70,9 +68,7 @@ final class CronCommandTest extends UnitTestCase new CronCommand('61 * * * *'); } - /** - * @test - */ + #[Test] public function constructorSetsTimestampToNowPlusOneMinuteRoundedDownToSixtySeconds(): void { $instance = new CronCommand('* * * * *'); @@ -81,18 +77,14 @@ final class CronCommandTest extends UnitTestCase self::assertSame($expectedTime, $instance->getTimestamp()); } - /** - * @test - */ + #[Test] public function constructorSetsTimestampToGivenTimestampPlusSixtySeconds(): void { $instance = new CronCommand('* * * * *', self::TIMESTAMP); self::assertSame(self::TIMESTAMP + 60, $instance->getTimestamp()); } - /** - * @test - */ + #[Test] public function constructorSetsTimestampToGiveTimestampRoundedDownToSixtySeconds(): void { $instance = new CronCommand('* * * * *', self::TIMESTAMP + 1); @@ -232,12 +224,12 @@ final class CronCommandTest extends UnitTestCase } /** - * @test - * @dataProvider expectedTimestampDataProvider * @param string $cronCommand Cron command * @param int $startTimestamp Timestamp for start of calculation * @param int $expectedTimestamp Expected result (next time of execution) */ + #[DataProvider('expectedTimestampDataProvider')] + #[Test] public function calculateNextValueDeterminesCorrectNextTimestamp(string $cronCommand, int $startTimestamp, int $expectedTimestamp): void { $instance = new CronCommand($cronCommand, $startTimestamp); @@ -246,12 +238,12 @@ final class CronCommandTest extends UnitTestCase } /** - * @test - * @dataProvider expectedCalculatedTimestampDataProvider * @param string $cronCommand Cron command * @param int $startTimestamp Timestamp for start of calculation * @param string $expectedTimestamp Expected result (next time of execution), to be fed to strtotime */ + #[DataProvider('expectedCalculatedTimestampDataProvider')] + #[Test] public function calculateNextValueDeterminesCorrectNextCalculatedTimestamp(string $cronCommand, int $startTimestamp, string $expectedTimestamp): void { $instance = new CronCommand($cronCommand, $startTimestamp); @@ -260,13 +252,13 @@ final class CronCommandTest extends UnitTestCase } /** - * @test - * @dataProvider expectedTimestampDataProvider * @param string $cronCommand Cron command * @param int $startTimestamp [unused] Timestamp for start of calculation * @param int $firstTimestamp Timestamp of the next execution * @param int $secondTimestamp Timestamp of the further execution */ + #[DataProvider('expectedTimestampDataProvider')] + #[Test] public function calculateNextValueDeterminesCorrectNextTimestampOnConsecutiveCall(string $cronCommand, int $startTimestamp, int $firstTimestamp, int $secondTimestamp): void { $instance = new CronCommand($cronCommand, $firstTimestamp); @@ -275,13 +267,13 @@ final class CronCommandTest extends UnitTestCase } /** - * @test - * @dataProvider expectedCalculatedTimestampDataProvider * @param string $cronCommand Cron command * @param int $startTimestamp [unused] Timestamp for start of calculation * @param string $firstTimestamp Timestamp of the next execution, to be fed to strtotime * @param string $secondTimestamp Timestamp of the further execution, to be fed to strtotime */ + #[DataProvider('expectedCalculatedTimestampDataProvider')] + #[Test] public function calculateNextValueDeterminesCorrectNextCalculatedTimestampOnConsecutiveCall(string $cronCommand, int $startTimestamp, string $firstTimestamp, string $secondTimestamp): void { $instance = new CronCommand($cronCommand, strtotime($firstTimestamp)); @@ -289,9 +281,7 @@ final class CronCommandTest extends UnitTestCase self::assertSame(strtotime($secondTimestamp), $instance->getTimestamp()); } - /** - * @test - */ + #[Test] public function calculateNextValueDeterminesCorrectNextTimestampOnChangeToSummertime(): void { $backupTimezone = date_default_timezone_get(); @@ -302,9 +292,7 @@ final class CronCommandTest extends UnitTestCase self::assertSame(1269741600, $instance->getTimestamp()); } - /** - * @test - */ + #[Test] public function calculateNextValueThrowsExceptionWithImpossibleCronCommand(): void { $this->expectException(\RuntimeException::class); @@ -313,18 +301,14 @@ final class CronCommandTest extends UnitTestCase $instance->calculateNextValue(); } - /** - * @test - */ + #[Test] public function getTimestampReturnsInteger(): void { $instance = new CronCommand('* * * * *'); self::assertIsInt($instance->getTimestamp()); } - /** - * @test - */ + #[Test] public function getCronCommandSectionsReturnsArray(): void { $instance = new CronCommand('* * * * *'); diff --git a/typo3/sysext/scheduler/Tests/Unit/CronCommand/NormalizeCommandTest.php b/typo3/sysext/scheduler/Tests/Unit/CronCommand/NormalizeCommandTest.php index 7f6c32ce2f6bdf74116b136825cefbb6e3a6348c..5e6204093a68da5880c2c619c9b142c9e6b3d1d8 100644 --- a/typo3/sysext/scheduler/Tests/Unit/CronCommand/NormalizeCommandTest.php +++ b/typo3/sysext/scheduler/Tests/Unit/CronCommand/NormalizeCommandTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Scheduler\Tests\Unit\CronCommand; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Scheduler\CronCommand\NormalizeCommand; use TYPO3\CMS\Scheduler\Tests\Unit\CronCommand\AccessibleProxies\NormalizeCommandAccessibleProxy; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -56,11 +58,11 @@ final class NormalizeCommandTest extends UnitTestCase } /** - * @test - * @dataProvider normalizeValidDataProvider * @param string $expression Cron command to test * @param string $expected Expected result (normalized cron command syntax) */ + #[DataProvider('normalizeValidDataProvider')] + #[Test] public function normalizeConvertsCronCommand(string $expression, string $expected): void { $result = NormalizeCommand::normalize($expression); @@ -81,20 +83,18 @@ final class NormalizeCommandTest extends UnitTestCase } /** - * @test - * @dataProvider validSpecialKeywordsDataProvider * @param string $keyword Cron command keyword * @param string $expectedCronCommand Expected result (normalized cron command syntax) */ + #[DataProvider('validSpecialKeywordsDataProvider')] + #[Test] public function convertKeywordsToCronCommandConvertsValidKeywords(string $keyword, string $expectedCronCommand): void { $result = NormalizeCommandAccessibleProxy::convertKeywordsToCronCommand($keyword); self::assertEquals($expectedCronCommand, $result); } - /** - * @test - */ + #[Test] public function convertKeywordsToCronCommandReturnsUnchangedCommandIfKeywordWasNotFound(): void { $invalidKeyword = 'foo'; @@ -114,11 +114,11 @@ final class NormalizeCommandTest extends UnitTestCase } /** - * @test - * @dataProvider normalizeFieldsValidDataProvider * @param string $expression Cron command to normalize * @param string $expected Expected result (normalized cron command syntax) */ + #[DataProvider('normalizeFieldsValidDataProvider')] + #[Test] public function normalizeFieldsConvertsField(string $expression, string $expected): void { $result = NormalizeCommandAccessibleProxy::normalizeFields($expression); @@ -151,12 +151,12 @@ final class NormalizeCommandTest extends UnitTestCase } /** - * @test - * @dataProvider normalizeMonthAndWeekdayFieldValidDataProvider * @param string $expression Cron command partial expression for month and weekday fields * @param bool $isMonthField Flag to designate month field or not * @param string $expected Expected result (normalized months or weekdays) */ + #[DataProvider('normalizeMonthAndWeekdayFieldValidDataProvider')] + #[Test] public function normalizeMonthAndWeekdayFieldReturnsNormalizedListForValidExpression( string $expression, bool $isMonthField, @@ -179,12 +179,12 @@ final class NormalizeCommandTest extends UnitTestCase } /** - * @test - * @dataProvider normalizeMonthAndWeekdayFieldInvalidDataProvider * @param string $expression Cron command partial expression for month and weekday fields (invalid) * @param bool $isMonthField Flag to designate month field or not * @param int $expectedExceptionCode Expected exception code from provider */ + #[DataProvider('normalizeMonthAndWeekdayFieldInvalidDataProvider')] + #[Test] public function normalizeMonthAndWeekdayFieldThrowsExceptionForInvalidExpression( string $expression, bool $isMonthField, @@ -215,11 +215,11 @@ final class NormalizeCommandTest extends UnitTestCase } /** - * @test - * @dataProvider normalizeIntegerFieldValidDataProvider * @param string|int $expression Cron command partial integer expression * @param string $expected Expected result (normalized integer or integer list) */ + #[DataProvider('normalizeIntegerFieldValidDataProvider')] + #[Test] public function normalizeIntegerFieldReturnsNormalizedListForValidExpression($expression, string $expected): void { $result = NormalizeCommandAccessibleProxy::normalizeIntegerField($expression); @@ -243,13 +243,13 @@ final class NormalizeCommandTest extends UnitTestCase } /** - * @test - * @dataProvider normalizeIntegerFieldInvalidDataProvider * @param string $expression Cron command partial integer expression (invalid) * @param int $lowerBound Lower limit * @param int $upperBound Upper limit * @param int $expectedExceptionCode Expected exception code */ + #[DataProvider('normalizeIntegerFieldInvalidDataProvider')] + #[Test] public function normalizeIntegerFieldThrowsExceptionForInvalidExpressions( string $expression, int $lowerBound, @@ -262,9 +262,7 @@ final class NormalizeCommandTest extends UnitTestCase NormalizeCommandAccessibleProxy::normalizeIntegerField($expression, $lowerBound, $upperBound); } - /** - * @test - */ + #[Test] public function splitFieldsReturnsIntegerArrayWithFieldsSplitByWhitespace(): void { $result = NormalizeCommandAccessibleProxy::splitFields('12,13 * 1-12/2,14 jan fri'); @@ -290,10 +288,10 @@ final class NormalizeCommandTest extends UnitTestCase } /** - * @test - * @dataProvider invalidCronCommandFieldsDataProvider * @param string|int $cronCommand Invalid cron command */ + #[DataProvider('invalidCronCommandFieldsDataProvider')] + #[Test] public function splitFieldsThrowsExceptionIfCronCommandDoesNotContainFiveFields($cronCommand): void { $this->expectException(\InvalidArgumentException::class); @@ -314,11 +312,11 @@ final class NormalizeCommandTest extends UnitTestCase } /** - * @test - * @dataProvider validRangeDataProvider * @param string|int $range Cron command range expression * @param string $expected Expected result (normalized range) */ + #[DataProvider('validRangeDataProvider')] + #[Test] public function convertRangeToListOfValuesReturnsCorrectListForValidRanges($range, string $expected): void { $result = NormalizeCommandAccessibleProxy::convertRangeToListOfValues($range); @@ -342,11 +340,11 @@ final class NormalizeCommandTest extends UnitTestCase } /** - * @test - * @dataProvider invalidRangeDataProvider * @param string $range Cron command range expression (invalid) * @param int $expectedExceptionCode Expected exception code from provider */ + #[DataProvider('invalidRangeDataProvider')] + #[Test] public function convertRangeToListOfValuesThrowsExceptionForInvalidRanges(string $range, int $expectedExceptionCode): void { $this->expectException(\InvalidArgumentException::class); @@ -365,11 +363,11 @@ final class NormalizeCommandTest extends UnitTestCase } /** - * @test - * @dataProvider validStepsDataProvider * @param string $stepExpression Cron command step expression * @param string $expected Expected result (normalized range) */ + #[DataProvider('validStepsDataProvider')] + #[Test] public function reduceListOfValuesByStepValueReturnsCorrectListOfValues(string $stepExpression, string $expected): void { $result = NormalizeCommandAccessibleProxy::reduceListOfValuesByStepValue($stepExpression); @@ -392,11 +390,11 @@ final class NormalizeCommandTest extends UnitTestCase } /** - * @test - * @dataProvider invalidStepsDataProvider * @param string $stepExpression Cron command step expression (invalid) * @param int $expectedExceptionCode Expected exception code */ + #[DataProvider('invalidStepsDataProvider')] + #[Test] public function reduceListOfValuesByStepValueThrowsExceptionForInvalidStepExpressions( string $stepExpression, int $expectedExceptionCode @@ -407,27 +405,21 @@ final class NormalizeCommandTest extends UnitTestCase NormalizeCommandAccessibleProxy::reduceListOfValuesByStepValue($stepExpression); } - /** - * @test - */ + #[Test] public function normalizeMonthAndWeekdayNormalizesAMonth(): void { $result = NormalizeCommandAccessibleProxy::normalizeMonthAndWeekday('feb', true); self::assertSame('2', $result); } - /** - * @test - */ + #[Test] public function normalizeMonthAndWeekdayNormalizesAWeekday(): void { $result = NormalizeCommandAccessibleProxy::normalizeMonthAndWeekday('fri', false); self::assertSame('5', $result); } - /** - * @test - */ + #[Test] public function normalizeMonthAndWeekdayLeavesValueUnchanged(): void { $result = NormalizeCommandAccessibleProxy::normalizeMonthAndWeekday('2'); @@ -457,11 +449,11 @@ final class NormalizeCommandTest extends UnitTestCase } /** - * @test - * @dataProvider validMonthNamesDataProvider * @param string|int $monthName Month name * @param int $expectedInteger Number of the month */ + #[DataProvider('validMonthNamesDataProvider')] + #[Test] public function normalizeMonthConvertsName($monthName, int $expectedInteger): void { $result = NormalizeCommandAccessibleProxy::normalizeMonth($monthName); @@ -469,10 +461,10 @@ final class NormalizeCommandTest extends UnitTestCase } /** - * @test - * @dataProvider validMonthNamesDataProvider * @param string|int $monthName Month name */ + #[DataProvider('validMonthNamesDataProvider')] + #[Test] public function normalizeMonthReturnsInteger($monthName): void { $result = NormalizeCommandAccessibleProxy::normalizeMonth($monthName); @@ -505,11 +497,11 @@ final class NormalizeCommandTest extends UnitTestCase } /** - * @test - * @dataProvider invalidMonthNamesDataProvider * @param string|int $invalidMonthName Month name (invalid) * @param int $expectedExceptionCode Expected exception code */ + #[DataProvider('invalidMonthNamesDataProvider')] + #[Test] public function normalizeMonthThrowsExceptionForInvalidMonthRepresentation( $invalidMonthName, int $expectedExceptionCode @@ -553,11 +545,11 @@ final class NormalizeCommandTest extends UnitTestCase } /** - * @test - * @dataProvider validWeekdayDataProvider * @param string|int $weekday Weekday expression * @param int $expectedInteger Number of weekday */ + #[DataProvider('validWeekdayDataProvider')] + #[Test] public function normalizeWeekdayConvertsName($weekday, int $expectedInteger): void { $result = NormalizeCommandAccessibleProxy::normalizeWeekday($weekday); @@ -565,10 +557,10 @@ final class NormalizeCommandTest extends UnitTestCase } /** - * @test - * @dataProvider validWeekdayDataProvider * @param string|int $weekday Weekday expression */ + #[DataProvider('validWeekdayDataProvider')] + #[Test] public function normalizeWeekdayReturnsInteger($weekday): void { $result = NormalizeCommandAccessibleProxy::normalizeWeekday($weekday); @@ -599,10 +591,10 @@ final class NormalizeCommandTest extends UnitTestCase } /** - * @test - * @dataProvider invalidWeekdayDataProvider * @param string|int $weekday Weekday expression (invalid) */ + #[DataProvider('invalidWeekdayDataProvider')] + #[Test] public function normalizeWeekdayThrowsExceptionForInvalidWeekdayRepresentation($weekday): void { $this->expectException(\InvalidArgumentException::class); diff --git a/typo3/sysext/scheduler/Tests/Unit/Task/CachingFrameworkGarbageCollectionTest.php b/typo3/sysext/scheduler/Tests/Unit/Task/CachingFrameworkGarbageCollectionTest.php index 90d52995b318d44c9d2c2382e9f6010698a0837e..14dbcef87510a474c29774819bc9b4daa3d45c81 100644 --- a/typo3/sysext/scheduler/Tests/Unit/Task/CachingFrameworkGarbageCollectionTest.php +++ b/typo3/sysext/scheduler/Tests/Unit/Task/CachingFrameworkGarbageCollectionTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Scheduler\Tests\Unit\Task; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Cache\Backend\AbstractBackend; use TYPO3\CMS\Core\Cache\Backend\NullBackend; use TYPO3\CMS\Core\Cache\CacheManager; @@ -29,9 +30,7 @@ final class CachingFrameworkGarbageCollectionTest extends UnitTestCase { protected bool $resetSingletonInstances = true; - /** - * @test - */ + #[Test] public function executeCallsCollectGarbageOfConfiguredBackend(): void { $cache = $this->createMock(VariableFrontend::class); @@ -54,9 +53,7 @@ final class CachingFrameworkGarbageCollectionTest extends UnitTestCase $subject->execute(); } - /** - * @test - */ + #[Test] public function executeDoesNotCallCollectGarbageOfNotConfiguredBackend(): void { $cache = $this->createMock(VariableFrontend::class); diff --git a/typo3/sysext/scheduler/Tests/Unit/Task/ExecuteSchedulableCommandAdditionalFieldProviderTest.php b/typo3/sysext/scheduler/Tests/Unit/Task/ExecuteSchedulableCommandAdditionalFieldProviderTest.php index 9dc656f40edd0b4b6c434c846f1d0c347b6fde84..45f675337d6cfc920ed7fb083d4a4afcdba2cc8f 100644 --- a/typo3/sysext/scheduler/Tests/Unit/Task/ExecuteSchedulableCommandAdditionalFieldProviderTest.php +++ b/typo3/sysext/scheduler/Tests/Unit/Task/ExecuteSchedulableCommandAdditionalFieldProviderTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Scheduler\Tests\Unit\Task; +use PHPUnit\Framework\Attributes\Test; use Symfony\Component\Console\Command\Command; use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; use TYPO3\CMS\Core\Console\CommandRegistry; @@ -36,9 +37,7 @@ final class ExecuteSchedulableCommandAdditionalFieldProviderTest extends UnitTes { protected bool $resetSingletonInstances = true; - /** - * @test - */ + #[Test] public function argumentsAndOptionsWithSameNameAreAdded(): void { $GLOBALS['BE_USER'] = new BackendUserAuthentication(); diff --git a/typo3/sysext/scheduler/Tests/Unit/Task/TaskSerializerTest.php b/typo3/sysext/scheduler/Tests/Unit/Task/TaskSerializerTest.php index f30d66e47620907a73ec9348d51497e43b3b198c..0fe9be99dab60a82653c1e3aa6c88c676a9663bd 100644 --- a/typo3/sysext/scheduler/Tests/Unit/Task/TaskSerializerTest.php +++ b/typo3/sysext/scheduler/Tests/Unit/Task/TaskSerializerTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Scheduler\Tests\Unit\Task; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Log\Writer\NullWriter; use TYPO3\CMS\Scheduler\Exception\InvalidTaskException; use TYPO3\CMS\Scheduler\Task\TaskSerializer; @@ -45,10 +47,8 @@ final class TaskSerializerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider dataIsDeserializedDataProvider - */ + #[DataProvider('dataIsDeserializedDataProvider')] + #[Test] public function dataIsDeserialized(string $data, $expectation): void { $taskSerializer = new TaskSerializer(); @@ -85,10 +85,8 @@ final class TaskSerializerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider deserializationThrowsExceptionDataProvider - */ + #[DataProvider('deserializationThrowsExceptionDataProvider')] + #[Test] public function deserializationThrowsException(string $data, int $exceptionCode): void { $this->expectException(InvalidTaskException::class); @@ -114,10 +112,8 @@ final class TaskSerializerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider classNameIsResolvedDataProvider - */ + #[DataProvider('classNameIsResolvedDataProvider')] + #[Test] public function classNameIsResolved(?object $task, ?string $expectation): void { $taskSerializer = new TaskSerializer(); @@ -142,10 +138,8 @@ final class TaskSerializerTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider classNameIsExtractedDataProvider - */ + #[DataProvider('classNameIsExtractedDataProvider')] + #[Test] public function classNameIsExtracted(string $serializedTask, ?string $expectation): void { $taskSerializer = new TaskSerializer(); diff --git a/typo3/sysext/scheduler/Tests/Unit/Validation/Validator/TaskValidatorTest.php b/typo3/sysext/scheduler/Tests/Unit/Validation/Validator/TaskValidatorTest.php index 09ea011490b54f4884c9a712987283d95228b468..5e89f560e09929cf75805939f39092fca284f6f4 100644 --- a/typo3/sysext/scheduler/Tests/Unit/Validation/Validator/TaskValidatorTest.php +++ b/typo3/sysext/scheduler/Tests/Unit/Validation/Validator/TaskValidatorTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Scheduler\Tests\Unit\Validation\Validator; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Scheduler\Execution; use TYPO3\CMS\Scheduler\Task\AbstractTask; use TYPO3\CMS\Scheduler\Validation\Validator\TaskValidator; @@ -24,18 +25,14 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class TaskValidatorTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function isValidReturnsFalseWithClassNotExtendingAbstractTask(): void { $subject = new TaskValidator(); self::assertFalse($subject->isValid($subject)); } - /** - * @test - */ + #[Test] public function isValidReturnsFalseWithClassNotProperlyImplementingGetExecution(): void { $subject = new TaskValidator(); @@ -49,9 +46,7 @@ final class TaskValidatorTest extends UnitTestCase self::assertFalse($subject->isValid($input)); } - /** - * @test - */ + #[Test] public function isValidReturnsTrueWithClassProperlyImplementingAbstractTask(): void { $subject = new TaskValidator(); diff --git a/typo3/sysext/seo/Tests/Unit/Event/ModifyUrlForCanonicalTagEventTest.php b/typo3/sysext/seo/Tests/Unit/Event/ModifyUrlForCanonicalTagEventTest.php index 0607b423feaa9149310cc91fa5859eeab3263881..62433e1f692a4558f211d0fa8132accf1a074b3c 100644 --- a/typo3/sysext/seo/Tests/Unit/Event/ModifyUrlForCanonicalTagEventTest.php +++ b/typo3/sysext/seo/Tests/Unit/Event/ModifyUrlForCanonicalTagEventTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Seo\Tests\Unit\Event; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Domain\Page; use TYPO3\CMS\Core\Http\ServerRequest; use TYPO3\CMS\Core\Http\Uri; @@ -25,9 +26,7 @@ use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class ModifyUrlForCanonicalTagEventTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function gettersReturnInitializedObjects(): void { $url = (string)new Uri('https://example.com'); diff --git a/typo3/sysext/seo/Tests/Unit/HrefLang/HrefLangGeneratorTest.php b/typo3/sysext/seo/Tests/Unit/HrefLang/HrefLangGeneratorTest.php index ff17349e75751943d07b476783ba8b1eb5562543..3b6ee3735818caf5db9787482c7a1a2dc4112422 100644 --- a/typo3/sysext/seo/Tests/Unit/HrefLang/HrefLangGeneratorTest.php +++ b/typo3/sysext/seo/Tests/Unit/HrefLang/HrefLangGeneratorTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Seo\Tests\Unit\HrefLang; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use Psr\Http\Message\UriInterface; use TYPO3\CMS\Core\Site\Entity\SiteLanguage; @@ -65,10 +67,8 @@ final class HrefLangGeneratorTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider urlPathWithoutHostDataProvider - */ + #[DataProvider('urlPathWithoutHostDataProvider')] + #[Test] public function checkIfSiteLanguageGetBaseIsCalledForUrlsWithoutHost(string $url): void { $mockUriInterface = $this->getMockBuilder(UriInterface::class)->getMock(); @@ -95,10 +95,8 @@ final class HrefLangGeneratorTest extends UnitTestCase ]; } - /** - * @test - * @dataProvider urlPathWithHostDataProvider - */ + #[DataProvider('urlPathWithHostDataProvider')] + #[Test] public function checkIfSiteLanguageGetBaseIsNotCalledForUrlsWithHost(string $url): void { $mockUriInterface = $this->getMockBuilder(UriInterface::class)->getMock(); diff --git a/typo3/sysext/seo/Tests/Unit/MetaTag/OpenGraphMetaTagManagerTest.php b/typo3/sysext/seo/Tests/Unit/MetaTag/OpenGraphMetaTagManagerTest.php index 95235ed872f991ac5fd4be16264e753605784778..de29b9d0d0c1f7ea548eb4ff1321719a009bd3ea 100644 --- a/typo3/sysext/seo/Tests/Unit/MetaTag/OpenGraphMetaTagManagerTest.php +++ b/typo3/sysext/seo/Tests/Unit/MetaTag/OpenGraphMetaTagManagerTest.php @@ -17,14 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Seo\Tests\Unit\MetaTag; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Seo\MetaTag\OpenGraphMetaTagManager; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class OpenGraphMetaTagManagerTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function checkIfGetAllHandledPropertiesReturnsNonEmptyArray(): void { $manager = new OpenGraphMetaTagManager(); @@ -33,11 +33,8 @@ final class OpenGraphMetaTagManagerTest extends UnitTestCase self::assertNotEmpty($handledProperties); } - /** - * @dataProvider propertiesProvider - * - * @test - */ + #[DataProvider('propertiesProvider')] + #[Test] public function checkIfPropertyIsStoredAfterAddingProperty(array $property, array $expected, string $expectedRenderedTag): void { $manager = new OpenGraphMetaTagManager(); @@ -51,9 +48,7 @@ final class OpenGraphMetaTagManagerTest extends UnitTestCase self::assertEquals($expectedRenderedTag, $manager->renderProperty($property['property'])); } - /** - * @test - */ + #[Test] public function checkIfAddingOnlySubPropertyAndNoMainPropertyIsReturningException(): void { $manager = new OpenGraphMetaTagManager(); @@ -62,9 +57,7 @@ final class OpenGraphMetaTagManagerTest extends UnitTestCase $manager->addProperty('og:image:width', '400'); } - /** - * @test - */ + #[Test] public function checkRenderAllPropertiesRendersCorrectMetaTags(): void { $properties = [ @@ -127,9 +120,7 @@ final class OpenGraphMetaTagManagerTest extends UnitTestCase self::assertEquals($expected, $manager->renderAllProperties()); } - /** - * @test - */ + #[Test] public function checkIfRemovePropertyReallyRemovesProperty(): void { $manager = new OpenGraphMetaTagManager(); diff --git a/typo3/sysext/seo/Tests/Unit/MetaTag/TwitterCardMetaTagManagerTest.php b/typo3/sysext/seo/Tests/Unit/MetaTag/TwitterCardMetaTagManagerTest.php index d8ab1ea6108e2c779125a09921f27877adc31085..7676723bb9dbe619653a378089ee9a7e78a624db 100644 --- a/typo3/sysext/seo/Tests/Unit/MetaTag/TwitterCardMetaTagManagerTest.php +++ b/typo3/sysext/seo/Tests/Unit/MetaTag/TwitterCardMetaTagManagerTest.php @@ -17,14 +17,14 @@ declare(strict_types=1); namespace TYPO3\CMS\Seo\Tests\Unit\MetaTag; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Seo\MetaTag\TwitterCardMetaTagManager; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class TwitterCardMetaTagManagerTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function checkIfGetAllHandledPropertiesReturnsNonEmptyArray(): void { $manager = new TwitterCardMetaTagManager(); @@ -33,11 +33,8 @@ final class TwitterCardMetaTagManagerTest extends UnitTestCase self::assertNotEmpty($handledProperties); } - /** - * @dataProvider propertiesProvider - * - * @test - */ + #[DataProvider('propertiesProvider')] + #[Test] public function checkIfPropertyIsStoredAfterAddingProperty(array $property, array $expected, string $expectedRenderedTag): void { $manager = new TwitterCardMetaTagManager(); @@ -116,9 +113,7 @@ final class TwitterCardMetaTagManagerTest extends UnitTestCase ]; } - /** - * @test - */ + #[Test] public function checkIfAddingOnlySubPropertyAndNoMainPropertyIsReturningException(): void { $manager = new TwitterCardMetaTagManager(); @@ -127,9 +122,7 @@ final class TwitterCardMetaTagManagerTest extends UnitTestCase $manager->addProperty('og:image:width', '400'); } - /** - * @test - */ + #[Test] public function checkRenderAllPropertiesRendersCorrectMetaTags(): void { $properties = [ @@ -182,9 +175,7 @@ final class TwitterCardMetaTagManagerTest extends UnitTestCase self::assertEquals($expected, $manager->renderAllProperties()); } - /** - * @test - */ + #[Test] public function checkIfRemovePropertyReallyRemovesProperty(): void { $manager = new TwitterCardMetaTagManager(); diff --git a/typo3/sysext/seo/Tests/Unit/XmlSitemap/PagesXmlSitemapDataProviderTest.php b/typo3/sysext/seo/Tests/Unit/XmlSitemap/PagesXmlSitemapDataProviderTest.php index 2e34aad403f5ad71773c23b5bbcaf790fdfba900..288a9473f60727822b79e012cd3ab80f908da582 100644 --- a/typo3/sysext/seo/Tests/Unit/XmlSitemap/PagesXmlSitemapDataProviderTest.php +++ b/typo3/sysext/seo/Tests/Unit/XmlSitemap/PagesXmlSitemapDataProviderTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Seo\Tests\Unit\XmlSitemap; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use Psr\Http\Message\ServerRequestInterface; use TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer; use TYPO3\CMS\Seo\XmlSitemap\PagesXmlSitemapDataProvider; @@ -51,9 +53,7 @@ final class PagesXmlSitemapDataProviderTest extends UnitTestCase ]; } - /** - * @test - */ + #[Test] public function checkIfCorrectKeyIsGivenAfterConstruct(): void { $key = 'dummyKey'; @@ -69,10 +69,8 @@ final class PagesXmlSitemapDataProviderTest extends UnitTestCase self::assertEquals($key, $subject->getKey()); } - /** - * @dataProvider numberOfItemsPerPageProvider - * @test - */ + #[DataProvider('numberOfItemsPerPageProvider')] + #[Test] public function checkGetItemsReturnsDefinedItems(int $numberOfItemsPerPage): void { $key = 'dummyKey'; @@ -103,9 +101,7 @@ final class PagesXmlSitemapDataProviderTest extends UnitTestCase self::assertEquals($expectedReturnedItems, $returnedItems); } - /** - * @test - */ + #[Test] public function checkGetLastModReturnsRightDate(): void { $key = 'dummyKey'; diff --git a/typo3/sysext/t3editor/Tests/Unit/Registry/AddonRegistryTest.php b/typo3/sysext/t3editor/Tests/Unit/Registry/AddonRegistryTest.php index 6a7417324a0db260c3ffb4d01bdaefc7cdfe9e43..180484532c3898313df164b47ba21d504b549929 100644 --- a/typo3/sysext/t3editor/Tests/Unit/Registry/AddonRegistryTest.php +++ b/typo3/sysext/t3editor/Tests/Unit/Registry/AddonRegistryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\T3editor\Tests\Unit\Registry; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\T3editor\Addon; use TYPO3\CMS\T3editor\Registry\AddonRegistry; @@ -64,9 +65,7 @@ final class AddonRegistryTest extends UnitTestCase ); } - /** - * @test - */ + #[Test] public function globalAddonsGetReturned(): void { $expected = [ @@ -84,9 +83,7 @@ final class AddonRegistryTest extends UnitTestCase self::assertSame($expected, $actual); } - /** - * @test - */ + #[Test] public function settingsAreProperlyCompiled(): void { $expected = [ diff --git a/typo3/sysext/t3editor/Tests/Unit/Registry/ModeRegistryTest.php b/typo3/sysext/t3editor/Tests/Unit/Registry/ModeRegistryTest.php index 930b1f5df323731864c04195ff7edac11d9c4781..e6bff59f67fbf133f711662af427070ab17fdc39 100644 --- a/typo3/sysext/t3editor/Tests/Unit/Registry/ModeRegistryTest.php +++ b/typo3/sysext/t3editor/Tests/Unit/Registry/ModeRegistryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\T3editor\Tests\Unit\Registry; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Page\JavaScriptModuleInstruction; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\T3editor\Mode; @@ -36,9 +37,7 @@ final class ModeRegistryTest extends UnitTestCase $this->subject = new ModeRegistry(); } - /** - * @test - */ + #[Test] public function latestDefaultModeIsReturned(): void { $module = JavaScriptModuleInstruction::create('@test/foo', 'bar')->invoke(); @@ -50,9 +49,7 @@ final class ModeRegistryTest extends UnitTestCase self::assertSame($expected, $actual); } - /** - * @test - */ + #[Test] public function formatCodeReturnsCorrectMode(): void { $module = JavaScriptModuleInstruction::create('@test/mode', 'formatCode')->invoke(); @@ -63,9 +60,7 @@ final class ModeRegistryTest extends UnitTestCase self::assertSame($expected, $actual); } - /** - * @test - */ + #[Test] public function modeIsFetchedByFileExtension(): void { $module = JavaScriptModuleInstruction::create('@test/mode', 'extension')->invoke(); diff --git a/typo3/sysext/webhooks/Tests/Unit/Factory/WebhookInstructionFactoryTest.php b/typo3/sysext/webhooks/Tests/Unit/Factory/WebhookInstructionFactoryTest.php index 1f4d9ff0de906af0b189cbd7df0d28fa153196cf..6967cc4423e8600dc3f2f0071972a3d5ec3ffc5f 100644 --- a/typo3/sysext/webhooks/Tests/Unit/Factory/WebhookInstructionFactoryTest.php +++ b/typo3/sysext/webhooks/Tests/Unit/Factory/WebhookInstructionFactoryTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Webhooks\Tests\Unit\Factory; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Webhooks\Factory\WebhookInstructionFactory; use TYPO3\CMS\Webhooks\Model\WebhookType; @@ -52,9 +53,7 @@ final class WebhookInstructionFactoryTest extends UnitTestCase $this->webhookType = new WebhookType('typo3/test-webhook', 'My WebhookType description', 'My\Webhook\Type', 'myFactoryMethod'); } - /** - * @test - */ + #[Test] public function createWebhookInstructionWithMinimalData(): void { $webhookInstruction = WebhookInstructionFactory::create( @@ -74,9 +73,7 @@ final class WebhookInstructionFactoryTest extends UnitTestCase self::assertSame([], $webhookInstruction->getRow()); } - /** - * @test - */ + #[Test] public function createWebhookInstructionWithAllData(): void { $this->mockRecord['webhook_type'] = $this->webhookType; @@ -107,9 +104,7 @@ final class WebhookInstructionFactoryTest extends UnitTestCase self::assertSame([], $webhookInstruction->getRow()); } - /** - * @test - */ + #[Test] public function createWebhookInstructionFromRow(): void { $webhookTypesRegistryMock = $this->createMock(WebhookTypesRegistry::class); diff --git a/typo3/sysext/workspaces/Tests/Unit/Controller/Remote/RemoteServerTest.php b/typo3/sysext/workspaces/Tests/Unit/Controller/Remote/RemoteServerTest.php index c32b9885932f797354b8b49bc3d4e0eaff0a8458..291692a5735ce2d5c738546c8bf2422d26d1a8ac 100644 --- a/typo3/sysext/workspaces/Tests/Unit/Controller/Remote/RemoteServerTest.php +++ b/typo3/sysext/workspaces/Tests/Unit/Controller/Remote/RemoteServerTest.php @@ -17,6 +17,8 @@ declare(strict_types=1); namespace TYPO3\CMS\Workspaces\Tests\Unit\Controller\Remote; +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Core\Resource\File; use TYPO3\CMS\Core\Resource\FileReference; @@ -94,9 +96,9 @@ final class RemoteServerTest extends UnitTestCase /** * @param array|null $expected - * @dataProvider prepareFileReferenceDifferencesAreCorrectDataProvider - * @test */ + #[DataProvider('prepareFileReferenceDifferencesAreCorrectDataProvider')] + #[Test] public function prepareFileReferenceDifferencesAreCorrect(string $fileFileReferenceList, string $versionFileReferenceList, bool $useThumbnails, array $expected = null): void { $liveFileReferences = $this->getFileReferenceMocks($fileFileReferenceList); diff --git a/typo3/sysext/workspaces/Tests/Unit/Domain/Model/WorkspaceRecordTest.php b/typo3/sysext/workspaces/Tests/Unit/Domain/Model/WorkspaceRecordTest.php index 324cce5f98a54fef3ec8ab148a51014525d6f159..44b99d365ecafa4a1e03ac1dda39df6228a10146 100644 --- a/typo3/sysext/workspaces/Tests/Unit/Domain/Model/WorkspaceRecordTest.php +++ b/typo3/sysext/workspaces/Tests/Unit/Domain/Model/WorkspaceRecordTest.php @@ -17,6 +17,7 @@ declare(strict_types=1); namespace TYPO3\CMS\Workspaces\Tests\Unit\Domain\Model; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Workspaces\Domain\Record\AbstractRecord; use TYPO3\CMS\Workspaces\Domain\Record\WorkspaceRecord; @@ -36,9 +37,7 @@ final class WorkspaceRecordTest extends UnitTestCase parent::tearDown(); } - /** - * @test - */ + #[Test] public function isAbstractRecord(): void { $subject = new WorkspaceRecord([]); @@ -46,9 +45,7 @@ final class WorkspaceRecordTest extends UnitTestCase self::assertInstanceOf(AbstractRecord::class, $subject); } - /** - * @test - */ + #[Test] public function getReturnsWorkspaceRecordInstance(): void { $instance = WorkspaceRecord::get(1, ['title' => '']); @@ -56,9 +53,7 @@ final class WorkspaceRecordTest extends UnitTestCase self::assertInstanceOf(WorkspaceRecord::class, $instance); } - /** - * @test - */ + #[Test] public function getWithNonZeroUidAndNonEmptyDataReturnsInstanceWithTheProvidedData(): void { $title = 'some record title'; @@ -68,9 +63,7 @@ final class WorkspaceRecordTest extends UnitTestCase self::assertSame($title, $instance->getTitle()); } - /** - * @test - */ + #[Test] public function getCalledTwoTimesWithTheSameUidAndDataDataReturnsDifferentInstancesForEachCall(): void { $uid = 1; @@ -82,9 +75,7 @@ final class WorkspaceRecordTest extends UnitTestCase self::assertNotSame($instance1, $instance2); } - /** - * @test - */ + #[Test] public function getForConfiguredXclassReturnsInstanceOfXclass(): void { $xclassInstance = new class ([]) extends WorkspaceRecord {}; diff --git a/typo3/sysext/workspaces/Tests/Unit/Event/AfterRecordPublishedEventTest.php b/typo3/sysext/workspaces/Tests/Unit/Event/AfterRecordPublishedEventTest.php index 7b6def29f08db2ed9bddcb0e5e172895e2a58f75..881298d0fa4de1432657ef53dd88774e1f72aa11 100644 --- a/typo3/sysext/workspaces/Tests/Unit/Event/AfterRecordPublishedEventTest.php +++ b/typo3/sysext/workspaces/Tests/Unit/Event/AfterRecordPublishedEventTest.php @@ -17,14 +17,13 @@ declare(strict_types=1); namespace TYPO3\CMS\Workspaces\Tests\Unit\Event; +use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Workspaces\Event\AfterRecordPublishedEvent; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; final class AfterRecordPublishedEventTest extends UnitTestCase { - /** - * @test - */ + #[Test] public function gettersReturnInitializedObjects(): void { $table = 'some_table';